1 /*
2  * Copyright (c) 2006-2022, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2022-06-08     supperthomas first version
9  */
10 
11 #include <rtthread.h>
12 #include <rtdevice.h>
13 
14 #include "fal.h"
15 
16 #define DBG_TAG    "mnt"
17 #define DBG_LVL    DBG_INFO
18 #include <rtdbg.h>
19 
20 #ifdef RT_USING_DFS
21 #include <dfs_fs.h>
22 
mnt_init(void)23 int mnt_init(void)
24 {
25 #ifdef BSP_USING_ON_CHIP_FLASH
26     fal_init();
27 #define FS_PARTITION_NAME "flash"
28     struct rt_device *mtd_dev;
29     mtd_dev = fal_blk_device_create(FS_PARTITION_NAME);
30     if (!mtd_dev)
31     {
32         LOG_E("Failed to create device.\n");
33     }
34 #ifdef BSP_USING_ON_CHIP_FLASH_FATFS
35     if (dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) == 0)
36     {
37         LOG_I("Filesystem initialized!");
38     }
39     else
40     {
41         dfs_mkfs("elm", FS_PARTITION_NAME);
42         if (dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) != 0)
43         {
44             LOG_E("Failed to initialize filesystem!");
45         }
46     }
47 #endif /* BSP_USING_ON_CHIP_FLASH_FATFS */
48 #endif /* BSP_USING_ON_CHIP_FLASH */
49     return 0;
50 }
51 INIT_ENV_EXPORT(mnt_init);
52 #endif /* RT_USING_DFS */
53