Add configuration for Wave Share Open1788 (fragmentary)

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5537 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2013-01-18 22:42:37 +00:00
parent b1c26dd6b3
commit 40aa300aef
6 changed files with 173 additions and 91 deletions

View File

@ -103,6 +103,131 @@ source arch/x86/Kconfig
source arch/z16/Kconfig source arch/z16/Kconfig
source arch/z80/Kconfig source arch/z80/Kconfig
comment "External Memory Configuration"
config ARCH_HAVE_EXTNAND
bool
config ARCH_HAVE_EXTNOR
bool
config ARCH_HAVE_EXTDRAM
bool
config ARCH_HAVE_EXTSRAM0
bool
config ARCH_HAVE_EXTSRAM1
bool
config ARCH_EXTNAND
bool "Configure external NAND"
default n
depends on ARCH_HAVE_EXTNAND
---help---
Configure external NAND memory and, if applicable, map then external
NAND into the memory map.
if ARCH_EXTNAND
config ARCH_EXTNANDSIZE
int "External NAND size"
default 0
---help---
Size of the external NAND in bytes.
endif
config ARCH_EXTNOR
bool "Configure external NOR memory"
default n
depends on ARCH_HAVE_EXTNOR
---help---
Configure external NOR memory and, if applicable, map then external
NOR into the memory map.
if ARCH_EXTNOR
config ARCH_EXTNORSIZE
int "External NOR size"
default 0
---help---
Size of the external NOR in bytes.
endif
config ARCH_EXTDRAM
bool "Configure external DRAM"
default n
depends on ARCH_HAVE_EXTDRAM
---help---
Configure external DRAM memory and, if applicable, map then external
DRAM into the memory map.
if ARCH_EXTDRAM
config ARCH_EXTDRAMSIZE
int "External SDRAM size"
default 0
---help---
Size of the external SDRAM in bytes.
config ARCH_EXTDRAMHEAP
bool "Add external SDRAM to the heap"
default y
---help---
Add the external SDRAM into the heap.
endif
config ARCH_EXTSRAM0
bool "Configure external SRAM (Bank 0)"
default n
depends on ARCH_HAVE_EXTSRAM0
---help---
Configure external SRAM Bank 0 memory and, if applicable, map then
external SRAM Bank 0 into the memory map.
if ARCH_EXTSRAM0
config ARCH_EXTSRAM0SIZE
int "External SRAM size"
default 0
---help---
Size of the external SRAM Bank 0 in bytes.
config ARCH_EXTSRAM0HEAP
bool "Add external SRAM (Bank 0) to the heap"
default y
---help---
Add external SRAM Bank 0 into the heap.
endif
config ARCH_EXTSRAM1
bool "Configure external SRAM (Bank 1)"
default n
depends on ARCH_HAVE_EXTSRAM1
---help---
Configure external SRAM Bank 1 memory and, if applicable, map then
external SRAM Bank 1 into the memory map.
if ARCH_EXTSRAM1
config ARCH_EXTSRAM1SIZE
int "External SRAM1 size"
default 0
---help---
Size of the external SRAM Bank 1 in bytes.
config ARCH_EXTSRAM1HEAP
bool "Add external SRAM (Bank 1) to the heap"
default y
---help---
Add external SRAM Bank 1 into the heap.
endif
comment "Architecture Options" comment "Architecture Options"
config ARCH_NOINTC config ARCH_NOINTC

View File

@ -104,9 +104,17 @@ config ARCH_FAMILY_LPC176X
config ARCH_FAMILY_LPC177X config ARCH_FAMILY_LPC177X
bool bool
select ARCH_HAVE_EXTNAND
select ARCH_HAVE_EXTSRAM0
select ARCH_HAVE_EXTDRAM
select ARCH_HAVE_EXTNOR
config ARCH_FAMILY_LPC178X config ARCH_FAMILY_LPC178X
bool bool
select ARCH_HAVE_EXTNAND
select ARCH_HAVE_EXTSRAM0
select ARCH_HAVE_EXTDRAM
select ARCH_HAVE_EXTNOR
menu "LPC17xx Peripheral Support" menu "LPC17xx Peripheral Support"

View File

@ -12,15 +12,31 @@ choice
config ARCH_CHIP_LPC3130 config ARCH_CHIP_LPC3130
bool "LPC3130" bool "LPC3130"
select ARCH_HAVE_EXTNAN
select ARCH_HAVE_EXTSRAM0
select ARCH_HAVE_EXTSRAM1
select ARCH_HAVE_EXTDRAM
config ARCH_CHIP_LPC3131 config ARCH_CHIP_LPC3131
bool "LPC3131" bool "LPC3131"
select ARCH_HAVE_EXTNAND
select ARCH_HAVE_EXTSRAM0
select ARCH_HAVE_EXTSRAM1
select ARCH_HAVE_EXTDRAM
config ARCH_CHIP_LPC3152 config ARCH_CHIP_LPC3152
bool "LPC3152" bool "LPC3152"
select ARCH_HAVE_EXTNAND
select ARCH_HAVE_EXTSRAM0
select ARCH_HAVE_EXTSRAM1
select ARCH_HAVE_EXTDRAM
config ARCH_CHIP_LPC3154 config ARCH_CHIP_LPC3154
bool "LPC3154" bool "LPC3154"
select ARCH_HAVE_EXTNAND
select ARCH_HAVE_EXTSRAM0
select ARCH_HAVE_EXTSRAM1
select ARCH_HAVE_EXTDRAM
endchoice endchoice
@ -48,79 +64,12 @@ config LPC31_BUILDROOT
endchoice endchoice
menu "LPC31xx Memory Mapping"
config LPC31_EXTNAND
bool "Map external NAND"
default n
---help---
Map external NAND into the memory map.
config LPC31_EXTSDRAM
bool "Map external SDRAM"
default n
---help---
Map external SDRAM into the memory map.
config LPC31_EXTSDRAMHEAP
bool "Add external SDRAM to the heap"
default y
depends on LPC31_EXTSDRAM
---help---
Add external SDRAM into the heap.
config LPC31_EXTSDRAMSIZE
int "External SDRAM size"
depends on LPC31_EXTSDRAM
---help---
Size of the external SDRAM.
config LPC31_SDRAMHCLK config LPC31_SDRAMHCLK
int "External SDRAM HCLK" int "External SDRAM HCLK"
depends on LPC31_EXTSDRAM depends on ARCH_EXTSDRAM
---help--- ---help---
The SDRAM HCLK may be specified here (if not, it will be calculated). The SDRAM HCLK may be specified here (if not, it will be calculated).
config LPC31_EXTSRAM0
bool "Map external SRAM0"
default n
---help---
Map external SRAM0 into the memory map.
config LPC31_EXTSRAM0HEAP
bool "Add external SRAM0 to the heap"
default y
depends on LPC31_EXTSRAM0
---help---
Add external SRAM0 into the heap.
config LPC31_EXTSRAM0SIZE
int "External SRAM size"
depends on LPC31_EXTSRAM0
---help---
Size of the external SRAM.
config LPC31_EXTSRAM1
bool "Map external SRAM0"
default n
---help---
Map external SRAM1 into the memory map.
config LPC31_EXTSRAM1HEAP
bool "Add external SRAM1 to the heap"
default y
depends on LPC31_EXTSRAM1
---help---
Add external SRAM1 into the heap.
config LPC31_EXTSRAM1SIZE
int "External SRAM1 size"
depends on LPC31_EXTSRAM1
---help---
Size of the external SRAM1.
endmenu
menu "LPC31xx Peripheral Support" menu "LPC31xx Peripheral Support"
config LPC31_UART config LPC31_UART

View File

@ -67,31 +67,31 @@
* memory regions that we have been asked to add to the heap. * memory regions that we have been asked to add to the heap.
*/ */
#if defined(CONFIG_LPC31_EXTSRAM0) && defined(CONFIG_LPC31_EXTSRAM0HEAP) #if defined(CONFIG_ARCH_EXTSRAM0) && defined(CONFIG_ARCH_EXTSRAM0HEAP)
# if defined(CONFIG_LPC31_EXTSRAM1) && defined(CONFIG_LPC31_EXTSRAM1HEAP) # if defined(CONFIG_ARCH_EXTSRAM1) && defined(CONFIG_ARCH_EXTSRAM1HEAP)
# if defined(CONFIG_LPC31_EXTSDRAM) && defined(CONFIG_LPC31_EXTSDRAMHEAP) # if defined(CONFIG_ARCH_EXTDRAM) && defined(CONFIG_ARCH_EXTDRAMHEAP)
# /* SRAM+EXTSRAM0+EXTSRAM1+EXTSDRAM */ # /* SRAM+EXTSRAM0+EXTSRAM1+EXTSDRAM */
# define LPC31_NEXT_REGIONS 4 # define LPC31_NEXT_REGIONS 4
# else # else
# /* SRAM+EXTSRAM0+EXTSRAM1 */ # /* SRAM+EXTSRAM0+EXTSRAM1 */
# define LPC31_NEXT_REGIONS 3 # define LPC31_NEXT_REGIONS 3
# endif # endif
# elif defined(CONFIG_LPC31_EXTSDRAM) && defined(CONFIG_LPC31_EXTSDRAMHEAP) # elif defined(CONFIG_ARCH_EXTDRAM) && defined(CONFIG_ARCH_EXTDRAMHEAP)
# /* SRAM+EXTSRAM0+EXTSDRAM */ # /* SRAM+EXTSRAM0+EXTSDRAM */
# define LPC31_NEXT_REGIONS 3 # define LPC31_NEXT_REGIONS 3
# else # else
# /* SRAM+EXTSRAM0 */ # /* SRAM+EXTSRAM0 */
# define LPC31_NEXT_REGIONS 2 # define LPC31_NEXT_REGIONS 2
# endif # endif
#elif defined(CONFIG_LPC31_EXTSRAM1) && defined(CONFIG_LPC31_EXTSRAM1HEAP) #elif defined(CONFIG_ARCH_EXTSRAM1) && defined(CONFIG_ARCH_EXTSRAM1HEAP)
# if defined(CONFIG_LPC31_EXTSDRAM) && defined(CONFIG_LPC31_EXTSDRAMHEAP) # if defined(CONFIG_ARCH_EXTDRAM) && defined(CONFIG_ARCH_EXTDRAMHEAP)
# /* SRAM+EXTSRAM1+EXTSDRAM */ # /* SRAM+EXTSRAM1+EXTSDRAM */
# define LPC31_NEXT_REGIONS 3 # define LPC31_NEXT_REGIONS 3
# else # else
# /* SRAM+EXTSRAM1 */ # /* SRAM+EXTSRAM1 */
# define LPC31_NEXT_REGIONS 2 # define LPC31_NEXT_REGIONS 2
# endif # endif
#elif defined(CONFIG_LPC31_EXTSDRAM) && defined(CONFIG_LPC31_EXTSDRAMHEAP) #elif defined(CONFIG_ARCH_EXTDRAM) && defined(CONFIG_ARCH_EXTDRAMHEAP)
# /* SRAM+EXTSDRAM */ # /* SRAM+EXTSDRAM */
# define LPC31_NEXT_REGIONS 2 # define LPC31_NEXT_REGIONS 2
#else #else
@ -105,13 +105,13 @@
# else # else
# error "CONFIG_MM_REGIONS is too large for the selected memory regions" # error "CONFIG_MM_REGIONS is too large for the selected memory regions"
# endif # endif
# if defined(CONFIG_LPC31_EXTSRAM0) && defined(CONFIG_LPC31_EXTSRAM0HEAP) # if defined(CONFIG_ARCH_EXTSRAM0) && defined(CONFIG_ARCH_EXTSRAM0HEAP)
# error "External SRAM0 is selected for heap" # error "External SRAM0 is selected for heap"
# endif # endif
# if defined(CONFIG_LPC31_EXTSRAM1) && defined(CONFIG_LPC31_EXTSRAM1HEAP) # if defined(CONFIG_ARCH_EXTSRAM1) && defined(CONFIG_ARCH_EXTSRAM1HEAP)
# error "External SRAM1 is selected for heap" # error "External SRAM1 is selected for heap"
# endif # endif
# if defined(CONFIG_LPC31_EXTSDRAM) && defined(CONFIG_LPC31_EXTSDRAMHEAP) # if defined(CONFIG_ARCH_EXTDRAM) && defined(CONFIG_ARCH_EXTDRAMHEAP)
# error "External SRAM1 is selected for heap" # error "External SRAM1 is selected for heap"
# endif # endif
#endif #endif
@ -191,16 +191,16 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
#if CONFIG_MM_REGIONS > 1 #if CONFIG_MM_REGIONS > 1
void up_addregion(void) void up_addregion(void)
{ {
#if defined(CONFIG_LPC31_EXTSRAM0) && defined(CONFIG_LPC31_EXTSRAM0HEAP) #if defined(CONFIG_ARCH_EXTSRAM0) && defined(CONFIG_ARCH_EXTSRAM0HEAP)
mm_addregion((FAR void*)LPC31_EXTSRAM0_VSECTION, CONFIG_LPC31_EXTSRAM0SIZE); mm_addregion((FAR void*)LPC31_EXTSRAM0_VSECTION, CONFIG_ARCH_EXTSRAM0SIZE);
#endif #endif
#if defined(CONFIG_LPC31_EXTSRAM1) && defined(CONFIG_LPC31_EXTSRAM1HEAP) #if defined(CONFIG_ARCH_EXTSRAM1) && defined(CONFIG_ARCH_EXTSRAM1HEAP)
mm_addregion((FAR void*)LPC31_EXTSRAM1_VSECTION, CONFIG_LPC31_EXTSRAM1SIZE); mm_addregion((FAR void*)LPC31_EXTSRAM1_VSECTION, CONFIG_ARCH_EXTSRAM1SIZE);
#endif #endif
#if defined(CONFIG_LPC31_EXTSDRAM) && defined(CONFIG_LPC31_EXTSDRAMHEAP) #if defined(CONFIG_ARCH_EXTDRAM) && defined(CONFIG_ARCH_EXTDRAMHEAP)
mm_addregion((FAR void*)LPC31_EXTSDRAM_VSECTION, CONFIG_LPC31_EXTSDRAMSIZE); mm_addregion((FAR void*)LPC31_EXTSDRAM_VSECTION, CONFIG_ARCH_EXTDRAMSIZE);
#endif #endif
} }
#endif #endif

View File

@ -112,17 +112,17 @@ static const struct section_mapping_s section_mapping[] =
LPC31_MCI_MMUFLAGS, LPC31_MCI_NSECTIONS}, LPC31_MCI_MMUFLAGS, LPC31_MCI_NSECTIONS},
{ LPC31_USBOTG_PSECTION, LPC31_USBOTG_VSECTION, { LPC31_USBOTG_PSECTION, LPC31_USBOTG_VSECTION,
LPC31_USBOTG_MMUFLAGS, LPC31_USBOTG_NSECTIONS}, LPC31_USBOTG_MMUFLAGS, LPC31_USBOTG_NSECTIONS},
#if defined(CONFIG_LPC31_EXTSRAM0) && CONFIG_LPC31_EXTSRAM0SIZE > 0 #if defined(CONFIG_ARCH_EXTSRAM0) && CONFIG_ARCH_EXTSRAM0SIZE > 0
{ LPC31_EXTSRAM_PSECTION, LPC31_EXTSRAM_VSECTION, { LPC31_EXTSRAM_PSECTION, LPC31_EXTSRAM_VSECTION,
LPC31_EXTSDRAM_MMUFLAGS, LPC31_EXTSRAM_NSECTIONS}, LPC31_EXTSDRAM_MMUFLAGS, LPC31_EXTSRAM_NSECTIONS},
#endif #endif
#if defined(CONFIG_LPC31_EXTSDRAM) && CONFIG_LPC31_EXTSDRAMSIZE > 0 #if defined(CONFIG_ARCH_EXTDRAM) && CONFIG_ARCH_EXTDRAMSIZE > 0
{ LPC31_EXTSDRAM0_PSECTION, LPC31_EXTSDRAM0_VSECTION, { LPC31_EXTSDRAM0_PSECTION, LPC31_EXTSDRAM0_VSECTION,
LPC31_EXTSDRAM_MMUFLAGS, LPC31_EXTSDRAM0_NSECTIONS}, LPC31_EXTSDRAM_MMUFLAGS, LPC31_EXTSDRAM0_NSECTIONS},
#endif #endif
{ LPC31_INTC_PSECTION, LPC31_INTC_VSECTION, { LPC31_INTC_PSECTION, LPC31_INTC_VSECTION,
LPC31_INTC_MMUFLAGS, LPC31_INTC_NSECTIONS}, LPC31_INTC_MMUFLAGS, LPC31_INTC_NSECTIONS},
#ifdef CONFIG_LPC31_EXTNAND #ifdef CONFIG_ARCH_EXTNAND
{ LPC31_NAND_PSECTION, LPC31_NAND_VSECTION { LPC31_NAND_PSECTION, LPC31_NAND_VSECTION
LPC31_NAND_MMUFLAGS, LPC31_NAND_NSECTIONS}, LPC31_NAND_MMUFLAGS, LPC31_NAND_NSECTIONS},
#endif #endif

View File

@ -81,7 +81,7 @@
/* 0x60001000-0x6fffffff: Reserved */ /* 0x60001000-0x6fffffff: Reserved */
#define LPC31_NAND_PSECTION 0x70000000 /* 0x70000000-0x700007ff: NANDFLASH Ctrl 2Kb */ #define LPC31_NAND_PSECTION 0x70000000 /* 0x70000000-0x700007ff: NANDFLASH Ctrl 2Kb */
/* 0x70000800-0xffffffff: Reserved */ /* 0x70000800-0xffffffff: Reserved */
#ifdef CONFIG_LPC31_EXTNAND /* End of the physical address space */ #ifdef CONFIG_ARCH_EXTNAND /* End of the physical address space */
# define LPC31_LAST_PSECTION (LPC31_NAND_PSECTION + (1 << 20)) # define LPC31_LAST_PSECTION (LPC31_NAND_PSECTION + (1 << 20))
#else #else
# define LPC31_LAST_PSECTION (LPC31_INTC_PSECTION + (1 << 20)) # define LPC31_LAST_PSECTION (LPC31_INTC_PSECTION + (1 << 20))
@ -176,8 +176,8 @@
* the size of the SDRAM installed. * the size of the SDRAM installed.
*/ */
#if defined(CONFIG_LPC31_EXTSDRAM) && CONFIG_LPC31_EXTSDRAMSIZE > 0 #if defined(CONFIG_ARCH_EXTDRAM) && CONFIG_ARCH_EXTDRAMSIZE > 0
# define LPC31_EXTSDRAM0_NSECTIONS _NSECTIONS(CONFIG_LPC31_EXTSDRAMSIZE) # define LPC31_EXTSDRAM0_NSECTIONS _NSECTIONS(CONFIG_ARCH_EXTDRAMSIZE)
#endif #endif
/* Section MMU Flags */ /* Section MMU Flags */
@ -233,7 +233,7 @@
# define LPC31_INTC_VSECTION 0x60000000 /* 0x60000000-0x60000fff: Interrupt controller 4Kb */ # define LPC31_INTC_VSECTION 0x60000000 /* 0x60000000-0x60000fff: Interrupt controller 4Kb */
# define LPC31_NAND_VSECTION 0x70000000 /* 0x70000000-0x700007ff: NANDFLASH Ctrl 2Kb */ # define LPC31_NAND_VSECTION 0x70000000 /* 0x70000000-0x700007ff: NANDFLASH Ctrl 2Kb */
# #
# ifdef CONFIG_LPC31_EXTNAND /* End of the virtual address space */ # ifdef CONFIG_ARCH_EXTNAND /* End of the virtual address space */
# define LPC31_LAST_VSECTION (LPC31_NAND_VSECTION + (1 << 20)) # define LPC31_LAST_VSECTION (LPC31_NAND_VSECTION + (1 << 20))
# else # else
# define LPC31_LAST_VSECTION (LPC31_INTC_VSECTION + (1 << 20)) # define LPC31_LAST_VSECTION (LPC31_INTC_VSECTION + (1 << 20))