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 #include <dfs_fs.h>
16 
17 #define DBG_TAG    "mnt"
18 #define DBG_LVL    DBG_INFO
19 #include <rtdbg.h>
20 
21 #ifdef RT_USING_DFS
22 #include <dfs_fs.h>
23 
mnt_init(void)24 int mnt_init(void)
25 {
26 #ifdef BSP_USING_ON_CHIP_FLASH
27     fal_init();
28 #define FS_PARTITION_NAME "flash"
29     struct rt_device *mtd_dev;
30     mtd_dev = fal_blk_device_create(FS_PARTITION_NAME);
31     if (!mtd_dev)
32     {
33         LOG_E("Failed to create device.\n");
34     }
35 #ifdef BSP_USING_ON_CHIP_FLASH_FATFS
36     if (dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) == 0)
37     {
38         LOG_I("Filesystem initialized!");
39     }
40     else
41     {
42         dfs_mkfs("elm", FS_PARTITION_NAME);
43         if (dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) != 0)
44         {
45             LOG_I("Failed to initialize filesystem!");
46         }
47     }
48 #endif /* BSP_USING_ON_CHIP_FLASH_FATFS */
49 #endif /* BSP_USING_ON_CHIP_FLASH */
50     return 0;
51 }
52 INIT_ENV_EXPORT(mnt_init);
53 #endif /* RT_USING_DFS */
54