Skip to content
Snippets Groups Projects
Commit d869cc4e authored by patacongo's avatar patacongo
Browse files

STM32 Kconfig looks good. STM32 external ram configuration changed.

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5100 42af7a65-404d-4744-a932-0658087f49c3
parent 2adee9fd
No related branches found
No related tags found
No related merge requests found
Showing
with 85 additions and 110 deletions
......@@ -3263,4 +3263,8 @@
* Kconfig: Refactor serial settings (moved from chip to drivers/serial).
AVR "teensy" now builds with Kconfig (contributed by Richard Cochran).
* Kconfig: Add configuration settings for the LPC17xx
* Kconfig: Add configuratino settings for the LM3S (from Richard Cochran).
* Kconfig: Add configuration settings for the LM3S (from Richard Cochran).
* Kconfig: Verify configuration settings for the STM32. This include
changes in the way that the external SRAM is configured: Define
CONFIG_HEAP2_SIZE (decimal) instead of CONFIG_HEAP2_END (hex).
......@@ -58,11 +58,13 @@ config ARCH_X86
config ARCH_Z16
bool "ZNEO"
select ARCH_HAVE_HEAP2
---help---
ZiLOG ZNEO 16-bit architectures (z16f).
config ARCH_Z80
bool "z80"
select ARCH_HAVE_HEAP2
---help---
ZiLOG 8-bit architectures (z80, ez80, z8).
......
......@@ -17,6 +17,7 @@ config ARCH_CHIP_C5471
config ARCH_CHIP_CALYPSO
bool "Calypso"
select ARCH_ARM7TDMI
select ARCH_HAVE_HEAP2
---help---
TI Calypso-based cell phones (ARM7TDMI)
......@@ -29,6 +30,7 @@ config ARCH_CHIP_DM320
config ARCH_CHIP_IMX
bool "Freescale iMX"
select ARCH_ARM920T
select ARCH_HAVE_HEAP2
---help---
Freescale iMX architectures (ARM920T)
......
......@@ -37,6 +37,10 @@
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <nuttx/mm.h>
......@@ -52,6 +56,14 @@
#include "up_arch.h"
#include "up_internal.h"
/****************************************************************************
* Preprocessor Definitions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: up_addregion
*
......@@ -84,7 +96,7 @@ void up_addregion(void)
/* Configure the RHEA bridge with some sane default values */
calypso_rhea_cfg(0, 0, 0xff, 0, 1, 0, 0);
mm_addregion((FAR void*)CONFIG_HEAP2_START, CONFIG_HEAP2_END-CONFIG_HEAP2_START);
mm_addregion((FAR void*)CONFIG_HEAP2_BASE, CONFIG_HEAP2_SIZE);
}
#endif
......@@ -111,8 +111,8 @@ void up_addregion(void)
/* Check for any additional memory regions */
#if defined(CONFIG_HEAP2_BASE) && defined(CONFIG_HEAP2_END)
mm_addregion((FAR void*)CONFIG_HEAP2_BASE, CONFIG_HEAP2_END - CONFIG_HEAP2_BASE);
#if defined(CONFIG_HEAP2_BASE) && defined(CONFIG_HEAP2_SIZE)
mm_addregion((FAR void*)CONFIG_HEAP2_BASE, CONFIG_HEAP2_SIZE);
#endif
}
#endif
......@@ -84,7 +84,42 @@ config STM32_STM32F20XX
config STM32_STM32F40XX
bool
default y if ARCH_CHIP_STM32F405RG || ARCH_CHIP_STM32F405VG || ARCH_CHIP_STM32F405ZG || ARCH_CHIP_STM32F407VE || ARCH_CHIP_STM32F407VG || ARCH_CHIP_STM32F407ZE || ARCH_CHIP_STM32F407ZG || ARCH_CHIP_STM32F407IE || ARCH_CHIP_STM32F407IE
default y if ARCH_CHIP_STM32F405RG || ARCH_CHIP_STM32F405VG || ARCH_CHIP_STM32F405ZG || ARCH_CHIP_STM32F407VE || ARCH_CHIP_STM32F407VG || ARCH_CHIP_STM32F407ZE || ARCH_CHIP_STM32F407ZG || ARCH_CHIP_STM32F407IE || ARCH_CHIP_STM32F407IG
choice
prompt "Toolchain Selection"
default STM32_CODESOURCERYW
depends on ARCH_CHIP_STM32
config STM32_CODESOURCERYW
bool "CodeSourcery for Windows"
config STM32_CODESOURCERYL
bool "CodeSourcery for Linux"
config STM32_ATOLLIC_LITE
bool "Atollic Lite for Windows"
config STM32_ATOLLIC_PRO
bool "Atollic Pro for Windows"
config STM32_DEVKITARM
bool "DevkitARM (Windows)"
config STM32_RAISONANCE
bool "STMicro Raisonance for Windows"
config STM32_BUILDROOT
bool "NuttX buildroot (Cygwin or Linux)"
endchoice
config STM32_DFU
bool "DFU bootloader"
default n
---help---
Configure and position code for use with the STMicro DFU bootloader. Do
not select this option if you will load code using JTAG/SWM.
menu "STM32 Peripheral Support"
......@@ -228,7 +263,7 @@ config STM32_SPI4
config STM32_SYSCFG
bool "SYSCFG"
default n
default y
depends on STM32_STM32F20XX || STM32_STM32F40XX
config STM32_TIM1
......@@ -517,24 +552,11 @@ config STM32_CCMEXCLUDE
config STM32_FSMC_SRAM
bool "External SRAM on FSMC"
default n
depends on FSMC
depends on STM32_FSMC
select ARCH_HAVE_HEAP2
---help---
In addition to internal SRAM, SRAM may also be available through the FSMC.
config HEAP2_BASE
hex "FSMC SRAM base address"
default 0x00000000
depends on STM32_FSMC_SRAM
---help---
The base address of the SRAM in the FSMC address space.
config HEAP2_END
hex "FSMC SRAM end+1 address"
default 0x00000000
depends on STM32_FSMC_SRAM
---help---
The end (+1) of the SRAM in the FSMC address space
config STM32_TIM1_PWM
bool "TIM1 PWM"
default n
......@@ -1536,6 +1558,7 @@ config STM32_PHYADDR
config STM32_MII
bool "Use MII interface"
default n
depends on STM32_ETHMAC
---help---
Support Ethernet MII interface.
......@@ -1549,13 +1572,14 @@ config STM32_MII_MCO2
config STM32_AUTONEG
bool "Use autonegtiation"
default y
depends on STM32_ETHMAC
---help---
Use PHY autonegotion to determine speed and mode
config STM32_ETHFD
bool "Full duplex"
default n
depends on !STM32_AUTONEG
depends on STM32_ETHMAC && !STM32_AUTONEG
---help---
If STM32_AUTONEG is not defined, then this may be defined to select full duplex
mode. Default: half-duplex
......@@ -1563,7 +1587,7 @@ config STM32_ETHFD
config STM32_ETH100MBPS
bool "100 Mbps"
default n
depends on !STM32_AUTONEG
depends on STM32_ETHMAC && !STM32_AUTONEG
---help---
If STM32_AUTONEG is not defined, then this may be defined to select 100 MBps
speed. Default: 10 Mbps
......@@ -1607,6 +1631,7 @@ config STM32_PHYSR_FULLDUPLEX
config STM32_ETH_PTP
bool "Precision Time Protocol (PTP)"
default n
depends on STM32_ETHMAC
---help---
Precision Time Protocol (PTP). Not supported but some hooks are indicated
with this condition.
......@@ -1616,6 +1641,7 @@ endmenu
config STM32_RMII
bool
default y if !STM32_MII
depends on STM32_ETHMAC
config STM32_MII_MCO1
bool
......
......@@ -73,13 +73,14 @@
*
* CONFIG_STM32_FSMC=y : Enables the FSMC
* CONFIG_STM32_FSMC_SRAM=y : Indicates that SRAM is available via the
* FSMC (as opposed to an LCD or FLASH).
* FSMC (as opposed to an LCD or FLASH).
* CONFIG_HEAP2_BASE : The base address of the SRAM in the FSMC
* address space
* CONFIG_HEAP2_END : The end (+1) of the SRAM in the FSMC
* address space
* address space
* CONFIG_HEAP2_SIZE : The size of the SRAM in the FSMC
* address space
* CONFIG_MM_REGIONS : Must be set to a large enough value to
* include the FSMC SRAM (as determined by the rules provided below)
* include the FSMC SRAM (as determined by
* the rules provided below)
*/
#ifndef CONFIG_STM32_FSMC
......@@ -256,12 +257,12 @@
/* If FSMC SRAM is going to be used as heap, then verify that the starting
* address and size of the external SRAM region has been provided in the
* configuration (as CONFIG_HEAP2_BASE and CONFIG_HEAP2_END).
* configuration (as CONFIG_HEAP2_BASE and CONFIG_HEAP2_SIZE).
*/
#ifdef CONFIG_STM32_FSMC_SRAM
# if !defined(CONFIG_HEAP2_BASE) || !defined(CONFIG_HEAP2_END)
# error "CONFIG_HEAP2_BASE and CONFIG_HEAP2_END must be provided"
# if !defined(CONFIG_HEAP2_BASE) || !defined(CONFIG_HEAP2_SIZE)
# error "CONFIG_HEAP2_BASE and CONFIG_HEAP2_SIZE must be provided"
# undef CONFIG_STM32_FSMC_SRAM
# endif
#endif
......@@ -317,7 +318,7 @@ void up_addregion(void)
/* Add the external FSMC SRAM heap region. */
#ifdef CONFIG_STM32_FSMC_SRAM
mm_addregion((FAR void*)CONFIG_HEAP2_BASE, CONFIG_HEAP2_END - CONFIG_HEAP2_BASE);
mm_addregion((FAR void*)CONFIG_HEAP2_BASE, CONFIG_HEAP2_SIZE);
#endif
}
#endif
......@@ -107,6 +107,6 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
#if CONFIG_MM_REGIONS > 1
void up_addregion(void)
{
mm_addregion((FAR void*)CONFIG_HEAP2_BASE, CONFIG_HEAP2_END - CONFIG_HEAP2_BASE);
mm_addregion((FAR void*)CONFIG_HEAP2_BASE, CONFIG_HEAP2_SIZE);
}
#endif
......@@ -109,6 +109,6 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
#if CONFIG_MM_REGIONS > 1
void up_addregion(void)
{
mm_addregion((FAR void*)CONFIG_HEAP2_BASE, CONFIG_HEAP2_END - CONFIG_HEAP2_BASE);
mm_addregion((FAR void*)CONFIG_HEAP2_BASE, CONFIG_HEAP2_SIZE);
}
#endif
......@@ -45,8 +45,8 @@ CONFIG_ARCH_BOARD_COMPALE99=y
CONFIG_BOARD_LOOPSPERMSEC=1250
CONFIG_ROM_VECTORS=n
CONFIG_MM_REGIONS=2
CONFIG_HEAP2_START=0x01000000
CONFIG_HEAP2_END=0x01200000
CONFIG_HEAP2_BASE=0x01000000
CONFIG_HEAP2_SIZE=2097152
CONFIG_ARCH_LEDS=n
CONFIG_ARCH_INTERRUPTSTACK=1024
CONFIG_ARCH_STACKDUMP=y
......
......@@ -45,8 +45,8 @@ CONFIG_ARCH_BOARD_COMPALE99=y
CONFIG_BOARD_LOOPSPERMSEC=1250
CONFIG_ROM_VECTORS=n
CONFIG_MM_REGIONS=2
CONFIG_HEAP2_START=0x01000000
CONFIG_HEAP2_END=0x01200000
CONFIG_HEAP2_BASE=0x01000000
CONFIG_HEAP2_SIZE=2097152
CONFIG_ARCH_LEDS=n
CONFIG_ARCH_INTERRUPTSTACK=1024
CONFIG_ARCH_STACKDUMP=y
......
......@@ -155,14 +155,6 @@ CONFIG_USART3_2STOP=0
CONFIG_UART4_2STOP=0
CONFIG_UART5_2STOP=0
#
# STM32F103Z specific SSI device driver settings
#
CONFIG_SSI0_DISABLE=y
CONFIG_SSI1_DISABLE=y
CONFIG_SSI_POLLWAIT=y
#CONFIG_SSI_TXLIMIT=4
#
# General build options
#
......
......@@ -153,14 +153,6 @@ CONFIG_USART3_2STOP=0
CONFIG_UART4_2STOP=0
CONFIG_UART5_2STOP=0
#
# STM32F103V specific SSI device driver settings
#
CONFIG_SSI0_DISABLE=n
CONFIG_SSI1_DISABLE=y
CONFIG_SSI_POLLWAIT=y
#CONFIG_SSI_TXLIMIT=4
#
# General build options
#
......
......@@ -158,14 +158,6 @@ CONFIG_USART3_2STOP=0
CONFIG_UART4_2STOP=0
CONFIG_UART5_2STOP=0
#
# STM32F103Z specific SSI device driver settings
#
CONFIG_SSI0_DISABLE=n
CONFIG_SSI1_DISABLE=y
CONFIG_SSI_POLLWAIT=y
#CONFIG_SSI_TXLIMIT=4
#
# General build options
#
......
......@@ -153,14 +153,6 @@ CONFIG_USART3_2STOP=0
CONFIG_UART4_2STOP=0
CONFIG_UART5_2STOP=0
#
# STM32F103V specific SSI device driver settings
#
CONFIG_SSI0_DISABLE=n
CONFIG_SSI1_DISABLE=y
CONFIG_SSI_POLLWAIT=y
#CONFIG_SSI_TXLIMIT=4
#
# General build options
#
......
......@@ -157,14 +157,6 @@ CONFIG_USART3_2STOP=0
CONFIG_UART4_2STOP=0
CONFIG_UART5_2STOP=0
#
# STM32F103V specific SSI device driver settings
#
CONFIG_SSI0_DISABLE=n
CONFIG_SSI1_DISABLE=y
CONFIG_SSI_POLLWAIT=y
#CONFIG_SSI_TXLIMIT=4
#
# General build options
#
......
......@@ -155,14 +155,6 @@ CONFIG_USART3_2STOP=0
CONFIG_UART4_2STOP=0
CONFIG_UART5_2STOP=0
#
# STM32F103V specific SSI device driver settings
#
CONFIG_SSI0_DISABLE=n
CONFIG_SSI1_DISABLE=y
CONFIG_SSI_POLLWAIT=y
#CONFIG_SSI_TXLIMIT=4
#
# General build options
#
......
......@@ -154,14 +154,6 @@ CONFIG_USART3_2STOP=0
CONFIG_UART4_2STOP=0
CONFIG_UART5_2STOP=0
#
# STM32F103V specific SSI device driver settings
#
CONFIG_SSI0_DISABLE=n
CONFIG_SSI1_DISABLE=y
CONFIG_SSI_POLLWAIT=y
#CONFIG_SSI_TXLIMIT=4
#
# General build options
#
......
......@@ -165,14 +165,6 @@ CONFIG_UART3_PARITY=0
CONFIG_UART4_PARITY=0
CONFIG_UART5_PARITY=0
#
# K40X256VLQ100 specific SSI device driver settings
#
CONFIG_SSI0_DISABLE=n
CONFIG_SSI1_DISABLE=y
CONFIG_SSI_POLLWAIT=y
#CONFIG_SSI_TXLIMIT=4
#
# General build options
#
......
......@@ -183,14 +183,6 @@ CONFIG_USART3_2STOP=0
CONFIG_UART4_2STOP=0
CONFIG_UART5_2STOP=0
#
# STM32F103Z specific SSI device driver settings
#
CONFIG_SSI0_DISABLE=n
CONFIG_SSI1_DISABLE=y
CONFIG_SSI_POLLWAIT=y
#CONFIG_SSI_TXLIMIT=4
#
# STM3210E-EVAL specific LCD settings
#
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment