configs/ea3131/pgnsh: Configuration converted to use the kconfig-frontends tools

This commit is contained in:
Gregory Nutt
2014-03-05 14:26:30 -06:00
parent 972eeae12d
commit 5c1d6d7580
5 changed files with 818 additions and 455 deletions
+7
View File
@@ -6880,3 +6880,10 @@
kconfig-frontends tools (2014-3-5) kconfig-frontends tools (2014-3-5)
* configs/ntosd-dm320/uip: Configuration converted to use the * configs/ntosd-dm320/uip: Configuration converted to use the
kconfig-frontends tools (2014-3-5) kconfig-frontends tools (2014-3-5)
* configs/ea3131/pgnsh: Configuration converted to use the
kconfig-frontends tools (2014-3-5)
* arch/Kconfig, arch/arm/Kconfig, configs/ea3131/Kconfig,
configs/ea3131/pgnsh/defconfig, configs/ea3131/src/up_fillpage.c,
configs/ea3152/Kconfig, nuttx/configs/ea3152/src/up_fillpage.c,
include/nuttx/page.h, and tools/cfgdefine.c: Add configuration
settings for the on-demand paging option (2014-3-5).
+55 -28
View File
@@ -221,7 +221,7 @@ Image Format
- mklpc.sh # Make the bootloader binary (nuttx.lpc) - mklpc.sh # Make the bootloader binary (nuttx.lpc)
NOTES: NOTES:
1. setenv.sh just sets up pathes to the toolchain and also to 1. setenv.sh just sets up pathes to the toolchain and also to
configs/ea3131/tools where mklpc.sh resides. Use of setenv.sh is optional. configs/ea3131/tools where mklpc.sh resides. Use of setenv.sh is optional.
If you don't use setenv.sh, then just set your PATH variable appropriately or If you don't use setenv.sh, then just set your PATH variable appropriately or
@@ -267,7 +267,7 @@ Using OpenOCD and GDB
I used to start the OpenOCD daemon on my system called oocd.sh. That I used to start the OpenOCD daemon on my system called oocd.sh. That
script would probably require some modifications to work in another script would probably require some modifications to work in another
environment: environment:
- possibly the value of OPENOCD_PATH - possibly the value of OPENOCD_PATH
- If you are working under Linux you will need to change any - If you are working under Linux you will need to change any
occurances of `cygpath -w blablabla` to just blablabla occurances of `cygpath -w blablabla` to just blablabla
@@ -312,7 +312,7 @@ On-Demand Paging
L1 page table. That leaves 96x1Kb virtual pages in the middle of SRAM for L1 page table. That leaves 96x1Kb virtual pages in the middle of SRAM for
the paged memory region; up to 384x1kb of physical pages may be paged into the paged memory region; up to 384x1kb of physical pages may be paged into
this region. Physical memory map: this region. Physical memory map:
11028000 "locked" text region 48x1Kb 11028000 "locked" text region 48x1Kb
11034000 "paged" text region 96x1Kb 11034000 "paged" text region 96x1Kb
1104c000 "data" region 32x1Kb 1104c000 "data" region 32x1Kb
@@ -332,13 +332,13 @@ On-Demand Paging
The L1 contains a single 1Mb entry to span the entire LPC3131 SRAM memory The L1 contains a single 1Mb entry to span the entire LPC3131 SRAM memory
region. The virtual address for this region is 0x11028000. The offset into region. The virtual address for this region is 0x11028000. The offset into
the L1 page table is given by: the L1 page table is given by:
offset = ((0x11028000 >> 20) << 2) = 0x00000440 offset = ((0x11028000 >> 20) << 2) = 0x00000440
The value at that offset into the L1 page table contains the address of the The value at that offset into the L1 page table contains the address of the
L2 page table (0x11056000) plus some extra bits to specify that that entry L2 page table (0x11056000) plus some extra bits to specify that that entry
is valid and and points to a 1Kb L1 page table: is valid and and points to a 1Kb L1 page table:
11054440 11056013 11054440 11056013
Why is the address 11056000 used for the address of the L2 page table? Isn't Why is the address 11056000 used for the address of the L2 page table? Isn't
@@ -355,7 +355,7 @@ On-Demand Paging
Only only L2 page table will be used to span the LPC3131 SRAM virtual text Only only L2 page table will be used to span the LPC3131 SRAM virtual text
address region (480x1Kb). That one entry maps the virtual address range of address region (480x1Kb). That one entry maps the virtual address range of
0x11000000 through 0x110ffc00. Each entry maps a 1Kb page of physical memory: 0x11000000 through 0x110ffc00. Each entry maps a 1Kb page of physical memory:
PAGE VIRTUAL ADDR L2 OFFSET PAGE VIRTUAL ADDR L2 OFFSET
--------- ------------ --------- --------- ------------ ---------
Page 0 0x11000000 0x00000000 Page 0 0x11000000 0x00000000
@@ -363,10 +363,10 @@ On-Demand Paging
Page 2 0x11000800 0x00000008 Page 2 0x11000800 0x00000008
... ...
Page 1023 0x110ffc00 0x00000ffc Page 1023 0x110ffc00 0x00000ffc
The "locked" text region begins at an offset of 0x00028000 into that region. The "locked" text region begins at an offset of 0x00028000 into that region.
The 48 page table entries needed to make this region begin at: The 48 page table entries needed to make this region begin at:
offset = ((0x00028000 >> 10) << 2) = 0x00000280 offset = ((0x00028000 >> 10) << 2) = 0x00000280
Each entry contains the address of a physical page in the "locked" text region Each entry contains the address of a physical page in the "locked" text region
@@ -378,8 +378,8 @@ On-Demand Paging
... ...
The locked region is initially unmapped. But the data region and page table The locked region is initially unmapped. But the data region and page table
regions must be mapped in a similar manner. Those regions must be mapped in a similar manner. Those
Data: Data:
Virtual address = 0x11094000 Offset = 0x00064000 Virtual address = 0x11094000 Offset = 0x00064000
Physical address = 0x1104c000 Physical address = 0x1104c000
@@ -428,7 +428,7 @@ On-Demand Paging
basic procedure is already documented in NXP publications: "LPC313x basic procedure is already documented in NXP publications: "LPC313x
Linux Quick Start Guide, Version 2.0" and "AN10811 Programming SPI Linux Quick Start Guide, Version 2.0" and "AN10811 Programming SPI
flash on EA3131 boards, V1 (May 1, 2009)." That procedure may be flash on EA3131 boards, V1 (May 1, 2009)." That procedure may be
sufficient, depending on the decisions made in (1) and (2): sufficient, depending on the decisions made in (1) and (2):
4. Develop a procedure to boot the locked text image from SPI NOR. 4. Develop a procedure to boot the locked text image from SPI NOR.
The references and issues related to this are discussed in (2) The references and issues related to this are discussed in (2)
and (3) above. and (3) above.
@@ -442,7 +442,7 @@ On-Demand Paging
CONFIG_PAGING_M25PX=y CONFIG_PAGING_M25PX=y
NOTE: See the TODO list in the top-level directory: NOTE: See the TODO list in the top-level directory:
"arch/arm/src/lpc31xx/lpc31_spi.c may or may not be functional. It was "arch/arm/src/lpc31xx/lpc31_spi.c may or may not be functional. It was
reported to be working, but I was unable to get it working with the reported to be working, but I was unable to get it working with the
Atmel at45dbxx serial FLASH driver." Atmel at45dbxx serial FLASH driver."
@@ -474,7 +474,7 @@ On-Demand Paging
1. You would still have to boot the locked section over serial or 1. You would still have to boot the locked section over serial or
using a bootloader -- it is not clear how the power up boot using a bootloader -- it is not clear how the power up boot
would occur. For testing, the nuttx.bin file could be both would occur. For testing, the nuttx.bin file could be both
provided on the SD card and loaded over serial. provided on the SD card and loaded over serial.
2. If the SD card is not in place, the system will crash. 2. If the SD card is not in place, the system will crash.
3. This means that all of the file system logic and FAT file 3. This means that all of the file system logic and FAT file
system would have to reside in the locked text region. system would have to reside in the locked text region.
@@ -603,17 +603,41 @@ ARM/EA3131-specific Configuration Options
Configurations Configurations
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
Each EA3131 configuration is maintained in a sub-directory and can be Common Configuration Notes
selected as follow: --------------------------
cd tools 1. Each EA3131 configuration is maintained in a sub-directory and
./configure.sh ea3131/<subdir> can be selected as follow:
cd -
. ./setenv.sh
Where <subdir> is one of the following: cd tools
./configure.sh ea3131/<subdir>
cd -
. ./setenv.sh
Where <subdir> is one of the configuration sub-directories described in
the following paragraph.
2. These configurations use the mconf-based configuration tool. To
change a configurations using that tool, you should:
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
and misc/tools/
b. Execute 'make menuconfig' in nuttx/ in order to start the
reconfiguration process.
3. By default, all configurations assume the CodeSourcery toolchain
under Cygwin with Windows. This is easily reconfigured, however:
CONFIG_HOST_WINDOWS=y
CONFIG_WINDOWS_CYGWIN=y
CONFIG_ARM_TOOLCHAIN_CODESOURCERYW=y
Configuration Sub-Directories
-----------------------------
locked:
locked
This is not a configuration. When on-demand page is enabled This is not a configuration. When on-demand page is enabled
then we must do a two pass link: The first pass creates an then we must do a two pass link: The first pass creates an
intermediate object that has all of the code that must be intermediate object that has all of the code that must be
@@ -622,19 +646,22 @@ Where <subdir> is one of the following:
The directory contains the logic necessary to do the platform The directory contains the logic necessary to do the platform
specific first pass link for the EA313x. specific first pass link for the EA313x.
nsh: nsh
Configures the NuttShell (nsh) located at examples/nsh. The Configures the NuttShell (nsh) located at examples/nsh. The
Configuration enables only the serial NSH interface. Configuration enables only the serial NSH interface.
pgnsh: pgnsh
This is the same configuration as nsh, but with On-Demand This is the same configuration as nsh, but with On-Demand
paging enabled. See http://www.nuttx.org/NuttXDemandPaging.html. paging enabled. See http://www.nuttx.org/Documentation/NuttXDemandPaging.html.
This configuration is an experiment for the purposes of test This configuration is an experiment for the purposes of test
and debug. At present, this does not produce functioning, and debug. At present, this does not produce functioning,
usable system usable system
usbserial: usbserial
This configuration directory exercises the USB serial class This configuration directory exercises the USB serial class
driver at examples/usbserial. See examples/README.txt for driver at examples/usbserial. See examples/README.txt for
more information. more information.
-45
View File
@@ -1,45 +0,0 @@
############################################################################
# configs/ea3131/pgnsh/appconfig
#
# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# 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.
#
############################################################################
# Path to example in apps/examples containing the user_start entry point
CONFIGURED_APPS += examples/nsh
# The NSH library
CONFIGURED_APPS += system/readline
CONFIGURED_APPS += nshlib
File diff suppressed because it is too large Load Diff
+9 -4
View File
@@ -8,11 +8,14 @@ CONFIG_NUTTX_NEWCONFIG=y
# Build Setup # Build Setup
# #
# CONFIG_EXPERIMENTAL is not set # CONFIG_EXPERIMENTAL is not set
# CONFIG_DEFAULT_SMALL is not set # CONFIG_HOST_LINUX is not set
CONFIG_HOST_LINUX=y
# CONFIG_HOST_OSX is not set # CONFIG_HOST_OSX is not set
# CONFIG_HOST_WINDOWS is not set CONFIG_HOST_WINDOWS=y
# CONFIG_HOST_OTHER is not set # 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 # Build Configuration
@@ -106,8 +109,10 @@ CONFIG_ARCH_ROMPGTABLE=y
# ARM Configuration Options # ARM Configuration Options
# #
# CONFIG_ARM_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARM_TOOLCHAIN_BUILDROOT is not set
CONFIG_ARM_TOOLCHAIN_CODESOURCERYL=y CONFIG_ARM_TOOLCHAIN_CODESOURCERYW=y
# CONFIG_ARM_TOOLCHAIN_DEVKITARM is not set
# CONFIG_ARM_TOOLCHAIN_GNU_EABIL is not set # CONFIG_ARM_TOOLCHAIN_GNU_EABIL is not set
# CONFIG_ARM_TOOLCHAIN_GNU_EABIW is not set
# CONFIG_ARM_TOOLCHAIN_GNU_OABI is not set # CONFIG_ARM_TOOLCHAIN_GNU_OABI is not set
CONFIG_ARCH_HAVE_EXTNAND=y CONFIG_ARCH_HAVE_EXTNAND=y
CONFIG_ARCH_HAVE_EXTDRAM=y CONFIG_ARCH_HAVE_EXTDRAM=y