Skip to content

Commit f9e50a6

Browse files
committed
bsp: k230: add init for ipcm
Signed-off-by: Wang Chen <[email protected]>
1 parent 91e6227 commit f9e50a6

File tree

2 files changed

+48
-1
lines changed

2 files changed

+48
-1
lines changed

bsp/k230/board/board.c

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@
1818
#include "drv_uart.h"
1919

2020
#include <sbi.h>
21-
21+
#include "ioremap.h"
2222
#include "sysctl_boot.h"
23+
#include <riscv_mmu.h>
2324

2425
#ifdef RT_USING_SMART
2526
#include <mmu.h>
@@ -59,6 +60,28 @@ void init_bss(void)
5960
}
6061
}
6162

63+
#define MEM_RESVERD_SIZE 0x1000 /*隔离区*/
64+
#define MEM_IPCM_BASE 0x0
65+
#define MEM_IPCM_SIZE 0
66+
67+
68+
void init_ipcm_mem(void)
69+
{
70+
rt_uint32_t *dst;
71+
int i = 0;
72+
dst = rt_ioremap((void *)(MEM_IPCM_BASE + MEM_IPCM_SIZE - MEM_RESVERD_SIZE - MEM_RESVERD_SIZE), MEM_RESVERD_SIZE);
73+
if(dst == RT_NULL) {
74+
rt_kprintf("ipcm ioremap error\n");
75+
}
76+
rt_memset((void *)dst, 0, MEM_RESVERD_SIZE);
77+
for(i = 0; i < (0x1000 / 4); i++) {
78+
if(dst[i] != 0) {
79+
rt_kprintf("memest error addr:%p value:%d\n", &dst[i], dst[i]);
80+
}
81+
}
82+
rt_iounmap((void *)dst);
83+
}
84+
6285
static void __rt_assert_handler(const char *ex_string, const char *func, rt_size_t line)
6386
{
6487
rt_kprintf("(%s) assertion failed at function:%s, line number:%d \n", ex_string, func, line);
@@ -95,6 +118,11 @@ void rt_hw_board_init(void)
95118
/* initialize memory system */
96119
rt_system_heap_init(RT_HW_HEAP_BEGIN, RT_HW_HEAP_END);
97120
#endif
121+
122+
#if MEM_IPCM_SIZE > MEM_RESVERD_SIZE
123+
init_ipcm_mem();
124+
#endif
125+
98126
/* initalize interrupt */
99127
rt_hw_interrupt_init();
100128

@@ -106,6 +134,12 @@ void rt_hw_board_init(void)
106134
#ifdef RT_USING_CONSOLE
107135
/* set console device */
108136
rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
137+
#ifdef RT_USING_IPCM
138+
extern int rt_virt_tty_device_init();;
139+
if(!rt_strcmp(RT_CONSOLE_DEVICE_NAME, "virt-tty"))
140+
rt_virt_tty_device_init();
141+
#endif
142+
109143
#endif /* RT_USING_CONSOLE */
110144

111145
#ifdef RT_USING_COMPONENTS_INIT

bsp/k230/drivers/sdk_kernel_init.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,22 @@
22
#include <rtthread.h>
33
#include <rtdevice.h>
44

5+
extern rt_int32_t ipcm_module_init(void);
6+
extern int virt_tty_client_init(void);
7+
extern int rc_server_init(void);
58
/*sdk kernel space init*/
69
rt_int32_t sdk_kernel_init(void)
710
{
11+
#ifdef RT_USING_IPCM
12+
ipcm_module_init();
13+
#ifdef RT_USING_VIRT_TTY
14+
virt_tty_client_init();
15+
#endif
16+
#ifdef RT_USING_RTT_CTRL
17+
rc_server_init();
18+
#endif
19+
#endif
20+
821
return RT_EOK;
922
}
1023

0 commit comments

Comments
 (0)