summaryrefslogtreecommitdiffstatsabout
diff options
context:
space:
mode:
authorHanhui <sylixos@gmail.com>2016-05-25 11:55:34 (GMT)
committer Hanhui <sylixos@gmail.com>2016-05-25 11:55:34 (GMT)
commit6914edca19a155bb641928e7f2e15d7da9f75884 (patch)
tree5c02f0a041bc676c927ca26653f1e54107edc304
parent9591434ab93e049fd18efe472a1e2dd1fbabd736 (diff)
downloadbspam335x-6914edca19a155bb641928e7f2e15d7da9f75884.zip
bspam335x-6914edca19a155bb641928e7f2e15d7da9f75884.tar.gz
bspam335x-6914edca19a155bb641928e7f2e15d7da9f75884.tar.bz2
Update bspMap.h to compatible with the SylixOS version 1.3.1.
-rw-r--r--Makefile49
-rw-r--r--SylixOS/bsp/beaglebone/config_beaglebone.h15
-rw-r--r--SylixOS/bsp/bspInit.c5
-rw-r--r--SylixOS/bsp/bspMap.h670
-rw-r--r--SylixOS/bsp/forlinx/config_ok335xd.h15
-rw-r--r--SylixOS/bsp/forlinx/config_ok335xs.h15
-rw-r--r--SylixOS/bsp/startup.S2
-rw-r--r--SylixOS/bsp/ti/config_evmAM335x.h15
-rw-r--r--SylixOS/bsp/ti/config_evmskAM335x.h15
9 files changed, 305 insertions, 496 deletions
diff --git a/Makefile b/Makefile
index 50b652b..22536ba 100644
--- a/Makefile
+++ b/Makefile
@@ -37,13 +37,21 @@ $(call check_defined, DEBUG_LEVEL, debug level(debug or release))
#*********************************************************************************************************
# toolchain select
#*********************************************************************************************************
-CC = $(TOOLCHAIN_PREFIX)gcc
-CXX = $(TOOLCHAIN_PREFIX)g++
-AS = $(TOOLCHAIN_PREFIX)gcc
-AR = $(TOOLCHAIN_PREFIX)ar
-LD = $(TOOLCHAIN_PREFIX)g++
-OC = $(TOOLCHAIN_PREFIX)objcopy
-SZ = $(TOOLCHAIN_PREFIX)size
+CC = $(TOOLCHAIN_PREFIX)gcc
+CXX = $(TOOLCHAIN_PREFIX)g++
+AS = $(TOOLCHAIN_PREFIX)gcc
+AR = $(TOOLCHAIN_PREFIX)ar
+LD = $(TOOLCHAIN_PREFIX)g++
+OC = $(TOOLCHAIN_PREFIX)objcopy
+SZ = $(TOOLCHAIN_PREFIX)size
+LZOCOM = $(TOOLCHAIN_PREFIX)lzocom
+
+#*********************************************************************************************************
+# commercial toolchain check
+#*********************************************************************************************************
+COMMERCIAL = $(shell $(LZOCOM) 1>null 2>null && \
+ (rm -rf null; echo 1) || \
+ (rm -rf null; echo 0))
#*********************************************************************************************************
# platform, can use: evmAM335x evmskAM335x beaglebone ok335xd ok335xs ok335xs2
@@ -246,6 +254,7 @@ DEPPATH = $(OUTPATH)/dep
O_IMG = $(OUTPATH)/bsp$(PLATFORM).elf
O_BIN = $(OUTPATH)/bsp$(PLATFORM).bin
O_SIZ = $(OUTPATH)/bsp$(PLATFORM).siz
+O_LZO = $(OUTPATH)/bsp$(PLATFORM).lzo
#*********************************************************************************************************
# bspam335x objects
@@ -326,8 +335,13 @@ COMPILE.cxx = $(CXX) $(CXXFLAGS)
#*********************************************************************************************************
# target
#*********************************************************************************************************
-all: $(O_IMG)
- @echo create "$(O_IMG) $(O_BIN)" success.
+ifeq ($(COMMERCIAL), 1)
+all: $(O_IMG) $(O_BIN) $(O_SIZ) $(O_LZO)
+ @echo create "$(O_IMG) $(O_BIN) $(O_SIZ) $(O_LZO)" success.
+else
+all: $(O_IMG) $(O_BIN) $(O_SIZ)
+ @echo create "$(O_IMG) $(O_BIN) $(O_SIZ)" success.
+endif
#*********************************************************************************************************
# include depends
@@ -385,8 +399,24 @@ $(OBJPATH)/%.o: %.cpp
$(O_IMG): $(OBJS) $(LD_SCRIPT)
$(LD) $(CPUFLAGS) -nostdlib $(addprefix -T,$(LD_SCRIPT)) -o $(O_IMG) $(OBJS) \
$(DEPEND_DLL_PATH) $(DEPEND_DLL) -lm -lgcc
+
+#*********************************************************************************************************
+# create bspmini2440.bin
+#*********************************************************************************************************
+$(O_BIN): $(O_IMG)
$(OC) -O binary $(O_IMG) $(O_BIN)
+
+#*********************************************************************************************************
+# create bspmini2440.siz
+#*********************************************************************************************************
+$(O_SIZ): $(O_IMG)
$(SZ) --format=berkeley $(O_IMG) > $(O_SIZ)
+
+#*********************************************************************************************************
+# create bspmini2440.lzo
+#*********************************************************************************************************
+$(O_LZO): $(O_BIN)
+ $(LZOCOM) -c $(O_BIN) $(O_LZO)
#*********************************************************************************************************
# clean
@@ -401,6 +431,7 @@ clean:
-rm -rf $(O_SIZ)
-rm -rf $(O_IMG)
-rm -rf $(O_BIN)
+ -rm -rf $(O_LZO)
-rm -rf $(SYMBOL_PATH)/symbol.c $(SYMBOL_PATH)/symbol.h
-rm -rf $(OBJPATH)
-rm -rf $(DEPPATH)
diff --git a/SylixOS/bsp/beaglebone/config_beaglebone.h b/SylixOS/bsp/beaglebone/config_beaglebone.h
index 059c815..f4a8b24 100644
--- a/SylixOS/bsp/beaglebone/config_beaglebone.h
+++ b/SylixOS/bsp/beaglebone/config_beaglebone.h
@@ -37,10 +37,19 @@
#define BSP_CFG_RAM_BASE 0x80000000
#define BSP_CFG_RAM_SIZE (128 * 1024 * 1024)
-#define BSP_CFG_DATA_BASE (BSP_CFG_RAM_BASE + 6 * 1024 * 1024)
-#define BSP_CFG_COMMON_MEM_SIZE (48 * 1024 * 1024)
+#define BSP_CFG_TEXT_SIZE (6 * LW_CFG_MB_SIZE)
+#define BSP_CFG_DATA_SIZE (40 * LW_CFG_MB_SIZE)
-#define BSP_CFG_KERN_HEAP_SIZE (32 * 1024 * 1024)
+#define BSP_CFG_DMA_SIZE (16 * LW_CFG_MB_SIZE)
+#define BSP_CFG_APP_SIZE (76 * LW_CFG_MB_SIZE)
+/*********************************************************************************************************
+ 内核堆与系统堆相关配置
+*********************************************************************************************************/
+#define BSP_CFG_KERNSYS_HEAP_SIZE (32 * LW_CFG_MB_SIZE)
+/*********************************************************************************************************
+ 堆栈相关配置
+*********************************************************************************************************/
+#define BSP_CFG_STACK_TOP_ADDR (BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE)
/*********************************************************************************************************
网口相关配置
*********************************************************************************************************/
diff --git a/SylixOS/bsp/bspInit.c b/SylixOS/bsp/bspInit.c
index 691abb8..34beb72 100644
--- a/SylixOS/bsp/bspInit.c
+++ b/SylixOS/bsp/bspInit.c
@@ -227,6 +227,7 @@ static VOID halDrvInit (VOID)
pipeDrv(); /* pipe device driver */
spipeDrv(); /* spipe device driver */
fatFsDrv(); /* FAT FS device driver */
+ tpsFsDrv(); /* TPS FS device driver */
ramFsDrv(); /* RAM FS device driver */
romFsDrv(); /* ROM FS device driver */
nfsDrv(); /* nfs device driver */
@@ -349,7 +350,7 @@ static VOID halShellInit (VOID)
static VOID halVmmInit (VOID)
{
- API_VmmLibInit(_G_zonedescGlobal, _G_globaldescMap, ARM_MACHINE_A8);
+ API_VmmLibInit(_G_physicalDesc, _G_virtualDesc, ARM_MACHINE_A8);
API_VmmMmuEnable();
}
@@ -889,7 +890,7 @@ INT bspInit (VOID)
/*
* 系统内核堆与系统堆
*/
- static __section(.noinit) CHAR cKernelHeap[BSP_CFG_KERN_HEAP_SIZE];
+ static __section(.noinit) CHAR cKernelHeap[BSP_CFG_KERNSYS_HEAP_SIZE];
enableModuleClock(am335xModuleIdGet("WDT1")); /* Enable the WDT clocks */
diff --git a/SylixOS/bsp/bspMap.h b/SylixOS/bsp/bspMap.h
index 2d20e9e..831a5b2 100644
--- a/SylixOS/bsp/bspMap.h
+++ b/SylixOS/bsp/bspMap.h
@@ -23,483 +23,215 @@
#define __BSPMAP_H
/*********************************************************************************************************
- 内存分配关系图
-
- +-----------------------+--------------------------------+
- | 通用内存区 | VMM 管理区 |
- | CACHE | |
- +-----------------------+--------------------------------+
-
-*********************************************************************************************************/
-
-/*********************************************************************************************************
- physical memory zone
+ physical memory
*********************************************************************************************************/
#ifdef __BSPINIT_MAIN_FILE
-LW_VMM_ZONE_DESC _G_zonedescGlobal[] = {
- {
- BSP_CFG_RAM_BASE + BSP_CFG_COMMON_MEM_SIZE,
- (BSP_CFG_RAM_SIZE - BSP_CFG_COMMON_MEM_SIZE) / 2,
- LW_ZONE_ATTR_DMA /* 均可被 DMA 使用 */
- },
- {
- BSP_CFG_RAM_BASE + BSP_CFG_COMMON_MEM_SIZE + (BSP_CFG_RAM_SIZE - BSP_CFG_COMMON_MEM_SIZE) / 2,
- (BSP_CFG_RAM_SIZE - BSP_CFG_COMMON_MEM_SIZE) / 2,
- LW_ZONE_ATTR_DMA /* 均可被 DMA 使用 */
- }
+static LW_MMU_PHYSICAL_DESC _G_physicalDesc[] = {
+ { /* 中断向量表 */
+ BSP_CFG_RAM_BASE,
+ 0,
+ LW_CFG_VMM_PAGE_SIZE,
+ LW_PHYSICAL_MEM_VECTOR,
+ },
+
+ { /* 内核代码段 */
+ BSP_CFG_RAM_BASE,
+ BSP_CFG_RAM_BASE,
+ BSP_CFG_TEXT_SIZE,
+ LW_PHYSICAL_MEM_TEXT,
+ },
+
+ { /* 内核数据段 */
+ BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE,
+ BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE,
+ BSP_CFG_DATA_SIZE,
+ LW_PHYSICAL_MEM_DATA,
+ },
+
+ { /* DMA 缓冲区 */
+ BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE,
+ BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE,
+ BSP_CFG_DMA_SIZE,
+ LW_PHYSICAL_MEM_DMA,
+ },
+
+
+ { /* APP 通用内存 */
+ BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE + BSP_CFG_DMA_SIZE,
+ BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE + BSP_CFG_DMA_SIZE,
+ BSP_CFG_APP_SIZE,
+ LW_PHYSICAL_MEM_APP,
+ },
+
+ /*
+ * sfr
+ */
+ {
+ SOC_AINTC_REGS, /* AINTC 寄存器的物理地址 */
+ SOC_AINTC_REGS, /* 映射到的虚拟地址 */
+ 4 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_UART_0_REGS, /* UART_0 寄存器的物理地址 */
+ SOC_UART_0_REGS, /* 映射到的虚拟地址 */
+ 4 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_UART_1_REGS, /* UART_1 寄存器的物理地址 */
+ SOC_UART_1_REGS, /* 映射到的虚拟地址 */
+ 4 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_UART_2_REGS, /* UART_2 寄存器的物理地址 */
+ SOC_UART_2_REGS, /* 映射到的虚拟地址 */
+ 4 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_UART_3_REGS, /* UART_3 寄存器的物理地址 */
+ SOC_UART_3_REGS, /* 映射到的虚拟地址 */
+ 4 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_UART_4_REGS, /* UART_4 寄存器的物理地址 */
+ SOC_UART_4_REGS, /* 映射到的虚拟地址 */
+ 4 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_UART_5_REGS, /* UART_5 寄存器的物理地址 */
+ SOC_UART_5_REGS, /* 映射到的虚拟地址 */
+ 4 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ 0x47400000, /* USB 寄存器的物理地址 */
+ 0x47400000, /* 映射到的虚拟地址 */
+ 20 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_DMTIMER_2_REGS, /* DMTIMER_2 寄存器的物理地址 */
+ SOC_DMTIMER_2_REGS, /* 映射到的虚拟地址 */
+ 4 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_DMTIMER_6_REGS, /* DMTIMER_6 寄存器的物理地址 */
+ SOC_DMTIMER_6_REGS, /* 映射到的虚拟地址 */
+ 4 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_DMTIMER_7_REGS, /* DMTIMER_7 寄存器的物理地址 */
+ SOC_DMTIMER_7_REGS, /* 映射到的虚拟地址 */
+ 4 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_WDT_1_REGS, /* WDT_1 寄存器的物理地址 */
+ SOC_WDT_1_REGS, /* 映射到的虚拟地址 */
+ 4 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_PRCM_REGS, /* PRCM 寄存器的物理地址 */
+ SOC_PRCM_REGS, /* 映射到的虚拟地址 */
+ 4 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_PRM_RTC_REGS, /* PRM_RTC 寄存器的物理地址 */
+ SOC_PRM_RTC_REGS, /* 映射到的虚拟地址 */
+ 4 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_CONTROL_REGS, /* CONTROL 寄存器的物理地址 */
+ SOC_CONTROL_REGS, /* 映射到的虚拟地址 */
+ 128 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ SOC_EDMA30CC_0_REGS, /* EDMA30CC_0 寄存器的物理地址 */
+ SOC_EDMA30CC_0_REGS, /* 映射到的虚拟地址 */
+ 1 * 1024 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ 0x49800000, /* EDMA3TC0 寄存器的物理地址 */
+ 0x49800000, /* 映射到的虚拟地址 */
+ 1 * 1024 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ 0x49900000, /* EDMA3TC1 寄存器的物理地址 */
+ 0x49900000, /* 映射到的虚拟地址 */
+ 1 * 1024 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ {
+ 0x49A00000, /* EDMA3TC2 寄存器的物理地址 */
+ 0x49A00000, /* 映射到的虚拟地址 */
+ 1 * 1024 * 1024, /* 映射的大小 */
+ LW_PHYSICAL_MEM_BOOTSFR
+ },
+
+ { /* 结束 */
+ 0,
+ 0,
+ 0,
+ 0
+ }
};
+
/*********************************************************************************************************
- 初始化内存类型与布局 (VMM 管理区的内存不需要在全局初始化表中初始化)
+ virtual memory
*********************************************************************************************************/
-LW_MMU_GLOBAL_DESC _G_globaldescMap[] = {
- /*
- * kernel space
- */
- {
- (BSP_CFG_RAM_BASE), /* SylixOS Kernel Text */
- (BSP_CFG_RAM_BASE),
- (BSP_CFG_DATA_BASE - BSP_CFG_RAM_BASE),
- (LW_VMM_FLAG_EXEC | LW_VMM_FLAG_RDWR) /* 此段可修改, 方便调试 */
- },
-
- { /* SylixOS Kernel Memory */
- (BSP_CFG_DATA_BASE),
- (BSP_CFG_DATA_BASE),
- (BSP_CFG_COMMON_MEM_SIZE - (BSP_CFG_DATA_BASE - BSP_CFG_RAM_BASE)),
- (LW_VMM_FLAG_RDWR) /* 状态属性 CB */
- },
-
- /*
- * 硬件特殊功能寄存器的映射
- * 只映射 BSP 可能会用到的特殊功能寄存器,不映射驱动用到的
- */
- {
- SOC_AINTC_REGS, /* AINTC 寄存器的物理地址 */
- SOC_AINTC_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_UART_0_REGS, /* UART_0 寄存器的物理地址 */
- SOC_UART_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_UART_1_REGS, /* UART_1 寄存器的物理地址 */
- SOC_UART_1_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_UART_2_REGS, /* UART_2 寄存器的物理地址 */
- SOC_UART_2_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_UART_3_REGS, /* UART_3 寄存器的物理地址 */
- SOC_UART_3_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_UART_4_REGS, /* UART_4 寄存器的物理地址 */
- SOC_UART_4_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_UART_5_REGS, /* UART_5 寄存器的物理地址 */
- SOC_UART_5_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- 0x47400000, /* USB 寄存器的物理地址 */
- 0x47400000, /* 映射到的虚拟地址 */
- 20 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
-#if 0
- {
- SOC_SPI_0_REGS, /* SPI_0 寄存器的物理地址 */
- SOC_SPI_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_SPI_1_REGS, /* SPI_1 寄存器的物理地址 */
- SOC_SPI_1_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_GPIO_0_REGS, /* GPIO_0 寄存器的物理地址 */
- SOC_GPIO_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_GPIO_1_REGS, /* GPIO_1 寄存器的物理地址 */
- SOC_GPIO_1_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_GPIO_2_REGS, /* GPIO_2 寄存器的物理地址 */
- SOC_GPIO_2_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_GPIO_3_REGS, /* GPIO_3 寄存器的物理地址 */
- SOC_GPIO_3_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_DMTIMER_0_REGS, /* DMTIMER_0 寄存器的物理地址 */
- SOC_DMTIMER_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_DMTIMER_1_REGS, /* DMTIMER_1 寄存器的物理地址 */
- SOC_DMTIMER_1_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-#endif
-
- {
- SOC_DMTIMER_2_REGS, /* DMTIMER_2 寄存器的物理地址 */
- SOC_DMTIMER_2_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
-#if 0
- {
- SOC_DMTIMER_3_REGS, /* DMTIMER_3 寄存器的物理地址 */
- SOC_DMTIMER_3_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_DMTIMER_4_REGS, /* DMTIMER_4 寄存器的物理地址 */
- SOC_DMTIMER_4_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_DMTIMER_5_REGS, /* DMTIMER_5 寄存器的物理地址 */
- SOC_DMTIMER_5_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-#endif
-
- {
- SOC_DMTIMER_6_REGS, /* DMTIMER_6 寄存器的物理地址 */
- SOC_DMTIMER_6_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_DMTIMER_7_REGS, /* DMTIMER_7 寄存器的物理地址 */
- SOC_DMTIMER_7_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
-#if 0
- {
- SOC_MMCHS_0_REGS, /* MMCHS_0 寄存器的物理地址 */
- SOC_MMCHS_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_MMCHS_1_REGS, /* MMCHS_1 寄存器的物理地址 */
- SOC_MMCHS_1_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_MMCHS_2_REGS, /* MMCHS_2 寄存器的物理地址 */
- SOC_MMCHS_2_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_GPMC_0_REGS, /* GPMC_0 寄存器的物理地址 */
- SOC_GPMC_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_ELM_0_REGS, /* ELM_0 寄存器的物理地址 */
- SOC_ELM_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_I2C_0_REGS, /* I2C_0 寄存器的物理地址 */
- SOC_I2C_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_I2C_1_REGS, /* I2C_1 寄存器的物理地址 */
- SOC_I2C_1_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_I2C_2_REGS, /* I2C_2 寄存器的物理地址 */
- SOC_I2C_2_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_WDT_0_REGS, /* WDT_0 寄存器的物理地址 */
- SOC_WDT_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-#endif
-
- {
- SOC_WDT_1_REGS, /* WDT_1 寄存器的物理地址 */
- SOC_WDT_1_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
-#if 0
- {
- SOC_CPSW_SS_REGS, /* CPSW_SS 寄存器的物理地址 */
- SOC_CPSW_SS_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_CPSW_MDIO_REGS, /* CPSW_MDIO 寄存器的物理地址 */
- SOC_CPSW_MDIO_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_CPSW_CPPI_RAM_REGS, /* CPSW_CPPI 寄存器的物理地址 */
- SOC_CPSW_CPPI_RAM_REGS, /* 映射到的虚拟地址 */
- 8 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_MCASP_0_CTRL_REGS, /* MCASP_0_CTRL寄存器的物理地址*/
- SOC_MCASP_0_CTRL_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_MCASP_0_FIFO_REGS, /* MCASP_0_FIFO寄存器的物理地址*/
- SOC_MCASP_0_FIFO_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_MCASP_0_DATA_REGS, /* MCASP_0_DATA寄存器的物理地址*/
- SOC_MCASP_0_DATA_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_MCASP_1_CTRL_REGS, /* MCASP_1_CTRL寄存器的物理地址*/
- SOC_MCASP_1_CTRL_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_MCASP_1_FIFO_REGS, /* MCASP_1_FIFO寄存器的物理地址*/
- SOC_MCASP_1_FIFO_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_MCASP_1_DATA_REGS, /* MCASP_1_DATA寄存器的物理地址*/
- SOC_MCASP_1_DATA_REGS, /* 映射到的虚拟地址 */
- 4 * 1024 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_EMIF_0_REGS, /* EMIF_0 寄存器的物理地址 */
- SOC_EMIF_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_RTC_0_REGS, /* RTC_0 寄存器的物理地址 */
- SOC_RTC_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-#endif
-
- {
- SOC_PRCM_REGS, /* PRCM 寄存器的物理地址 */
- SOC_PRCM_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_PRM_RTC_REGS, /* PRM_RTC 寄存器的物理地址 */
- SOC_PRM_RTC_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_CONTROL_REGS, /* CONTROL 寄存器的物理地址 */
- SOC_CONTROL_REGS, /* 映射到的虚拟地址 */
- 128 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
-#if 1
- {
- SOC_EDMA30CC_0_REGS, /* EDMA30CC_0 寄存器的物理地址 */
- SOC_EDMA30CC_0_REGS, /* 映射到的虚拟地址 */
- 1 * 1024 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- 0x49800000, /* EDMA3TC0 寄存器的物理地址 */
- 0x49800000, /* 映射到的虚拟地址 */
- 1 * 1024 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- 0x49900000, /* EDMA3TC1 寄存器的物理地址 */
- 0x49900000, /* 映射到的虚拟地址 */
- 1 * 1024 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- 0x49A00000, /* EDMA3TC2 寄存器的物理地址 */
- 0x49A00000, /* 映射到的虚拟地址 */
- 1 * 1024 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-#endif
-
-#if 0
- {
- SOC_DCAN_0_REGS, /* DCAN_0 寄存器的物理地址 */
- SOC_DCAN_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_DCAN_1_REGS, /* DCAN_1 寄存器的物理地址 */
- SOC_DCAN_1_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_LCDC_0_REGS, /* LCDC_0 寄存器的物理地址 */
- SOC_LCDC_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_ADC_TSC_0_REGS, /* ADC_TSC_0 寄存器的物理地址 */
- SOC_ADC_TSC_0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_PWMSS0_REGS, /* PWMSS0 寄存器的物理地址 */
- SOC_PWMSS0_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_PWMSS1_REGS, /* PWMSS1 寄存器的物理地址 */
- SOC_PWMSS1_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- SOC_PWMSS2_REGS, /* PWMSS2 寄存器的物理地址 */
- SOC_PWMSS2_REGS, /* 映射到的虚拟地址 */
- 4 * 1024, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-
- {
- 0x4a102000, /* CPPI_RAM 寄存器的物理地址 */
- 0x4a102000, /* 映射到的虚拟地址 */
- 0x4a103FFF - 0x4a102000 + 1, /* 映射的大小 */
- (LW_VMM_FLAG_DMA) /* 映射的属性 */
- },
-#endif
-
- { /* 结束 */
- 0,
- 0,
- 0,
- 0
- }
+static LW_MMU_VIRTUAL_DESC _G_virtualDesc[] = {
+ { /* 应用程序虚拟空间 */
+ 0xc0000000,
+ (((size_t)1 * LW_CFG_GB_SIZE) - (64 * LW_CFG_KB_SIZE)),
+ LW_VIRTUAL_MEM_APP
+ },
+
+ {
+ 0x30000000, /* ioremap 空间 */
+ (64 * LW_CFG_MB_SIZE),
+ LW_VIRTUAL_MEM_DEV
+ },
+
+ { /* 结束 */
+ 0,
+ 0,
+ 0
+ }
};
+
#endif /* __BSPINIT_MAIN_FILE */
#endif /* __BSPMAP_H */
/*********************************************************************************************************
diff --git a/SylixOS/bsp/forlinx/config_ok335xd.h b/SylixOS/bsp/forlinx/config_ok335xd.h
index a0196df..5c02490 100644
--- a/SylixOS/bsp/forlinx/config_ok335xd.h
+++ b/SylixOS/bsp/forlinx/config_ok335xd.h
@@ -37,10 +37,19 @@
#define BSP_CFG_RAM_BASE 0x80000000
#define BSP_CFG_RAM_SIZE (512 * 1024 * 1024)
-#define BSP_CFG_DATA_BASE (BSP_CFG_RAM_BASE + 6 * 1024 * 1024)
-#define BSP_CFG_COMMON_MEM_SIZE (128 * 1024 * 1024)
+#define BSP_CFG_TEXT_SIZE (6 * LW_CFG_MB_SIZE)
+#define BSP_CFG_DATA_SIZE (122 * LW_CFG_MB_SIZE)
-#define BSP_CFG_KERN_HEAP_SIZE (96 * 1024 * 1024)
+#define BSP_CFG_DMA_SIZE (16 * LW_CFG_MB_SIZE)
+#define BSP_CFG_APP_SIZE (368 * LW_CFG_MB_SIZE)
+/*********************************************************************************************************
+ 内核堆与系统堆相关配置
+*********************************************************************************************************/
+#define BSP_CFG_KERNSYS_HEAP_SIZE (96 * LW_CFG_MB_SIZE)
+/*********************************************************************************************************
+ 堆栈相关配置
+*********************************************************************************************************/
+#define BSP_CFG_STACK_TOP_ADDR (BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE)
/*********************************************************************************************************
网口相关配置
*********************************************************************************************************/
diff --git a/SylixOS/bsp/forlinx/config_ok335xs.h b/SylixOS/bsp/forlinx/config_ok335xs.h
index ee0ce58..4e5b3ec 100644
--- a/SylixOS/bsp/forlinx/config_ok335xs.h
+++ b/SylixOS/bsp/forlinx/config_ok335xs.h
@@ -37,10 +37,19 @@
#define BSP_CFG_RAM_BASE 0x80000000
#define BSP_CFG_RAM_SIZE (512 * 1024 * 1024)
-#define BSP_CFG_DATA_BASE (BSP_CFG_RAM_BASE + 6 * 1024 * 1024)
-#define BSP_CFG_COMMON_MEM_SIZE (128 * 1024 * 1024)
+#define BSP_CFG_TEXT_SIZE (6 * LW_CFG_MB_SIZE)
+#define BSP_CFG_DATA_SIZE (122 * LW_CFG_MB_SIZE)
-#define BSP_CFG_KERN_HEAP_SIZE (96 * 1024 * 1024)
+#define BSP_CFG_DMA_SIZE (16 * LW_CFG_MB_SIZE)
+#define BSP_CFG_APP_SIZE (368 * LW_CFG_MB_SIZE)
+/*********************************************************************************************************
+ 内核堆与系统堆相关配置
+*********************************************************************************************************/
+#define BSP_CFG_KERNSYS_HEAP_SIZE (96 * LW_CFG_MB_SIZE)
+/*********************************************************************************************************
+ 堆栈相关配置
+*********************************************************************************************************/
+#define BSP_CFG_STACK_TOP_ADDR (BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE)
/*********************************************************************************************************
网口相关配置
*********************************************************************************************************/
diff --git a/SylixOS/bsp/startup.S b/SylixOS/bsp/startup.S
index a4f3a9a..ac714a8 100644
--- a/SylixOS/bsp/startup.S
+++ b/SylixOS/bsp/startup.S
@@ -104,7 +104,7 @@ FUNC_DEF(reset)
;*********************************************************************************************************/
;/* 内核高端地址 */
- LDR R0 , =(BSP_CFG_RAM_BASE + BSP_CFG_COMMON_MEM_SIZE)
+ LDR R0 , =BSP_CFG_STACK_TOP_ADDR
MSR CPSR_c, #(UND32_MODE | DIS_INT)
MOV SP , R0
diff --git a/SylixOS/bsp/ti/config_evmAM335x.h b/SylixOS/bsp/ti/config_evmAM335x.h
index 5b365ea..9c93cd3 100644
--- a/SylixOS/bsp/ti/config_evmAM335x.h
+++ b/SylixOS/bsp/ti/config_evmAM335x.h
@@ -37,10 +37,19 @@
#define BSP_CFG_RAM_BASE 0x80000000
#define BSP_CFG_RAM_SIZE (512 * 1024 * 1024)
-#define BSP_CFG_DATA_BASE (BSP_CFG_RAM_BASE + 6 * 1024 * 1024)
-#define BSP_CFG_COMMON_MEM_SIZE (128 * 1024 * 1024)
+#define BSP_CFG_TEXT_SIZE (6 * LW_CFG_MB_SIZE)
+#define BSP_CFG_DATA_SIZE (122 * LW_CFG_MB_SIZE)
-#define BSP_CFG_KERN_HEAP_SIZE (96 * 1024 * 1024)
+#define BSP_CFG_DMA_SIZE (16 * LW_CFG_MB_SIZE)
+#define BSP_CFG_APP_SIZE (368 * LW_CFG_MB_SIZE)
+/*********************************************************************************************************
+ 内核堆与系统堆相关配置
+*********************************************************************************************************/
+#define BSP_CFG_KERNSYS_HEAP_SIZE (96 * LW_CFG_MB_SIZE)
+/*********************************************************************************************************
+ 堆栈相关配置
+*********************************************************************************************************/
+#define BSP_CFG_STACK_TOP_ADDR (BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE)
/*********************************************************************************************************
网口相关配置
*********************************************************************************************************/
diff --git a/SylixOS/bsp/ti/config_evmskAM335x.h b/SylixOS/bsp/ti/config_evmskAM335x.h
index cdf9484..488a1b5 100644
--- a/SylixOS/bsp/ti/config_evmskAM335x.h
+++ b/SylixOS/bsp/ti/config_evmskAM335x.h
@@ -37,10 +37,19 @@
#define BSP_CFG_RAM_BASE 0x80000000
#define BSP_CFG_RAM_SIZE (256 * 1024 * 1024)
-#define BSP_CFG_DATA_BASE (BSP_CFG_RAM_BASE + 6 * 1024 * 1024)
-#define BSP_CFG_COMMON_MEM_SIZE (96 * 1024 * 1024)
+#define BSP_CFG_TEXT_SIZE (6 * LW_CFG_MB_SIZE)
+#define BSP_CFG_DATA_SIZE (70 * LW_CFG_MB_SIZE)
-#define BSP_CFG_KERN_HEAP_SIZE (64 * 1024 * 1024)
+#define BSP_CFG_DMA_SIZE (16 * LW_CFG_MB_SIZE)
+#define BSP_CFG_APP_SIZE (164 * LW_CFG_MB_SIZE)
+/*********************************************************************************************************
+ 内核堆与系统堆相关配置
+*********************************************************************************************************/
+#define BSP_CFG_KERNSYS_HEAP_SIZE (64 * LW_CFG_MB_SIZE)
+/*********************************************************************************************************
+ 堆栈相关配置
+*********************************************************************************************************/
+#define BSP_CFG_STACK_TOP_ADDR (BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE)
/*********************************************************************************************************
网口相关配置
*********************************************************************************************************/