mirror of
https://github.com/apache/nuttx.git
synced 2026-06-05 07:12:54 +08:00
More trailing whilespace removal
This commit is contained in:
@@ -126,7 +126,7 @@ Other Versions
|
|||||||
|
|
||||||
If you use any version of ZDS-II other than 5.0.1 or if you install ZDS-II
|
If you use any version of ZDS-II other than 5.0.1 or if you install ZDS-II
|
||||||
at any location other than the default location, you will have to modify
|
at any location other than the default location, you will have to modify
|
||||||
two files: (1) configs/16z/*/setenv.sh and (2) configs/16z/*/Make.defs.
|
two files: (1) configs/16z/*/setenv.sh and (2) configs/16z/*/Make.defs.
|
||||||
Simply edit these two files, changing 5.0.1 to whatever.
|
Simply edit these two files, changing 5.0.1 to whatever.
|
||||||
|
|
||||||
Patches
|
Patches
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ endif
|
|||||||
INCLUDES = $(ARCHSTDINCLUDES) $(USRINCLUDES)
|
INCLUDES = $(ARCHSTDINCLUDES) $(USRINCLUDES)
|
||||||
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(INCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) $(EXTRADEFINES)
|
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(INCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) $(EXTRADEFINES)
|
||||||
|
|
||||||
ASRCS =
|
ASRCS =
|
||||||
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
||||||
CSRCS = z16f_lowinit.c z16f_leds.c
|
CSRCS = z16f_lowinit.c z16f_leds.c
|
||||||
COBJS = $(CSRCS:.c=$(OBJEXT))
|
COBJS = $(CSRCS:.c=$(OBJEXT))
|
||||||
|
|||||||
@@ -22,12 +22,12 @@ index ba7dbe7..b9f9991 100644
|
|||||||
+ FAR const char *fmt, va_list ap);
|
+ FAR const char *fmt, va_list ap);
|
||||||
+#endif
|
+#endif
|
||||||
static FAR char *nsh_consolelinebuffer(FAR struct nsh_vtbl_s *vtbl);
|
static FAR char *nsh_consolelinebuffer(FAR struct nsh_vtbl_s *vtbl);
|
||||||
|
|
||||||
#if CONFIG_NFILE_DESCRIPTORS > 0
|
#if CONFIG_NFILE_DESCRIPTORS > 0
|
||||||
@@ -213,6 +219,7 @@ static ssize_t nsh_consolewrite(FAR struct nsh_vtbl_s *vtbl, FAR const void *buf
|
@@ -213,6 +219,7 @@ static ssize_t nsh_consolewrite(FAR struct nsh_vtbl_s *vtbl, FAR const void *buf
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
+#if 0
|
+#if 0
|
||||||
static int nsh_consoleoutput(FAR struct nsh_vtbl_s *vtbl,
|
static int nsh_consoleoutput(FAR struct nsh_vtbl_s *vtbl,
|
||||||
FAR const char *fmt, ...)
|
FAR const char *fmt, ...)
|
||||||
@@ -35,7 +35,7 @@ index ba7dbe7..b9f9991 100644
|
|||||||
@@ -263,6 +270,51 @@ static int nsh_consoleoutput(FAR struct nsh_vtbl_s *vtbl,
|
@@ -263,6 +270,51 @@ static int nsh_consoleoutput(FAR struct nsh_vtbl_s *vtbl,
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
+#else
|
+#else
|
||||||
+static int nsh_consolevoutput(FAR struct nsh_vtbl_s *vtbl, FAR const char *fmt, va_list ap)
|
+static int nsh_consolevoutput(FAR struct nsh_vtbl_s *vtbl, FAR const char *fmt, va_list ap)
|
||||||
+{
|
+{
|
||||||
@@ -95,7 +95,7 @@ index ba7dbe7..b9f9991 100644
|
|||||||
+#endif
|
+#endif
|
||||||
pstate->cn_vtbl.linebuffer = nsh_consolelinebuffer;
|
pstate->cn_vtbl.linebuffer = nsh_consolelinebuffer;
|
||||||
pstate->cn_vtbl.exit = nsh_consoleexit;
|
pstate->cn_vtbl.exit = nsh_consoleexit;
|
||||||
|
|
||||||
@@ -489,3 +545,15 @@ FAR struct console_stdio_s *nsh_newconsole(void)
|
@@ -489,3 +545,15 @@ FAR struct console_stdio_s *nsh_newconsole(void)
|
||||||
}
|
}
|
||||||
return pstate;
|
return pstate;
|
||||||
@@ -122,12 +122,12 @@ index c78362f..59bd8d7 100644
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
+#include <stdarg.h>
|
+#include <stdarg.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -62,11 +63,13 @@
|
@@ -62,11 +63,13 @@
|
||||||
#define nsh_undirect(v,s) (v)->undirect(v,s)
|
#define nsh_undirect(v,s) (v)->undirect(v,s)
|
||||||
#define nsh_exit(v,s) (v)->exit(v,s)
|
#define nsh_exit(v,s) (v)->exit(v,s)
|
||||||
|
|
||||||
+#if 0
|
+#if 0
|
||||||
#ifdef CONFIG_CPP_HAVE_VARARGS
|
#ifdef CONFIG_CPP_HAVE_VARARGS
|
||||||
# define nsh_output(v, fmt...) (v)->output(v, ##fmt)
|
# define nsh_output(v, fmt...) (v)->output(v, ##fmt)
|
||||||
@@ -135,9 +135,9 @@ index c78362f..59bd8d7 100644
|
|||||||
# define nsh_output vtbl->output
|
# define nsh_output vtbl->output
|
||||||
#endif
|
#endif
|
||||||
+#endif
|
+#endif
|
||||||
|
|
||||||
/* Size of info to be saved in call to nsh_redirect */
|
/* Size of info to be saved in call to nsh_redirect */
|
||||||
|
|
||||||
@@ -107,7 +110,11 @@ struct nsh_vtbl_s
|
@@ -107,7 +110,11 @@ struct nsh_vtbl_s
|
||||||
void (*release)(FAR struct nsh_vtbl_s *vtbl);
|
void (*release)(FAR struct nsh_vtbl_s *vtbl);
|
||||||
#endif
|
#endif
|
||||||
@@ -152,8 +152,8 @@ index c78362f..59bd8d7 100644
|
|||||||
void (*redirect)(FAR struct nsh_vtbl_s *vtbl, int fd, FAR uint8_t *save);
|
void (*redirect)(FAR struct nsh_vtbl_s *vtbl, int fd, FAR uint8_t *save);
|
||||||
@@ -159,5 +166,6 @@ struct console_stdio_s
|
@@ -159,5 +166,6 @@ struct console_stdio_s
|
||||||
/* Defined in nsh_console.c *************************************************/
|
/* Defined in nsh_console.c *************************************************/
|
||||||
|
|
||||||
FAR struct console_stdio_s *nsh_newconsole(void);
|
FAR struct console_stdio_s *nsh_newconsole(void);
|
||||||
+int nsh_output(FAR struct nsh_vtbl_s *vtbl, FAR const char *fmt, ...);
|
+int nsh_output(FAR struct nsh_vtbl_s *vtbl, FAR const char *fmt, ...);
|
||||||
|
|
||||||
#endif /* __APPS_NSHLIB_NSH_CONSOLE_H */
|
#endif /* __APPS_NSHLIB_NSH_CONSOLE_H */
|
||||||
|
|||||||
+13
-13
@@ -120,21 +120,21 @@ Switches and Jumpers
|
|||||||
^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
ISP/UART0
|
ISP/UART0
|
||||||
JP1 - DTE/DCE selection
|
JP1 - DTE/DCE selection
|
||||||
JP2 -
|
JP2 -
|
||||||
JP5 -
|
JP5 -
|
||||||
J11 - STK500 Enable
|
J11 - STK500 Enable
|
||||||
|
|
||||||
ADC
|
ADC
|
||||||
JP8 -
|
JP8 -
|
||||||
JP9 -
|
JP9 -
|
||||||
|
|
||||||
Networking
|
Networking
|
||||||
JP10 -
|
JP10 -
|
||||||
|
|
||||||
RS-485
|
RS-485
|
||||||
J8 -
|
J8 -
|
||||||
J9 -
|
J9 -
|
||||||
J10 -
|
J10 -
|
||||||
|
|
||||||
Atmel AVRISP mkII Connection
|
Atmel AVRISP mkII Connection
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
@@ -149,7 +149,7 @@ Atmel AVRISP mkII Connection
|
|||||||
|
|
||||||
(ISP10PIN Connector)
|
(ISP10PIN Connector)
|
||||||
------------------- -------------------------
|
------------------- -------------------------
|
||||||
|
|
||||||
1 2
|
1 2
|
||||||
MOSI o o Vcc - ISP-PDI: PE0/PDI/RX0 via 74HC5053
|
MOSI o o Vcc - ISP-PDI: PE0/PDI/RX0 via 74HC5053
|
||||||
LED o o GND - ISP-PROG: J11/GND, to 74HC5053 and LED
|
LED o o GND - ISP-PROG: J11/GND, to 74HC5053 and LED
|
||||||
@@ -241,7 +241,7 @@ Windows Native Toolchains
|
|||||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
The WinAVR toolchain is a Windows native toolchain. There are several
|
The WinAVR toolchain is a Windows native toolchain. There are several
|
||||||
limitations to using a Windows native toolchain in a Cygwin environment.
|
limitations to using a Windows native toolchain in a Cygwin environment.
|
||||||
The three biggest are:
|
The three biggest are:
|
||||||
|
|
||||||
1. The Windows toolchain cannot follow Cygwin paths. Path conversions are
|
1. The Windows toolchain cannot follow Cygwin paths. Path conversions are
|
||||||
@@ -341,14 +341,14 @@ Build Notes:
|
|||||||
the flowing point library, then you may have to build avr-lib from sources.
|
the flowing point library, then you may have to build avr-lib from sources.
|
||||||
Below are instructions for building avr-lib from fresh sources:
|
Below are instructions for building avr-lib from fresh sources:
|
||||||
|
|
||||||
1. Download the avr-libc package from:
|
1. Download the avr-libc package from:
|
||||||
|
|
||||||
http://savannah.nongnu.org/projects/avr-libc/
|
http://savannah.nongnu.org/projects/avr-libc/
|
||||||
|
|
||||||
I am using avr-lib-1.7.1.tar.bz2
|
I am using avr-lib-1.7.1.tar.bz2
|
||||||
|
|
||||||
2. Upack the tarball and cd into the
|
2. Upack the tarball and cd into the
|
||||||
|
|
||||||
tar jxf avr-lib-1.7.1.tar.bz2
|
tar jxf avr-lib-1.7.1.tar.bz2
|
||||||
cd avr-lib-1.7.1
|
cd avr-lib-1.7.1
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ ifeq ($(WINTOOL),y)
|
|||||||
ARCHXXINCLUDES = $(ARCHINCLUDES) "${shell cygpath -w $(TOPDIR)/include/cxx}"
|
ARCHXXINCLUDES = $(ARCHINCLUDES) "${shell cygpath -w $(TOPDIR)/include/cxx}"
|
||||||
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/hello/ld.script}"
|
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/hello/ld.script}"
|
||||||
else
|
else
|
||||||
# Linux/Cygwin-native toolchain
|
# Linux/Cygwin-native toolchain
|
||||||
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
ARCHINCLUDES = -I. -isystem "$(TOPDIR)/include"
|
ARCHINCLUDES = -I. -isystem "$(TOPDIR)/include"
|
||||||
ARCHXXINCLUDES = $(ARCHINCLUDES) -isystem "$(TOPDIR)/include/cxx"
|
ARCHXXINCLUDES = $(ARCHINCLUDES) -isystem "$(TOPDIR)/include/cxx"
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
-include $(TOPDIR)/Make.defs
|
-include $(TOPDIR)/Make.defs
|
||||||
|
|
||||||
ASRCS =
|
ASRCS =
|
||||||
CSRCS = up_boot.c
|
CSRCS = up_boot.c
|
||||||
|
|
||||||
ifeq ($(CONFIG_ARCH_LEDS),y)
|
ifeq ($(CONFIG_ARCH_LEDS),y)
|
||||||
@@ -58,13 +58,13 @@ endif
|
|||||||
|
|
||||||
ifeq ($(WINTOOL),y)
|
ifeq ($(WINTOOL),y)
|
||||||
CFLAGS += -I "${shell cygpath -w $(TOPDIR)/sched}"
|
CFLAGS += -I "${shell cygpath -w $(TOPDIR)/sched}"
|
||||||
CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}"
|
CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}"
|
||||||
CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/common}"
|
CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/common}"
|
||||||
CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/$(ARCH_SUBDIR)}"
|
CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/$(ARCH_SUBDIR)}"
|
||||||
else
|
else
|
||||||
CFLAGS += -I "$(TOPDIR)/sched"
|
CFLAGS += -I "$(TOPDIR)/sched"
|
||||||
CFLAGS += -I "$(ARCH_SRCDIR)/chip"
|
CFLAGS += -I "$(ARCH_SRCDIR)/chip"
|
||||||
CFLAGS += -I "$(ARCH_SRCDIR)/common"
|
CFLAGS += -I "$(ARCH_SRCDIR)/common"
|
||||||
CFLAGS += -I "$(ARCH_SRCDIR)/$(ARCH_SUBDIR)"
|
CFLAGS += -I "$(ARCH_SRCDIR)/$(ARCH_SUBDIR)"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ ifeq ($(WINTOOL),y)
|
|||||||
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
|
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/ld.script}"
|
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script}"
|
||||||
else
|
else
|
||||||
# Linux/Cygwin-native toolchain
|
# Linux/Cygwin-native toolchain
|
||||||
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ IDEs
|
|||||||
|
|
||||||
NuttX is built using command-line make. It can be used with an IDE, but some
|
NuttX is built using command-line make. It can be used with an IDE, but some
|
||||||
effort will be required to create the project.
|
effort will be required to create the project.
|
||||||
|
|
||||||
Makefile Build
|
Makefile Build
|
||||||
--------------
|
--------------
|
||||||
Under Eclipse, it is pretty easy to set up an "empty makefile project" and
|
Under Eclipse, it is pretty easy to set up an "empty makefile project" and
|
||||||
@@ -185,7 +185,7 @@ AVR32 Bootloader
|
|||||||
|
|
||||||
Boot Sequence
|
Boot Sequence
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
"An AVR UC3 part having the bootloader programmed resets as any other
|
"An AVR UC3 part having the bootloader programmed resets as any other
|
||||||
part at 80000000h. Bootloader execution begins here. The bootloader
|
part at 80000000h. Bootloader execution begins here. The bootloader
|
||||||
first performs the boot process to know whether it should start the
|
first performs the boot process to know whether it should start the
|
||||||
@@ -193,7 +193,7 @@ AVR32 Bootloader
|
|||||||
that the USB DFU ISP should be started, then execution continues in
|
that the USB DFU ISP should be started, then execution continues in
|
||||||
the bootloader area, i.e. between 80000000h and 80002000h, else
|
the bootloader area, i.e. between 80000000h and 80002000h, else
|
||||||
the bootloader launches the application at 80002000h."
|
the bootloader launches the application at 80002000h."
|
||||||
|
|
||||||
Link Address
|
Link Address
|
||||||
------------
|
------------
|
||||||
|
|
||||||
@@ -234,7 +234,7 @@ AVR32 Bootloader
|
|||||||
will need to modify the setenv.sh files.
|
will need to modify the setenv.sh files.
|
||||||
|
|
||||||
Notes from "AVR32 UC3 USB DFU Bootloader" (doc7745.pdf)
|
Notes from "AVR32 UC3 USB DFU Bootloader" (doc7745.pdf)
|
||||||
|
|
||||||
"To launch BatchISP, open a command prompt. Windows or Cygwin command
|
"To launch BatchISP, open a command prompt. Windows or Cygwin command
|
||||||
prompt can be used provided that the bin folder of the FLIP installation
|
prompt can be used provided that the bin folder of the FLIP installation
|
||||||
directory is in the PATH (Windows’ or Cygwin’s) environment variable.
|
directory is in the PATH (Windows’ or Cygwin’s) environment variable.
|
||||||
@@ -247,7 +247,7 @@ AVR32 Bootloader
|
|||||||
"BatchISP works with an internal ISP buffer per target memory. These ISP
|
"BatchISP works with an internal ISP buffer per target memory. These ISP
|
||||||
buffers can be filled from several sources. All target operations (program,
|
buffers can be filled from several sources. All target operations (program,
|
||||||
verify, read) are performed using these buffers."
|
verify, read) are performed using these buffers."
|
||||||
|
|
||||||
The following BatchISP command line will erase FLASH, write the nuttx binary
|
The following BatchISP command line will erase FLASH, write the nuttx binary
|
||||||
into FLASH, and reset the AVR32. This command line is available in the
|
into FLASH, and reset the AVR32. This command line is available in the
|
||||||
script config/avr32dev1/tools/doisp.sh:
|
script config/avr32dev1/tools/doisp.sh:
|
||||||
@@ -256,7 +256,7 @@ AVR32 Bootloader
|
|||||||
blankcheck loadbuffer nuttx.elf program verify start reset 0
|
blankcheck loadbuffer nuttx.elf program verify start reset 0
|
||||||
|
|
||||||
"BatchISP main commands available on AT32UC3xxxxx are:
|
"BatchISP main commands available on AT32UC3xxxxx are:
|
||||||
|
|
||||||
- ASSERT { PASS | FAIL } changes the displayed results of the following
|
- ASSERT { PASS | FAIL } changes the displayed results of the following
|
||||||
operations according to the expected behavior.
|
operations according to the expected behavior.
|
||||||
- ONFAIL { ASK | ABORT | RETRY | IGNORE } changes the interactive behavior
|
- ONFAIL { ASK | ABORT | RETRY | IGNORE } changes the interactive behavior
|
||||||
@@ -325,7 +325,7 @@ Make Tip
|
|||||||
changes when you run the program. That is because build is still using the
|
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
|
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:
|
around this annoying behavior, do the following when you re-build:
|
||||||
|
|
||||||
make clean_context all <-- Remove and re-copy all of the directories, then make all
|
make clean_context all <-- Remove and re-copy all of the directories, then make all
|
||||||
doisp.sh <-- Load the code onto the board.
|
doisp.sh <-- Load the code onto the board.
|
||||||
|
|
||||||
@@ -401,7 +401,7 @@ AVR32DEV1 Configuration Options
|
|||||||
the delay actually is 100 seconds.
|
the delay actually is 100 seconds.
|
||||||
|
|
||||||
Individual subsystems can be enabled:
|
Individual subsystems can be enabled:
|
||||||
|
|
||||||
CONFIG_AVR32_GPIOIRQ - GPIO interrupt support
|
CONFIG_AVR32_GPIOIRQ - GPIO interrupt support
|
||||||
CONFIG_AVR32_GPIOIRQSETA - Set of GPIOs on PORTA that support interrupts
|
CONFIG_AVR32_GPIOIRQSETA - Set of GPIOs on PORTA that support interrupts
|
||||||
CONFIG_AVR32_GPIOIRQSETB - Set of GPIOs on PORTB that support interrupts
|
CONFIG_AVR32_GPIOIRQSETB - Set of GPIOs on PORTB that support interrupts
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ ifeq ($(WINTOOL),y)
|
|||||||
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
|
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)/nsh/ld.script}"
|
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/nsh/ld.script}"
|
||||||
else
|
else
|
||||||
# Linux/Cygwin-native toolchain
|
# Linux/Cygwin-native toolchain
|
||||||
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ ifeq ($(WINTOOL),y)
|
|||||||
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
|
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)/ostest/ld.script}"
|
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/ostest/ld.script}"
|
||||||
else
|
else
|
||||||
# Linux/Cygwin-native toolchain
|
# Linux/Cygwin-native toolchain
|
||||||
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
CFLAGS += -I$(TOPDIR)/sched
|
CFLAGS += -I$(TOPDIR)/sched
|
||||||
|
|
||||||
ASRCS =
|
ASRCS =
|
||||||
CSRCS = up_boot.c
|
CSRCS = up_boot.c
|
||||||
ifeq ($(CONFIG_ARCH_LEDS),y)
|
ifeq ($(CONFIG_ARCH_LEDS),y)
|
||||||
CSRCS += up_leds.c
|
CSRCS += up_leds.c
|
||||||
|
|||||||
@@ -53,15 +53,15 @@
|
|||||||
|
|
||||||
#if (CONFIG_AVR32_GPIOIRQSETB & 4) == 1
|
#if (CONFIG_AVR32_GPIOIRQSETB & 4) == 1
|
||||||
# define CONFIG_AVR32DEV_BUTTON1_IRQ 1
|
# define CONFIG_AVR32DEV_BUTTON1_IRQ 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (CONFIG_AVR32_GPIOIRQSETB & 8) == 1
|
#if (CONFIG_AVR32_GPIOIRQSETB & 8) == 1
|
||||||
# define CONFIG_AVR32DEV_BUTTON2_IRQ 1
|
# define CONFIG_AVR32DEV_BUTTON2_IRQ 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* AVRDEV1 GPIO Pin Definitions *****************************************************/
|
/* AVRDEV1 GPIO Pin Definitions *****************************************************/
|
||||||
/* LEDs
|
/* LEDs
|
||||||
*
|
*
|
||||||
* The AVR32DEV1 board has 3 LEDs, two of which can be controlled through GPIO pins.
|
* The AVR32DEV1 board has 3 LEDs, two of which can be controlled through GPIO pins.
|
||||||
*
|
*
|
||||||
* PIN 13 PA7 LED1
|
* PIN 13 PA7 LED1
|
||||||
|
|||||||
@@ -79,7 +79,7 @@
|
|||||||
static xcpt_t board_button_irqx(int irq, xcpt_t irqhandler)
|
static xcpt_t board_button_irqx(int irq, xcpt_t irqhandler)
|
||||||
{
|
{
|
||||||
xcpt_t oldhandler;
|
xcpt_t oldhandler;
|
||||||
|
|
||||||
/* Attach the handler */
|
/* Attach the handler */
|
||||||
|
|
||||||
gpio_irqattach(irq, irqhandler, &oldhandler);
|
gpio_irqattach(irq, irqhandler, &oldhandler);
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ cond_test: signaler terminated, now cancel the waiter
|
|||||||
cond_test: Waiter Signaler
|
cond_test: Waiter Signaler
|
||||||
cond_test: Loops 32 32
|
cond_test: Loops 32 32
|
||||||
cond_test: Errors 0 0
|
cond_test: Errors 0 0
|
||||||
cond_test:
|
cond_test:
|
||||||
0 times, waiter did not have to wait for data
|
0 times, waiter did not have to wait for data
|
||||||
cond_test: 0 times, data was already available when the signaler run
|
cond_test: 0 times, data was already available when the signaler run
|
||||||
cond_test: 0 times, the waiter was in an unexpected state when the signaler ran
|
cond_test: 0 times, the waiter was in an unexpected state when the signaler ran
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
CFLAGS += -I$(TOPDIR)/sched
|
CFLAGS += -I$(TOPDIR)/sched
|
||||||
|
|
||||||
ASRCS =
|
ASRCS =
|
||||||
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
||||||
CSRCS = up_leds.c
|
CSRCS = up_leds.c
|
||||||
COBJS = $(CSRCS:.c=$(OBJEXT))
|
COBJS = $(CSRCS:.c=$(OBJEXT))
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ README
|
|||||||
======
|
======
|
||||||
|
|
||||||
This README discusses issues unique to NuttX configurations for the CloudController
|
This README discusses issues unique to NuttX configurations for the CloudController
|
||||||
development board featuring the STMicro STM32F107VCT MCU.
|
development board featuring the STMicro STM32F107VCT MCU.
|
||||||
|
|
||||||
Features of the CloudController board include:
|
Features of the CloudController board include:
|
||||||
|
|
||||||
@@ -392,7 +392,7 @@ NXFLAT Toolchain
|
|||||||
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
|
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
|
||||||
be downloaded from the NuttX SourceForge download site
|
be downloaded from the NuttX SourceForge download site
|
||||||
(https://sourceforge.net/projects/nuttx/files/).
|
(https://sourceforge.net/projects/nuttx/files/).
|
||||||
|
|
||||||
This GNU toolchain builds and executes in the Linux or Cygwin environment.
|
This GNU toolchain builds and executes in the Linux or Cygwin environment.
|
||||||
|
|
||||||
1. You must have already configured Nuttx in <some-dir>/nuttx.
|
1. You must have already configured Nuttx in <some-dir>/nuttx.
|
||||||
@@ -700,14 +700,14 @@ Cloudctrl-specific Configuration Options
|
|||||||
STM32 USB OTG FS Host Driver Support
|
STM32 USB OTG FS Host Driver Support
|
||||||
|
|
||||||
Pre-requisites
|
Pre-requisites
|
||||||
|
|
||||||
CONFIG_USBHOST - Enable USB host support
|
CONFIG_USBHOST - Enable USB host support
|
||||||
CONFIG_STM32_OTGFS - Enable the STM32 USB OTG FS block
|
CONFIG_STM32_OTGFS - Enable the STM32 USB OTG FS block
|
||||||
CONFIG_STM32_SYSCFG - Needed
|
CONFIG_STM32_SYSCFG - Needed
|
||||||
CONFIG_SCHED_WORKQUEUE - Worker thread support is required
|
CONFIG_SCHED_WORKQUEUE - Worker thread support is required
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
CONFIG_STM32_OTGFS_RXFIFO_SIZE - Size of the RX FIFO in 32-bit words.
|
CONFIG_STM32_OTGFS_RXFIFO_SIZE - Size of the RX FIFO in 32-bit words.
|
||||||
Default 128 (512 bytes)
|
Default 128 (512 bytes)
|
||||||
CONFIG_STM32_OTGFS_NPTXFIFO_SIZE - Size of the non-periodic Tx FIFO
|
CONFIG_STM32_OTGFS_NPTXFIFO_SIZE - Size of the non-periodic Tx FIFO
|
||||||
@@ -760,7 +760,7 @@ Where <subdir> is one of the following:
|
|||||||
ADC1_IN10(PC0) Potentiometer
|
ADC1_IN10(PC0) Potentiometer
|
||||||
|
|
||||||
External signals are also available on CON5 CN14:
|
External signals are also available on CON5 CN14:
|
||||||
|
|
||||||
ADC_IN8 (PB0) CON5 CN14 Pin2
|
ADC_IN8 (PB0) CON5 CN14 Pin2
|
||||||
ADC_IN9 (PB1) CON5 CN14 Pin1
|
ADC_IN9 (PB1) CON5 CN14 Pin1
|
||||||
|
|
||||||
@@ -855,7 +855,7 @@ Where <subdir> is one of the following:
|
|||||||
|
|
||||||
-CONFIG_NX_WRITEONLY=y
|
-CONFIG_NX_WRITEONLY=y
|
||||||
+# CONFIG_NX_WRITEONLY is not set
|
+# CONFIG_NX_WRITEONLY is not set
|
||||||
|
|
||||||
thttpd
|
thttpd
|
||||||
------
|
------
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@
|
|||||||
|
|
||||||
/* MCO output driven by PLL3. From above, we already have PLL3 input frequency as:
|
/* MCO output driven by PLL3. From above, we already have PLL3 input frequency as:
|
||||||
*
|
*
|
||||||
* STM32_PLL_PREDIV2 = 5, 25MHz / 5 => 5MHz
|
* STM32_PLL_PREDIV2 = 5, 25MHz / 5 => 5MHz
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(CONFIG_STM32_MII_MCO) || defined(CONFIG_STM32_RMII_MCO)
|
#if defined(CONFIG_STM32_MII_MCO) || defined(CONFIG_STM32_RMII_MCO)
|
||||||
@@ -160,7 +160,7 @@
|
|||||||
#define BUTTON_KEY2 1
|
#define BUTTON_KEY2 1
|
||||||
#define BUTTON_KEY3 2
|
#define BUTTON_KEY3 2
|
||||||
#define NUM_BUTTONS 3
|
#define NUM_BUTTONS 3
|
||||||
|
|
||||||
#define BUTTON_USERKEY BUTTON_KEY1 /* Names in schematic */
|
#define BUTTON_USERKEY BUTTON_KEY1 /* Names in schematic */
|
||||||
#define BUTTON_TAMPER BUTTON_KEY2
|
#define BUTTON_TAMPER BUTTON_KEY2
|
||||||
#define BUTTON_WAKEUP BUTTON_KEY3
|
#define BUTTON_WAKEUP BUTTON_KEY3
|
||||||
@@ -196,7 +196,7 @@
|
|||||||
* 56 PD9 MII_RXD0 Ethernet PHY. Requires CONFIG_STM32_ETH_REMAP
|
* 56 PD9 MII_RXD0 Ethernet PHY. Requires CONFIG_STM32_ETH_REMAP
|
||||||
* 57 PD10 MII_RXD1 Ethernet PHY. Requires CONFIG_STM32_ETH_REMAP
|
* 57 PD10 MII_RXD1 Ethernet PHY. Requires CONFIG_STM32_ETH_REMAP
|
||||||
*
|
*
|
||||||
* The board desdign can support a 50MHz external clock to drive the PHY
|
* The board desdign can support a 50MHz external clock to drive the PHY
|
||||||
* (U9). However, on my board, U9 is not present.
|
* (U9). However, on my board, U9 is not present.
|
||||||
*
|
*
|
||||||
* 67 PA8 MCO DM9161AEP
|
* 67 PA8 MCO DM9161AEP
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ ifeq ($(WINTOOL),y)
|
|||||||
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
|
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)}"
|
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}"
|
||||||
else
|
else
|
||||||
# Linux/Cygwin-native toolchain
|
# Linux/Cygwin-native toolchain
|
||||||
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
CFLAGS += -I$(TOPDIR)/sched
|
CFLAGS += -I$(TOPDIR)/sched
|
||||||
|
|
||||||
ASRCS =
|
ASRCS =
|
||||||
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
||||||
|
|
||||||
CSRCS = up_boot.c up_spi.c up_chipid.c
|
CSRCS = up_boot.c up_spi.c up_chipid.c
|
||||||
|
|||||||
@@ -84,7 +84,7 @@
|
|||||||
* 56 PD9 MII_RXD0 Ethernet PHY. Requires CONFIG_STM32_ETH_REMAP
|
* 56 PD9 MII_RXD0 Ethernet PHY. Requires CONFIG_STM32_ETH_REMAP
|
||||||
* 57 PD10 MII_RXD1 Ethernet PHY. Requires CONFIG_STM32_ETH_REMAP
|
* 57 PD10 MII_RXD1 Ethernet PHY. Requires CONFIG_STM32_ETH_REMAP
|
||||||
*
|
*
|
||||||
* The board desdign can support a 50MHz external clock to drive the PHY
|
* The board desdign can support a 50MHz external clock to drive the PHY
|
||||||
* (U9). However, on my board, U9 is not present.
|
* (U9). However, on my board, U9 is not present.
|
||||||
*
|
*
|
||||||
* 67 PA8 MCO DM9161AEP
|
* 67 PA8 MCO DM9161AEP
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ void board_button_initialize(void)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Configure the GPIO pins as inputs. NOTE that EXTI interrupts are
|
/* Configure the GPIO pins as inputs. NOTE that EXTI interrupts are
|
||||||
* configured for some pins but NOT used in this file
|
* configured for some pins but NOT used in this file
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -76,9 +76,9 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
/* This array maps an LED number to GPIO pin configuration */
|
/* This array maps an LED number to GPIO pin configuration */
|
||||||
|
|
||||||
static uint32_t g_ledcfg[BOARD_NLEDS] =
|
static uint32_t g_ledcfg[BOARD_NLEDS] =
|
||||||
{
|
{
|
||||||
GPIO_LED1, GPIO_LED2, GPIO_LED3, GPIO_LED4
|
GPIO_LED1, GPIO_LED2, GPIO_LED3, GPIO_LED4
|
||||||
};
|
};
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|||||||
@@ -27,11 +27,11 @@ directory at same level as the nuttx project:
|
|||||||
`- osmocom-bb
|
`- osmocom-bb
|
||||||
|
|
||||||
If you attempt to build this configuration without osmocom-bb, and that
|
If you attempt to build this configuration without osmocom-bb, and that
|
||||||
you added support for sercomm in your configuration(CONFIG_SERCOMM_CONSOLE=y)
|
you added support for sercomm in your configuration(CONFIG_SERCOMM_CONSOLE=y)
|
||||||
you will get compilation errors in drivers/sercomm due to header files that
|
you will get compilation errors in drivers/sercomm due to header files that
|
||||||
are needed from the osmocom-bb directory.
|
are needed from the osmocom-bb directory.
|
||||||
|
|
||||||
By default, NuttX will not use sercomm (HDLC protocol) to communicate with
|
By default, NuttX will not use sercomm (HDLC protocol) to communicate with
|
||||||
the host system. Sercomm is the transport used by osmocom-bb that runs on top
|
the host system. Sercomm is the transport used by osmocom-bb that runs on top
|
||||||
of serial. See http://bb.osmocom.org/trac/wiki/nuttx-bb/run for detailed
|
of serial. See http://bb.osmocom.org/trac/wiki/nuttx-bb/run for detailed
|
||||||
the usage of nuttx with sercomm.
|
the usage of nuttx with sercomm.
|
||||||
|
|||||||
@@ -27,11 +27,11 @@ directory at same level as the nuttx project:
|
|||||||
`- osmocom-bb
|
`- osmocom-bb
|
||||||
|
|
||||||
If you attempt to build this configuration without osmocom-bb, and that
|
If you attempt to build this configuration without osmocom-bb, and that
|
||||||
you added support for sercomm in your configuration(CONFIG_SERCOMM_CONSOLE=y)
|
you added support for sercomm in your configuration(CONFIG_SERCOMM_CONSOLE=y)
|
||||||
you will get compilation errors in drivers/sercomm due to header files that
|
you will get compilation errors in drivers/sercomm due to header files that
|
||||||
are needed from the osmocom-bb directory.
|
are needed from the osmocom-bb directory.
|
||||||
|
|
||||||
By default, NuttX will not use sercomm (HDLC protocol) to communicate with
|
By default, NuttX will not use sercomm (HDLC protocol) to communicate with
|
||||||
the host system. Sercomm is the transport used by osmocom-bb that runs on top
|
the host system. Sercomm is the transport used by osmocom-bb that runs on top
|
||||||
of serial. See http://bb.osmocom.org/trac/wiki/nuttx-bb/run for detailed
|
of serial. See http://bb.osmocom.org/trac/wiki/nuttx-bb/run for detailed
|
||||||
the usage of nuttx with sercomm.
|
the usage of nuttx with sercomm.
|
||||||
|
|||||||
@@ -27,11 +27,11 @@ directory at same level as the nuttx project:
|
|||||||
`- osmocom-bb
|
`- osmocom-bb
|
||||||
|
|
||||||
If you attempt to build this configuration without osmocom-bb, and that
|
If you attempt to build this configuration without osmocom-bb, and that
|
||||||
you added support for sercomm in your configuration(CONFIG_SERCOMM_CONSOLE=y)
|
you added support for sercomm in your configuration(CONFIG_SERCOMM_CONSOLE=y)
|
||||||
you will get compilation errors in drivers/sercomm due to header files that
|
you will get compilation errors in drivers/sercomm due to header files that
|
||||||
are needed from the osmocom-bb directory.
|
are needed from the osmocom-bb directory.
|
||||||
|
|
||||||
By default, NuttX will not use sercomm (HDLC protocol) to communicate with
|
By default, NuttX will not use sercomm (HDLC protocol) to communicate with
|
||||||
the host system. Sercomm is the transport used by osmocom-bb that runs on top
|
the host system. Sercomm is the transport used by osmocom-bb that runs on top
|
||||||
of serial. See http://bb.osmocom.org/trac/wiki/nuttx-bb/run for detailed
|
of serial. See http://bb.osmocom.org/trac/wiki/nuttx-bb/run for detailed
|
||||||
the usage of nuttx with sercomm.
|
the usage of nuttx with sercomm.
|
||||||
|
|||||||
@@ -314,12 +314,12 @@ HCS12/DEMO9S12NEC64-specific Configuration Options
|
|||||||
the delay actually is 100 seconds.
|
the delay actually is 100 seconds.
|
||||||
|
|
||||||
GPIO Interrupts
|
GPIO Interrupts
|
||||||
|
|
||||||
CONFIG_GPIO_IRQ - Enable general support for GPIO IRQs
|
CONFIG_GPIO_IRQ - Enable general support for GPIO IRQs
|
||||||
CONFIG_HCS12_PORTG_INTS - Enable PortG IRQs
|
CONFIG_HCS12_PORTG_INTS - Enable PortG IRQs
|
||||||
CONFIG_HCS12_PORTH_INTS - Enable PortH IRQs
|
CONFIG_HCS12_PORTH_INTS - Enable PortH IRQs
|
||||||
CONFIG_HCS12_PORTJ_INTS - Enable PortJ IRQs
|
CONFIG_HCS12_PORTJ_INTS - Enable PortJ IRQs
|
||||||
|
|
||||||
HCS12 build options:
|
HCS12 build options:
|
||||||
|
|
||||||
CONFIG_HCS12_SERIALMON - Indicates that the target systems uses
|
CONFIG_HCS12_SERIALMON - Indicates that the target systems uses
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ ifeq ($(WINTOOL),y)
|
|||||||
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/ostest/$(LDSCRIPT)}"
|
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/ostest/$(LDSCRIPT)}"
|
||||||
MAXOPTIMIZATION = -O2
|
MAXOPTIMIZATION = -O2
|
||||||
else
|
else
|
||||||
# Linux/Cygwin-native toolchain
|
# Linux/Cygwin-native toolchain
|
||||||
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
CFLAGS += -I$(TOPDIR)/sched
|
CFLAGS += -I$(TOPDIR)/sched
|
||||||
|
|
||||||
ASRCS =
|
ASRCS =
|
||||||
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
||||||
|
|
||||||
CSRCS = up_boot.c up_leds.c up_buttons.c up_spi.c
|
CSRCS = up_boot.c up_leds.c up_buttons.c up_spi.c
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
#define BOARD_HPLL0_SELI 8 /* SELI bandwidth selection */
|
#define BOARD_HPLL0_SELI 8 /* SELI bandwidth selection */
|
||||||
#define BOARD_HPLL0_SELP 31 /* SELP bandwidth selection */
|
#define BOARD_HPLL0_SELP 31 /* SELP bandwidth selection */
|
||||||
#define BOARD_HPLL0_MODE 0 /* PLL mode */
|
#define BOARD_HPLL0_MODE 0 /* PLL mode */
|
||||||
#define BOARD_HPLL0_FREQ 406425600 /* Frequency of the PLL in MHz */
|
#define BOARD_HPLL0_FREQ 406425600 /* Frequency of the PLL in MHz */
|
||||||
|
|
||||||
/* HPLL1 configuration */
|
/* HPLL1 configuration */
|
||||||
|
|
||||||
@@ -78,12 +78,12 @@
|
|||||||
#define BOARD_HPLL1_SELI 16 /* SELI bandwidth selection */
|
#define BOARD_HPLL1_SELI 16 /* SELI bandwidth selection */
|
||||||
#define BOARD_HPLL1_SELP 8 /* SELP bandwidth selection */
|
#define BOARD_HPLL1_SELP 8 /* SELP bandwidth selection */
|
||||||
#define BOARD_HPLL1_MODE 0 /* PLL mode */
|
#define BOARD_HPLL1_MODE 0 /* PLL mode */
|
||||||
#define BOARD_HPLL1_FREQ 180000000 /* Frequency of the PLL in MHz */
|
#define BOARD_HPLL1_FREQ 180000000 /* Frequency of the PLL in MHz */
|
||||||
|
|
||||||
/* The following 3 bitsets determine which clocks will be enabled at initialization
|
/* The following 3 bitsets determine which clocks will be enabled at initialization
|
||||||
* time.
|
* time.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define BOARD_CLKS_0_31 \
|
#define BOARD_CLKS_0_31 \
|
||||||
(_RBIT(CLKID_APB0CLK,0)|_RBIT(CLKID_APB1CLK,0)|_RBIT(CLKID_APB2CLK,0)|\
|
(_RBIT(CLKID_APB0CLK,0)|_RBIT(CLKID_APB1CLK,0)|_RBIT(CLKID_APB2CLK,0)|\
|
||||||
_RBIT(CLKID_APB3CLK,0)|_RBIT(CLKID_APB4CLK,0)|_RBIT(CLKID_AHB2INTCCLK,0)|\
|
_RBIT(CLKID_APB3CLK,0)|_RBIT(CLKID_APB4CLK,0)|_RBIT(CLKID_AHB2INTCCLK,0)|\
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
* PGTABLE_BASE_VADDR - The mapped address of the page table in ROM, and
|
* PGTABLE_BASE_VADDR - The mapped address of the page table in ROM, and
|
||||||
* Mappings for each of the PSECTIONS in lpc31_memorymap.h
|
* Mappings for each of the PSECTIONS in lpc31_memorymap.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_ROMPGTABLE
|
#ifdef CONFIG_ARCH_ROMPGTABLE
|
||||||
/* The LPC31xx ROM page table uses a 1-1 physical to virtual memory mapping */
|
/* The LPC31xx ROM page table uses a 1-1 physical to virtual memory mapping */
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ ifeq ($(WINTOOL),y)
|
|||||||
PASS1_LIBPATHS += -L"${shell cygpath -w "$(TOPDIR)$(DELIM)lib"}"
|
PASS1_LIBPATHS += -L"${shell cygpath -w "$(TOPDIR)$(DELIM)lib"}"
|
||||||
PASS1_LDSCRIPT = -T "${shell cygpath -w $(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)locked$(DELIM)ld-locked.inc}"
|
PASS1_LDSCRIPT = -T "${shell cygpath -w $(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)locked$(DELIM)ld-locked.inc}"
|
||||||
else
|
else
|
||||||
# Linux/Cygwin-native toolchain
|
# Linux/Cygwin-native toolchain
|
||||||
PASS1_LIBPATHS += -L"(TOPDIR)$(DELIM)lib"
|
PASS1_LIBPATHS += -L"(TOPDIR)$(DELIM)lib"
|
||||||
PASS1_LDSCRIPT = -T$(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)locked$(DELIM)ld-locked.inc
|
PASS1_LDSCRIPT = -T$(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)locked$(DELIM)ld-locked.inc
|
||||||
endif
|
endif
|
||||||
@@ -99,7 +99,7 @@ $(PASS1_LIBBOARD):
|
|||||||
|
|
||||||
locked.r: ld-locked.inc $(PASS1_LIBBOARD)
|
locked.r: ld-locked.inc $(PASS1_LIBBOARD)
|
||||||
@echo "LD: locked.r"
|
@echo "LD: locked.r"
|
||||||
@$(LD) -o $@ $(PASS1_LDFLAGS) $(PASS1_LIBPATHS) --start-group $(PASS1_LDLIBS) --end-group $(PASS1_LIBGCC)
|
@$(LD) -o $@ $(PASS1_LDFLAGS) $(PASS1_LIBPATHS) --start-group $(PASS1_LDLIBS) --end-group $(PASS1_LIBGCC)
|
||||||
@$(NM) $@ > locked.map
|
@$(NM) $@ > locked.map
|
||||||
@fgrep " U " locked.map | grep -v os_start
|
@fgrep " U " locked.map | grep -v os_start
|
||||||
@$(CROSSDEV)size $@
|
@$(CROSSDEV)size $@
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ ifeq ($(WINTOOL),y)
|
|||||||
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
|
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/ld.script}"
|
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script}"
|
||||||
else
|
else
|
||||||
# Linux/Cygwin-native toolchain
|
# Linux/Cygwin-native toolchain
|
||||||
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ ifeq ($(WINTOOL),y)
|
|||||||
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
|
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/pg-ld.script}"
|
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/pg-ld.script}"
|
||||||
else
|
else
|
||||||
# Linux/Cygwin-native toolchain
|
# Linux/Cygwin-native toolchain
|
||||||
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
||||||
|
|||||||
@@ -96,15 +96,15 @@
|
|||||||
|
|
||||||
#if defined(CONFIG_PAGING_M25PX) && defined(CONFIG_PAGING_AT45DB)
|
#if defined(CONFIG_PAGING_M25PX) && defined(CONFIG_PAGING_AT45DB)
|
||||||
# error "Both CONFIG_PAGING_M25PX and CONFIG_PAGING_AT45DB are defined"
|
# error "Both CONFIG_PAGING_M25PX and CONFIG_PAGING_AT45DB are defined"
|
||||||
# undef CONFIG_PAGING_M25PX
|
# undef CONFIG_PAGING_M25PX
|
||||||
#endif
|
#endif
|
||||||
#if defined(CONFIG_PAGING_BINPATH) && defined(CONFIG_PAGING_M25PX)
|
#if defined(CONFIG_PAGING_BINPATH) && defined(CONFIG_PAGING_M25PX)
|
||||||
# error "Both CONFIG_PAGING_BINPATH and CONFIG_PAGING_M25PX are defined"
|
# error "Both CONFIG_PAGING_BINPATH and CONFIG_PAGING_M25PX are defined"
|
||||||
# undef CONFIG_PAGING_BINPATH
|
# undef CONFIG_PAGING_BINPATH
|
||||||
#endif
|
#endif
|
||||||
#if defined(CONFIG_PAGING_BINPATH) && defined(CONFIG_PAGING_AT45DB)
|
#if defined(CONFIG_PAGING_BINPATH) && defined(CONFIG_PAGING_AT45DB)
|
||||||
# error "Both CONFIG_PAGING_BINPATH and CONFIG_PAGING_AT45DB are defined"
|
# error "Both CONFIG_PAGING_BINPATH and CONFIG_PAGING_AT45DB are defined"
|
||||||
# undef CONFIG_PAGING_BINPATH
|
# undef CONFIG_PAGING_BINPATH
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Are we accessing the page source data through a file path? */
|
/* Are we accessing the page source data through a file path? */
|
||||||
@@ -260,7 +260,7 @@ static inline void lpc31_initsrc(void)
|
|||||||
|
|
||||||
ret = mmcsd_slotinitialize(CONFIG_EA3131_PAGING_MINOR, sdio);
|
ret = mmcsd_slotinitialize(CONFIG_EA3131_PAGING_MINOR, sdio);
|
||||||
DEBUGASSERT(ret == OK);
|
DEBUGASSERT(ret == OK);
|
||||||
|
|
||||||
/* Then let's guess and say that there is a card in the slot.
|
/* Then let's guess and say that there is a card in the slot.
|
||||||
* (We are basically jodido anyway if there is no card in the slot).
|
* (We are basically jodido anyway if there is no card in the slot).
|
||||||
*/
|
*/
|
||||||
@@ -427,7 +427,7 @@ int up_fillpage(FAR struct tcb_s *tcb, FAR void *vpage)
|
|||||||
|
|
||||||
lpc31_initsrc();
|
lpc31_initsrc();
|
||||||
|
|
||||||
/* Create an offset into the binary image that corresponds to the
|
/* Create an offset into the binary image that corresponds to the
|
||||||
* virtual address. File offset 0 corresponds to PG_LOCKED_VBASE.
|
* virtual address. File offset 0 corresponds to PG_LOCKED_VBASE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -437,7 +437,7 @@ int up_fillpage(FAR struct tcb_s *tcb, FAR void *vpage)
|
|||||||
|
|
||||||
pos = lseek(g_pgsrc.fd, offset, SEEK_SET);
|
pos = lseek(g_pgsrc.fd, offset, SEEK_SET);
|
||||||
DEBUGASSERT(pos != (off_t)-1);
|
DEBUGASSERT(pos != (off_t)-1);
|
||||||
|
|
||||||
/* And read the page data from that offset */
|
/* And read the page data from that offset */
|
||||||
|
|
||||||
nbytes = read(g_pgsrc.fd, vpage, PAGESIZE);
|
nbytes = read(g_pgsrc.fd, vpage, PAGESIZE);
|
||||||
@@ -450,7 +450,7 @@ int up_fillpage(FAR struct tcb_s *tcb, FAR void *vpage)
|
|||||||
|
|
||||||
lpc31_initsrc();
|
lpc31_initsrc();
|
||||||
|
|
||||||
/* Create an offset into the binary image that corresponds to the
|
/* Create an offset into the binary image that corresponds to the
|
||||||
* virtual address. File offset 0 corresponds to PG_LOCKED_VBASE.
|
* virtual address. File offset 0 corresponds to PG_LOCKED_VBASE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
+14
-14
@@ -110,7 +110,7 @@
|
|||||||
*
|
*
|
||||||
* Micron Initialization Sequence from their data sheet for the Micron
|
* Micron Initialization Sequence from their data sheet for the Micron
|
||||||
* MT48LC32M16A2 32M x 16 SDRAM chip:
|
* MT48LC32M16A2 32M x 16 SDRAM chip:
|
||||||
*
|
*
|
||||||
* "SDRAMs must be powered up and initialized in a predefined manner.
|
* "SDRAMs must be powered up and initialized in a predefined manner.
|
||||||
* Operational procedures other than those specified may result in
|
* Operational procedures other than those specified may result in
|
||||||
* undefined operation. Once power is applied to VDD and VDDQ
|
* undefined operation. Once power is applied to VDD and VDDQ
|
||||||
@@ -118,33 +118,33 @@
|
|||||||
* a signal cycling within timing constraints specified for the clock
|
* a signal cycling within timing constraints specified for the clock
|
||||||
* pin), the SDRAM requires a 100µs delay prior to issuing any command
|
* pin), the SDRAM requires a 100µs delay prior to issuing any command
|
||||||
* other than a COMMAND INHIBIT or NOP.
|
* other than a COMMAND INHIBIT or NOP.
|
||||||
*
|
*
|
||||||
* "Starting at some point during this 100µs period and continuing at least
|
* "Starting at some point during this 100µs period and continuing at least
|
||||||
* through the end of this period, COMMAND INHIBIT or NOP commands should
|
* through the end of this period, COMMAND INHIBIT or NOP commands should
|
||||||
* be applied. Once the 100µs delay has been satisfied with at least one
|
* be applied. Once the 100µs delay has been satisfied with at least one
|
||||||
* COMMAND INHIBIT or NOP command having been applied, a PRECHARGE command
|
* COMMAND INHIBIT or NOP command having been applied, a PRECHARGE command
|
||||||
* should be applied. All banks must then be precharged, thereby placing
|
* should be applied. All banks must then be precharged, thereby placing
|
||||||
* the device in the all banks idle state.
|
* the device in the all banks idle state.
|
||||||
*
|
*
|
||||||
* "Once in the idle state, two AUTO REFRESH cycles must be performed. After
|
* "Once in the idle state, two AUTO REFRESH cycles must be performed. After
|
||||||
* the AUTO REFRESH cycles are complete, the SDRAM is ready for mode
|
* the AUTO REFRESH cycles are complete, the SDRAM is ready for mode
|
||||||
* register programming.
|
* register programming.
|
||||||
*
|
*
|
||||||
* "Because the mode register will power up in an unknown state, it should
|
* "Because the mode register will power up in an unknown state, it should
|
||||||
* be loaded prior to applying any operational command."
|
* be loaded prior to applying any operational command."
|
||||||
*
|
*
|
||||||
* The JEDEC recommendation for initializing SDRAM is:
|
* The JEDEC recommendation for initializing SDRAM is:
|
||||||
*
|
*
|
||||||
* APPLY POWER (Vdd/Vddq equally, and CLK is stable)
|
* APPLY POWER (Vdd/Vddq equally, and CLK is stable)
|
||||||
* Wait 200uS
|
* Wait 200uS
|
||||||
* PRECHARGE all
|
* PRECHARGE all
|
||||||
* 8 AUTO REFRESH COMMANDS
|
* 8 AUTO REFRESH COMMANDS
|
||||||
* LOAD MODE REGISTER
|
* LOAD MODE REGISTER
|
||||||
* SDRAM is ready for operation
|
* SDRAM is ready for operation
|
||||||
*
|
*
|
||||||
* The Micron SDRAM parts will work fine with the JEDEC sequence, but also
|
* The Micron SDRAM parts will work fine with the JEDEC sequence, but also
|
||||||
* allow for a quicker init sequence of:
|
* allow for a quicker init sequence of:
|
||||||
*
|
*
|
||||||
* APPLY POWER (Vdd/Vddq equally, and CLK is stable)
|
* APPLY POWER (Vdd/Vddq equally, and CLK is stable)
|
||||||
* Wait at least 100uS (during which time start applying and
|
* Wait at least 100uS (during which time start applying and
|
||||||
* continue applying NOP or COMMAND INHIBIT)
|
* continue applying NOP or COMMAND INHIBIT)
|
||||||
@@ -221,7 +221,7 @@ static void lpc31_sdraminitialize(void)
|
|||||||
putreg32(NS2HCLKS(EA3131_SDRAM_TMRD, HCLK2, MPMC_DYNTMRD_MASK),
|
putreg32(NS2HCLKS(EA3131_SDRAM_TMRD, HCLK2, MPMC_DYNTMRD_MASK),
|
||||||
LPC31_MPMC_DYNTMRD);
|
LPC31_MPMC_DYNTMRD);
|
||||||
up_udelay(100);
|
up_udelay(100);
|
||||||
|
|
||||||
/* Issue continuous NOP commands */
|
/* Issue continuous NOP commands */
|
||||||
|
|
||||||
putreg32((MPMC_DYNCONTROL_CE|MPMC_DYNCONTROL_CS|MPMC_DYNCONTROL_INOP),
|
putreg32((MPMC_DYNCONTROL_CE|MPMC_DYNCONTROL_CS|MPMC_DYNCONTROL_INOP),
|
||||||
@@ -230,7 +230,7 @@ static void lpc31_sdraminitialize(void)
|
|||||||
/* Wait ~200us */
|
/* Wait ~200us */
|
||||||
|
|
||||||
up_udelay(200);
|
up_udelay(200);
|
||||||
|
|
||||||
/* Issue a "pre-charge all" command */
|
/* Issue a "pre-charge all" command */
|
||||||
|
|
||||||
putreg32((MPMC_DYNCONTROL_CE|MPMC_DYNCONTROL_CS|MPMC_DYNCONTROL_IPALL),
|
putreg32((MPMC_DYNCONTROL_CE|MPMC_DYNCONTROL_CS|MPMC_DYNCONTROL_IPALL),
|
||||||
@@ -246,7 +246,7 @@ static void lpc31_sdraminitialize(void)
|
|||||||
/* Wait ~250us */
|
/* Wait ~250us */
|
||||||
|
|
||||||
up_udelay(250);
|
up_udelay(250);
|
||||||
|
|
||||||
/* Recommended refresh interval for normal operation of the Micron
|
/* Recommended refresh interval for normal operation of the Micron
|
||||||
* MT48LC16LFFG = 7.8125usec (128KHz rate). ((HCLK / 128000) - 1) =
|
* MT48LC16LFFG = 7.8125usec (128KHz rate). ((HCLK / 128000) - 1) =
|
||||||
* refresh counter interval rate, (subtract one for safety margin).
|
* refresh counter interval rate, (subtract one for safety margin).
|
||||||
@@ -267,7 +267,7 @@ static void lpc31_sdraminitialize(void)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
tmp = getreg32(LPC31_EXTSDRAM0_VSECTION | (0x23 << 13));
|
tmp = getreg32(LPC31_EXTSDRAM0_VSECTION | (0x23 << 13));
|
||||||
|
|
||||||
putreg32((MPMC_DYNCONFIG0_MDSDRAM|MPMC_DYNCONFIG_HP16_32MX16),
|
putreg32((MPMC_DYNCONFIG0_MDSDRAM|MPMC_DYNCONFIG_HP16_32MX16),
|
||||||
LPC31_MPMC_DYNCONFIG0);
|
LPC31_MPMC_DYNCONFIG0);
|
||||||
putreg32((MPMC_DYNRASCAS0_RAS2CLK|MPMC_DYNRASCAS0_CAS2CLK),
|
putreg32((MPMC_DYNRASCAS0_RAS2CLK|MPMC_DYNRASCAS0_CAS2CLK),
|
||||||
@@ -303,7 +303,7 @@ static void lpc31_sdraminitialize(void)
|
|||||||
void lpc31_meminitialize(void)
|
void lpc31_meminitialize(void)
|
||||||
{
|
{
|
||||||
/* Configure the LCD pins in external bus interface (EBI/MPMC) memory mode.
|
/* Configure the LCD pins in external bus interface (EBI/MPMC) memory mode.
|
||||||
*
|
*
|
||||||
* LCD_CSB -> MPMC_NSTCS_0
|
* LCD_CSB -> MPMC_NSTCS_0
|
||||||
* LCD_DB_1 -> MPMC_NSTCS_1
|
* LCD_DB_1 -> MPMC_NSTCS_1
|
||||||
* LCD_DB_0 -> MPMC_CLKOUT
|
* LCD_DB_0 -> MPMC_CLKOUT
|
||||||
@@ -331,7 +331,7 @@ void lpc31_meminitialize(void)
|
|||||||
/* Enable EBI clock */
|
/* Enable EBI clock */
|
||||||
|
|
||||||
lpc31_enableclock(CLKID_EBICLK);
|
lpc31_enableclock(CLKID_EBICLK);
|
||||||
|
|
||||||
/* Enable MPMC controller clocks */
|
/* Enable MPMC controller clocks */
|
||||||
|
|
||||||
lpc31_enableclock(CLKID_MPMCCFGCLK);
|
lpc31_enableclock(CLKID_MPMCCFGCLK);
|
||||||
@@ -351,7 +351,7 @@ void lpc31_meminitialize(void)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
putreg32(EA3131_MPMC_DELAY, LPC31_SYSCREG_MPMC_DELAYMODES);
|
putreg32(EA3131_MPMC_DELAY, LPC31_SYSCREG_MPMC_DELAYMODES);
|
||||||
|
|
||||||
/* Configure Micron MT48LC32M16A2 SDRAM on the EA3131 board */
|
/* Configure Micron MT48LC32M16A2 SDRAM on the EA3131 board */
|
||||||
|
|
||||||
lpc31_sdraminitialize();
|
lpc31_sdraminitialize();
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ int nsh_archinitialize(void)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
message("nsh_archinitialize: Successfully bound SDIO to the MMC/SD driver\n");
|
message("nsh_archinitialize: Successfully bound SDIO to the MMC/SD driver\n");
|
||||||
|
|
||||||
/* Then let's guess and say that there is a card in the slot. I need to check to
|
/* Then let's guess and say that there is a card in the slot. I need to check to
|
||||||
* see if the LPC313X10E-EVAL board supports a GPIO to detect if there is a card in
|
* see if the LPC313X10E-EVAL board supports a GPIO to detect if there is a card in
|
||||||
* the slot.
|
* the slot.
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ int usbmsc_archinitialize(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Register a RAMDISK device to manage this RAM image */
|
/* Register a RAMDISK device to manage this RAM image */
|
||||||
|
|
||||||
ret = ramdisk_register(CONFIG_SYSTEM_USBMSC_DEVMINOR1,
|
ret = ramdisk_register(CONFIG_SYSTEM_USBMSC_DEVMINOR1,
|
||||||
pbuffer,
|
pbuffer,
|
||||||
USBMSC_NSECTORS,
|
USBMSC_NSECTORS,
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
/************************************************************************************************
|
/************************************************************************************************
|
||||||
* Private Data
|
* Private Data
|
||||||
************************************************************************************************/
|
************************************************************************************************/
|
||||||
|
|
||||||
static const uint32_t crc32_tab[] =
|
static const uint32_t crc32_tab[] =
|
||||||
{
|
{
|
||||||
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
|
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ int main(int argc, char **argv, char **envp)
|
|||||||
padlen = g_hdr.imageLength - buf.st_size;
|
padlen = g_hdr.imageLength - buf.st_size;
|
||||||
|
|
||||||
/* Calculate CRCs */
|
/* Calculate CRCs */
|
||||||
|
|
||||||
g_hdr.execution_crc32 = infilecrc32(infd, buf.st_size, padlen);
|
g_hdr.execution_crc32 = infilecrc32(infd, buf.st_size, padlen);
|
||||||
g_hdr.header_crc32 = crc32((const uint8_t*)&g_hdr, HDR_CRC_SIZE);
|
g_hdr.header_crc32 = crc32((const uint8_t*)&g_hdr, HDR_CRC_SIZE);
|
||||||
|
|
||||||
@@ -294,4 +294,4 @@ int main(int argc, char **argv, char **envp)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ struct lpc31_header_s
|
|||||||
* 0xB – Do CRC32 check on both header and
|
* 0xB – Do CRC32 check on both header and
|
||||||
* execution part of the image. */
|
* execution part of the image. */
|
||||||
uint32_t imageLength; /* 0x20 Total image length including header rounded
|
uint32_t imageLength; /* 0x20 Total image length including header rounded
|
||||||
* up to the nearest 512 byte boundary. In C
|
* up to the nearest 512 byte boundary. In C
|
||||||
* language the field can be computed as:
|
* language the field can be computed as:
|
||||||
* imageLength = (Actual length + 511) & ~0x1FF; */
|
* imageLength = (Actual length + 511) & ~0x1FF; */
|
||||||
uint32_t releaseID; /* 0x24 Release or version number of the image. Note,
|
uint32_t releaseID; /* 0x24 Release or version number of the image. Note,
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ ifeq ($(WINTOOL),y)
|
|||||||
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
|
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/ld.script}"
|
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script}"
|
||||||
else
|
else
|
||||||
# Linux/Cygwin-native toolchain
|
# Linux/Cygwin-native toolchain
|
||||||
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ GNU Toolchain Options
|
|||||||
NOTE 2: The devkitARM toolchain includes a version of MSYS make. Make sure that
|
NOTE 2: The devkitARM toolchain includes a version of MSYS make. Make sure that
|
||||||
the paths to Cygwin's /bin and /usr/bin directories appear BEFORE the devkitARM
|
the paths to Cygwin's /bin and /usr/bin directories appear BEFORE the devkitARM
|
||||||
path or will get the wrong version of make.
|
path or will get the wrong version of make.
|
||||||
|
|
||||||
Generic arm-none-eabi GNU Toolchain
|
Generic arm-none-eabi GNU Toolchain
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
There are a number of toolchain projects providing support for ARMv4/v5
|
There are a number of toolchain projects providing support for ARMv4/v5
|
||||||
@@ -219,7 +219,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/ea3152/tools where mklpc.sh resides. Use of setenv.sh is optional.
|
configs/ea3152/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
|
||||||
@@ -265,7 +265,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
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
#define BOARD_HPLL0_SELI 8 /* SELI bandwidth selection */
|
#define BOARD_HPLL0_SELI 8 /* SELI bandwidth selection */
|
||||||
#define BOARD_HPLL0_SELP 31 /* SELP bandwidth selection */
|
#define BOARD_HPLL0_SELP 31 /* SELP bandwidth selection */
|
||||||
#define BOARD_HPLL0_MODE 0 /* PLL mode */
|
#define BOARD_HPLL0_MODE 0 /* PLL mode */
|
||||||
#define BOARD_HPLL0_FREQ 406425600 /* Frequency of the PLL in MHz */
|
#define BOARD_HPLL0_FREQ 406425600 /* Frequency of the PLL in MHz */
|
||||||
|
|
||||||
/* HPLL1 configuration */
|
/* HPLL1 configuration */
|
||||||
|
|
||||||
@@ -78,12 +78,12 @@
|
|||||||
#define BOARD_HPLL1_SELI 16 /* SELI bandwidth selection */
|
#define BOARD_HPLL1_SELI 16 /* SELI bandwidth selection */
|
||||||
#define BOARD_HPLL1_SELP 8 /* SELP bandwidth selection */
|
#define BOARD_HPLL1_SELP 8 /* SELP bandwidth selection */
|
||||||
#define BOARD_HPLL1_MODE 0 /* PLL mode */
|
#define BOARD_HPLL1_MODE 0 /* PLL mode */
|
||||||
#define BOARD_HPLL1_FREQ 180000000 /* Frequency of the PLL in MHz */
|
#define BOARD_HPLL1_FREQ 180000000 /* Frequency of the PLL in MHz */
|
||||||
|
|
||||||
/* The following 3 bitsets determine which clocks will be enabled at initialization
|
/* The following 3 bitsets determine which clocks will be enabled at initialization
|
||||||
* time.
|
* time.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define BOARD_CLKS_0_31 \
|
#define BOARD_CLKS_0_31 \
|
||||||
(_RBIT(CLKID_APB0CLK,0)|_RBIT(CLKID_APB1CLK,0)|_RBIT(CLKID_APB2CLK,0)|\
|
(_RBIT(CLKID_APB0CLK,0)|_RBIT(CLKID_APB1CLK,0)|_RBIT(CLKID_APB2CLK,0)|\
|
||||||
_RBIT(CLKID_APB3CLK,0)|_RBIT(CLKID_APB4CLK,0)|_RBIT(CLKID_AHB2INTCCLK,0)|\
|
_RBIT(CLKID_APB3CLK,0)|_RBIT(CLKID_APB4CLK,0)|_RBIT(CLKID_AHB2INTCCLK,0)|\
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
* PGTABLE_BASE_VADDR - The mapped address of the page table in ROM, and
|
* PGTABLE_BASE_VADDR - The mapped address of the page table in ROM, and
|
||||||
* Mappings for each of the PSECTIONS in lpc31_memorymap.h
|
* Mappings for each of the PSECTIONS in lpc31_memorymap.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_ROMPGTABLE
|
#ifdef CONFIG_ARCH_ROMPGTABLE
|
||||||
/* The LPC31xx ROM page table uses a 1-1 physical to virtual memory mapping */
|
/* The LPC31xx ROM page table uses a 1-1 physical to virtual memory mapping */
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ ifeq ($(WINTOOL),y)
|
|||||||
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
|
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/ld.script}"
|
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script}"
|
||||||
else
|
else
|
||||||
# Linux/Cygwin-native toolchain
|
# Linux/Cygwin-native toolchain
|
||||||
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
CFLAGS += -I$(TOPDIR)/sched
|
CFLAGS += -I$(TOPDIR)/sched
|
||||||
|
|
||||||
ASRCS =
|
ASRCS =
|
||||||
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
||||||
|
|
||||||
CSRCS = up_boot.c up_clkinit.c
|
CSRCS = up_boot.c up_clkinit.c
|
||||||
|
|||||||
@@ -96,15 +96,15 @@
|
|||||||
|
|
||||||
#if defined(CONFIG_PAGING_M25PX) && defined(CONFIG_PAGING_AT45DB)
|
#if defined(CONFIG_PAGING_M25PX) && defined(CONFIG_PAGING_AT45DB)
|
||||||
# error "Both CONFIG_PAGING_M25PX and CONFIG_PAGING_AT45DB are defined"
|
# error "Both CONFIG_PAGING_M25PX and CONFIG_PAGING_AT45DB are defined"
|
||||||
# undef CONFIG_PAGING_M25PX
|
# undef CONFIG_PAGING_M25PX
|
||||||
#endif
|
#endif
|
||||||
#if defined(CONFIG_PAGING_BINPATH) && defined(CONFIG_PAGING_M25PX)
|
#if defined(CONFIG_PAGING_BINPATH) && defined(CONFIG_PAGING_M25PX)
|
||||||
# error "Both CONFIG_PAGING_BINPATH and CONFIG_PAGING_M25PX are defined"
|
# error "Both CONFIG_PAGING_BINPATH and CONFIG_PAGING_M25PX are defined"
|
||||||
# undef CONFIG_PAGING_BINPATH
|
# undef CONFIG_PAGING_BINPATH
|
||||||
#endif
|
#endif
|
||||||
#if defined(CONFIG_PAGING_BINPATH) && defined(CONFIG_PAGING_AT45DB)
|
#if defined(CONFIG_PAGING_BINPATH) && defined(CONFIG_PAGING_AT45DB)
|
||||||
# error "Both CONFIG_PAGING_BINPATH and CONFIG_PAGING_AT45DB are defined"
|
# error "Both CONFIG_PAGING_BINPATH and CONFIG_PAGING_AT45DB are defined"
|
||||||
# undef CONFIG_PAGING_BINPATH
|
# undef CONFIG_PAGING_BINPATH
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Are we accessing the page source data through a file path? */
|
/* Are we accessing the page source data through a file path? */
|
||||||
@@ -260,7 +260,7 @@ static inline void lpc31_initsrc(void)
|
|||||||
|
|
||||||
ret = mmcsd_slotinitialize(CONFIG_EA3152_PAGING_MINOR, sdio);
|
ret = mmcsd_slotinitialize(CONFIG_EA3152_PAGING_MINOR, sdio);
|
||||||
DEBUGASSERT(ret == OK);
|
DEBUGASSERT(ret == OK);
|
||||||
|
|
||||||
/* Then let's guess and say that there is a card in the slot.
|
/* Then let's guess and say that there is a card in the slot.
|
||||||
* (We are basically jodido anyway if there is no card in the slot).
|
* (We are basically jodido anyway if there is no card in the slot).
|
||||||
*/
|
*/
|
||||||
@@ -427,7 +427,7 @@ int up_fillpage(FAR struct tcb_s *tcb, FAR void *vpage)
|
|||||||
|
|
||||||
lpc31_initsrc();
|
lpc31_initsrc();
|
||||||
|
|
||||||
/* Create an offset into the binary image that corresponds to the
|
/* Create an offset into the binary image that corresponds to the
|
||||||
* virtual address. File offset 0 corresponds to PG_LOCKED_VBASE.
|
* virtual address. File offset 0 corresponds to PG_LOCKED_VBASE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -437,7 +437,7 @@ int up_fillpage(FAR struct tcb_s *tcb, FAR void *vpage)
|
|||||||
|
|
||||||
pos = lseek(g_pgsrc.fd, offset, SEEK_SET);
|
pos = lseek(g_pgsrc.fd, offset, SEEK_SET);
|
||||||
DEBUGASSERT(pos != (off_t)-1);
|
DEBUGASSERT(pos != (off_t)-1);
|
||||||
|
|
||||||
/* And read the page data from that offset */
|
/* And read the page data from that offset */
|
||||||
|
|
||||||
nbytes = read(g_pgsrc.fd, vpage, PAGESIZE);
|
nbytes = read(g_pgsrc.fd, vpage, PAGESIZE);
|
||||||
@@ -450,7 +450,7 @@ int up_fillpage(FAR struct tcb_s *tcb, FAR void *vpage)
|
|||||||
|
|
||||||
lpc31_initsrc();
|
lpc31_initsrc();
|
||||||
|
|
||||||
/* Create an offset into the binary image that corresponds to the
|
/* Create an offset into the binary image that corresponds to the
|
||||||
* virtual address. File offset 0 corresponds to PG_LOCKED_VBASE.
|
* virtual address. File offset 0 corresponds to PG_LOCKED_VBASE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
+14
-14
@@ -110,7 +110,7 @@
|
|||||||
*
|
*
|
||||||
* Micron Initialization Sequence from their data sheet for the Micron
|
* Micron Initialization Sequence from their data sheet for the Micron
|
||||||
* MT48LC32M16A2 32M x 16 SDRAM chip:
|
* MT48LC32M16A2 32M x 16 SDRAM chip:
|
||||||
*
|
*
|
||||||
* "SDRAMs must be powered up and initialized in a predefined manner.
|
* "SDRAMs must be powered up and initialized in a predefined manner.
|
||||||
* Operational procedures other than those specified may result in
|
* Operational procedures other than those specified may result in
|
||||||
* undefined operation. Once power is applied to VDD and VDDQ
|
* undefined operation. Once power is applied to VDD and VDDQ
|
||||||
@@ -118,33 +118,33 @@
|
|||||||
* a signal cycling within timing constraints specified for the clock
|
* a signal cycling within timing constraints specified for the clock
|
||||||
* pin), the SDRAM requires a 100µs delay prior to issuing any command
|
* pin), the SDRAM requires a 100µs delay prior to issuing any command
|
||||||
* other than a COMMAND INHIBIT or NOP.
|
* other than a COMMAND INHIBIT or NOP.
|
||||||
*
|
*
|
||||||
* "Starting at some point during this 100µs period and continuing at least
|
* "Starting at some point during this 100µs period and continuing at least
|
||||||
* through the end of this period, COMMAND INHIBIT or NOP commands should
|
* through the end of this period, COMMAND INHIBIT or NOP commands should
|
||||||
* be applied. Once the 100µs delay has been satisfied with at least one
|
* be applied. Once the 100µs delay has been satisfied with at least one
|
||||||
* COMMAND INHIBIT or NOP command having been applied, a PRECHARGE command
|
* COMMAND INHIBIT or NOP command having been applied, a PRECHARGE command
|
||||||
* should be applied. All banks must then be precharged, thereby placing
|
* should be applied. All banks must then be precharged, thereby placing
|
||||||
* the device in the all banks idle state.
|
* the device in the all banks idle state.
|
||||||
*
|
*
|
||||||
* "Once in the idle state, two AUTO REFRESH cycles must be performed. After
|
* "Once in the idle state, two AUTO REFRESH cycles must be performed. After
|
||||||
* the AUTO REFRESH cycles are complete, the SDRAM is ready for mode
|
* the AUTO REFRESH cycles are complete, the SDRAM is ready for mode
|
||||||
* register programming.
|
* register programming.
|
||||||
*
|
*
|
||||||
* "Because the mode register will power up in an unknown state, it should
|
* "Because the mode register will power up in an unknown state, it should
|
||||||
* be loaded prior to applying any operational command."
|
* be loaded prior to applying any operational command."
|
||||||
*
|
*
|
||||||
* The JEDEC recommendation for initializing SDRAM is:
|
* The JEDEC recommendation for initializing SDRAM is:
|
||||||
*
|
*
|
||||||
* APPLY POWER (Vdd/Vddq equally, and CLK is stable)
|
* APPLY POWER (Vdd/Vddq equally, and CLK is stable)
|
||||||
* Wait 200uS
|
* Wait 200uS
|
||||||
* PRECHARGE all
|
* PRECHARGE all
|
||||||
* 8 AUTO REFRESH COMMANDS
|
* 8 AUTO REFRESH COMMANDS
|
||||||
* LOAD MODE REGISTER
|
* LOAD MODE REGISTER
|
||||||
* SDRAM is ready for operation
|
* SDRAM is ready for operation
|
||||||
*
|
*
|
||||||
* The Micron SDRAM parts will work fine with the JEDEC sequence, but also
|
* The Micron SDRAM parts will work fine with the JEDEC sequence, but also
|
||||||
* allow for a quicker init sequence of:
|
* allow for a quicker init sequence of:
|
||||||
*
|
*
|
||||||
* APPLY POWER (Vdd/Vddq equally, and CLK is stable)
|
* APPLY POWER (Vdd/Vddq equally, and CLK is stable)
|
||||||
* Wait at least 100uS (during which time start applying and
|
* Wait at least 100uS (during which time start applying and
|
||||||
* continue applying NOP or COMMAND INHIBIT)
|
* continue applying NOP or COMMAND INHIBIT)
|
||||||
@@ -221,7 +221,7 @@ static void lpc31_sdraminitialize(void)
|
|||||||
putreg32(NS2HCLKS(EA3152_SDRAM_TMRD, HCLK2, MPMC_DYNTMRD_MASK),
|
putreg32(NS2HCLKS(EA3152_SDRAM_TMRD, HCLK2, MPMC_DYNTMRD_MASK),
|
||||||
LPC31_MPMC_DYNTMRD);
|
LPC31_MPMC_DYNTMRD);
|
||||||
up_udelay(100);
|
up_udelay(100);
|
||||||
|
|
||||||
/* Issue continuous NOP commands */
|
/* Issue continuous NOP commands */
|
||||||
|
|
||||||
putreg32((MPMC_DYNCONTROL_CE|MPMC_DYNCONTROL_CS|MPMC_DYNCONTROL_INOP),
|
putreg32((MPMC_DYNCONTROL_CE|MPMC_DYNCONTROL_CS|MPMC_DYNCONTROL_INOP),
|
||||||
@@ -230,7 +230,7 @@ static void lpc31_sdraminitialize(void)
|
|||||||
/* Load ~200us delay value to timer1 */
|
/* Load ~200us delay value to timer1 */
|
||||||
|
|
||||||
up_udelay(200);
|
up_udelay(200);
|
||||||
|
|
||||||
/* Issue a "pre-charge all" command */
|
/* Issue a "pre-charge all" command */
|
||||||
|
|
||||||
putreg32((MPMC_DYNCONTROL_CE|MPMC_DYNCONTROL_CS|MPMC_DYNCONTROL_IPALL),
|
putreg32((MPMC_DYNCONTROL_CE|MPMC_DYNCONTROL_CS|MPMC_DYNCONTROL_IPALL),
|
||||||
@@ -246,7 +246,7 @@ static void lpc31_sdraminitialize(void)
|
|||||||
/* Load ~250us delay value to timer1 */
|
/* Load ~250us delay value to timer1 */
|
||||||
|
|
||||||
up_udelay(250);
|
up_udelay(250);
|
||||||
|
|
||||||
/* Recommended refresh interval for normal operation of the Micron
|
/* Recommended refresh interval for normal operation of the Micron
|
||||||
* MT48LC16LFFG = 7.8125usec (128KHz rate). ((HCLK / 128000) - 1) =
|
* MT48LC16LFFG = 7.8125usec (128KHz rate). ((HCLK / 128000) - 1) =
|
||||||
* refresh counter interval rate, (subtract one for safety margin).
|
* refresh counter interval rate, (subtract one for safety margin).
|
||||||
@@ -267,7 +267,7 @@ static void lpc31_sdraminitialize(void)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
tmp = getreg32(LPC31_EXTSDRAM0_VSECTION | (0x23 << 13));
|
tmp = getreg32(LPC31_EXTSDRAM0_VSECTION | (0x23 << 13));
|
||||||
|
|
||||||
putreg32((MPMC_DYNCONFIG0_MDSDRAM|MPMC_DYNCONFIG_HP16_32MX16),
|
putreg32((MPMC_DYNCONFIG0_MDSDRAM|MPMC_DYNCONFIG_HP16_32MX16),
|
||||||
LPC31_MPMC_DYNCONFIG0);
|
LPC31_MPMC_DYNCONFIG0);
|
||||||
putreg32((MPMC_DYNRASCAS0_RAS2CLK|MPMC_DYNRASCAS0_CAS2CLK),
|
putreg32((MPMC_DYNRASCAS0_RAS2CLK|MPMC_DYNRASCAS0_CAS2CLK),
|
||||||
@@ -303,7 +303,7 @@ static void lpc31_sdraminitialize(void)
|
|||||||
void lpc31_meminitialize(void)
|
void lpc31_meminitialize(void)
|
||||||
{
|
{
|
||||||
/* Configure the LCD pins in external bus interface (EBI/MPMC) memory mode.
|
/* Configure the LCD pins in external bus interface (EBI/MPMC) memory mode.
|
||||||
*
|
*
|
||||||
* LCD_CSB -> MPMC_NSTCS_0
|
* LCD_CSB -> MPMC_NSTCS_0
|
||||||
* LCD_DB_1 -> MPMC_NSTCS_1
|
* LCD_DB_1 -> MPMC_NSTCS_1
|
||||||
* LCD_DB_0 -> MPMC_CLKOUT
|
* LCD_DB_0 -> MPMC_CLKOUT
|
||||||
@@ -331,7 +331,7 @@ void lpc31_meminitialize(void)
|
|||||||
/* Enable EBI clock */
|
/* Enable EBI clock */
|
||||||
|
|
||||||
lpc31_enableclock(CLKID_EBICLK);
|
lpc31_enableclock(CLKID_EBICLK);
|
||||||
|
|
||||||
/* Enable MPMC controller clocks */
|
/* Enable MPMC controller clocks */
|
||||||
|
|
||||||
lpc31_enableclock(CLKID_MPMCCFGCLK);
|
lpc31_enableclock(CLKID_MPMCCFGCLK);
|
||||||
@@ -351,7 +351,7 @@ void lpc31_meminitialize(void)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
putreg32(EA3152_MPMC_DELAY, LPC31_SYSCREG_MPMC_DELAYMODES);
|
putreg32(EA3152_MPMC_DELAY, LPC31_SYSCREG_MPMC_DELAYMODES);
|
||||||
|
|
||||||
/* Configure Micron MT48LC32M16A2 SDRAM on the EA3152 board */
|
/* Configure Micron MT48LC32M16A2 SDRAM on the EA3152 board */
|
||||||
|
|
||||||
lpc31_sdraminitialize();
|
lpc31_sdraminitialize();
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ int nsh_archinitialize(void)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
message("nsh_archinitialize: Successfully bound SDIO to the MMC/SD driver\n");
|
message("nsh_archinitialize: Successfully bound SDIO to the MMC/SD driver\n");
|
||||||
|
|
||||||
/* Then let's guess and say that there is a card in the slot. I need to check to
|
/* Then let's guess and say that there is a card in the slot. I need to check to
|
||||||
* see if the LPC313X10E-EVAL board supports a GPIO to detect if there is a card in
|
* see if the LPC313X10E-EVAL board supports a GPIO to detect if there is a card in
|
||||||
* the slot.
|
* the slot.
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ int usbmsc_archinitialize(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Register a RAMDISK device to manage this RAM image */
|
/* Register a RAMDISK device to manage this RAM image */
|
||||||
|
|
||||||
ret = ramdisk_register(CONFIG_SYSTEM_USBMSC_DEVMINOR1,
|
ret = ramdisk_register(CONFIG_SYSTEM_USBMSC_DEVMINOR1,
|
||||||
pbuffer,
|
pbuffer,
|
||||||
USBMSC_NSECTORS,
|
USBMSC_NSECTORS,
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user