You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ag...@apache.org on 2021/02/21 13:22:44 UTC

[incubator-nuttx] 01/02: boards: raspberrypi-pico: Introduce rp2040_bringup() to mount procfs

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

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

commit d68bfe1e1abc4147ac65c5ab47f340f9f4172123
Author: Masayuki Ishikawa <ma...@gmail.com>
AuthorDate: Sun Feb 21 17:05:28 2021 +0900

    boards: raspberrypi-pico: Introduce rp2040_bringup() to mount procfs
    
    Summary:
    - This commit introduces rp2040_bringup() to mount procfs
    
    Impact:
    - None
    
    Testing:
    - Tested with raspberrypi-pico:nsh
---
 .../rp2040/raspberrypi-pico/configs/nsh/defconfig  |  1 +
 boards/arm/rp2040/raspberrypi-pico/src/Makefile    |  1 +
 .../rp2040/raspberrypi-pico/src/rp2040_appinit.c   | 10 +++++
 .../src/{rp2040_appinit.c => rp2040_bringup.c}     | 52 +++++++++-------------
 .../arm/rp2040/raspberrypi-pico/src/rp2040_pico.h  | 32 +++++++++++++
 5 files changed, 64 insertions(+), 32 deletions(-)

diff --git a/boards/arm/rp2040/raspberrypi-pico/configs/nsh/defconfig b/boards/arm/rp2040/raspberrypi-pico/configs/nsh/defconfig
index baad567..e2e6ad9 100644
--- a/boards/arm/rp2040/raspberrypi-pico/configs/nsh/defconfig
+++ b/boards/arm/rp2040/raspberrypi-pico/configs/nsh/defconfig
@@ -47,3 +47,4 @@ CONFIG_SYSTEM_NSH=y
 CONFIG_TESTING_OSTEST=y
 CONFIG_UART0_SERIAL_CONSOLE=y
 CONFIG_USER_ENTRYPOINT="nsh_main"
+CONFIG_NSH_ARCHINIT=y
diff --git a/boards/arm/rp2040/raspberrypi-pico/src/Makefile b/boards/arm/rp2040/raspberrypi-pico/src/Makefile
index be57df4..af5f036 100644
--- a/boards/arm/rp2040/raspberrypi-pico/src/Makefile
+++ b/boards/arm/rp2040/raspberrypi-pico/src/Makefile
@@ -22,5 +22,6 @@ include $(TOPDIR)/Make.defs
 
 CSRCS = rp2040_boardinitialize.c
 CSRCS += rp2040_appinit.c
+CSRCS += rp2040_bringup.c
 
 include $(TOPDIR)/boards/Board.mk
diff --git a/boards/arm/rp2040/raspberrypi-pico/src/rp2040_appinit.c b/boards/arm/rp2040/raspberrypi-pico/src/rp2040_appinit.c
index d36d655..2609fa1 100644
--- a/boards/arm/rp2040/raspberrypi-pico/src/rp2040_appinit.c
+++ b/boards/arm/rp2040/raspberrypi-pico/src/rp2040_appinit.c
@@ -25,6 +25,8 @@
 #include <nuttx/config.h>
 #include <nuttx/board.h>
 
+#include "rp2040_pico.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
@@ -64,5 +66,13 @@
 
 int board_app_initialize(uintptr_t arg)
 {
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
+  /* Board initialization already performed by board_late_initialize() */
+
   return OK;
+#else
+  /* Perform board-specific initialization */
+
+  return rp2040_bringup();
+#endif
 }
diff --git a/boards/arm/rp2040/raspberrypi-pico/src/rp2040_appinit.c b/boards/arm/rp2040/raspberrypi-pico/src/rp2040_bringup.c
similarity index 51%
copy from boards/arm/rp2040/raspberrypi-pico/src/rp2040_appinit.c
copy to boards/arm/rp2040/raspberrypi-pico/src/rp2040_bringup.c
index d36d655..5f25f7f 100644
--- a/boards/arm/rp2040/raspberrypi-pico/src/rp2040_appinit.c
+++ b/boards/arm/rp2040/raspberrypi-pico/src/rp2040_bringup.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/rp2040/raspberrypi-pico/src/rp2040_appinit.c
+ * boards/arm/rp2040/raspberrypi-pico/src/rp2040_bringup.c
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -23,46 +23,34 @@
  ****************************************************************************/
 
 #include <nuttx/config.h>
-#include <nuttx/board.h>
 
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
+#include <debug.h>
+#include <stddef.h>
+#include <sys/mount.h>
 
-#ifndef OK
-#  define OK 0
-#endif
+#include "rp2040_pico.h"
 
 /****************************************************************************
  * 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.
- *
- * 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 initialization logic and the
- *         matching application logic.  The value could 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.
- *
+ * Name: rp2040_bringup
  ****************************************************************************/
 
-int board_app_initialize(uintptr_t arg)
+int rp2040_bringup(void)
 {
-  return OK;
+  int ret = 0;
+
+#ifdef CONFIG_FS_PROCFS
+  /* Mount the procfs file system */
+
+  ret = mount(NULL, "/proc", "procfs", 0, NULL);
+  if (ret < 0)
+    {
+      serr("ERROR: Failed to mount procfs at %s: %d\n", "/proc", ret);
+    }
+#endif
+
+  return ret;
 }
diff --git a/boards/arm/rp2040/raspberrypi-pico/src/rp2040_pico.h b/boards/arm/rp2040/raspberrypi-pico/src/rp2040_pico.h
new file mode 100644
index 0000000..4762bd7
--- /dev/null
+++ b/boards/arm/rp2040/raspberrypi-pico/src/rp2040_pico.h
@@ -0,0 +1,32 @@
+/****************************************************************************
+ * boards/arm/rp2040/raspberrypi-pico/src/rp2040_pico.h
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __BOARDS_ARM_RP2040_RASPBERRYPI_PICO_SRC_RP2040_PICO_H
+#define __BOARDS_ARM_RP2040_RASPBERRYPI_PICO_SRC_RP2040_PICO_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+int rp2040_bringup(void);
+
+#endif /* __BOARDS_ARM_RP2040_RASPBERRYPI_PICO_SRC_RP2040_PICO_H */