1 /**************************************************************************/
2 /*                                                                        */
3 /*       Copyright (c) Microsoft Corporation. All rights reserved.        */
4 /*                                                                        */
5 /*       This software is licensed under the Microsoft Software License   */
6 /*       Terms for Microsoft Azure RTOS. Full text of the license can be  */
7 /*       found in the LICENSE file at https://aka.ms/AzureRTOS_EULA       */
8 /*       and in the root directory of this software.                      */
9 /*                                                                        */
10 /**************************************************************************/
11 
12 
13 /**************************************************************************/
14 /**************************************************************************/
15 /**                                                                       */
16 /** LevelX Component                                                      */
17 /**                                                                       */
18 /**   User Specific                                                       */
19 /**                                                                       */
20 /**************************************************************************/
21 /**************************************************************************/
22 
23 
24 /**************************************************************************/
25 /*                                                                        */
26 /*  PORT SPECIFIC C INFORMATION                            RELEASE        */
27 /*                                                                        */
28 /*    lx_user.h                                           PORTABLE C      */
29 /*                                                           6.2.1       */
30 /*                                                                        */
31 /*  AUTHOR                                                                */
32 /*                                                                        */
33 /*    William E. Lamie, Microsoft Corporation                             */
34 /*                                                                        */
35 /*  DESCRIPTION                                                           */
36 /*                                                                        */
37 /*    This file contains user defines for configuring LevelX in specific  */
38 /*    ways. This file will have an effect only if the application and     */
39 /*    LevelX library are built with LX_INCLUDE_USER_DEFINE_FILE defined.  */
40 /*    Note that all the defines in this file may also be made on the      */
41 /*    command line when building LevelX library and application objects.  */
42 /*                                                                        */
43 /*  RELEASE HISTORY                                                       */
44 /*                                                                        */
45 /*    DATE              NAME                      DESCRIPTION             */
46 /*                                                                        */
47 /*  11-09-2020     William E. Lamie         Initial Version 6.1.2         */
48 /*  06-02-2021     Bhupendra Naphade        Modified comment(s), and      */
49 /*                                            added standalone support,   */
50 /*                                            resulting in version 6.1.7  */
51 /*  03-08-2023     Xiuwen Cai               Modified comment(s), and      */
52 /*                                            added new NAND options,     */
53 /*                                            resulting in version 6.2.1 */
54 /*                                                                        */
55 /**************************************************************************/
56 
57 #ifndef LX_USER_H
58 #define LX_USER_H
59 
60 
61 
62 /* Defined, this option bypasses the NOR flash driver read routine in favor or reading
63    the NOR memory directly, resulting in a significant performance increase.
64 */
65 /*
66 #define LX_DIRECT_READ
67 */
68 
69 
70 /* Defined, this causes the LevelX NOR instance open logic to verify free NOR
71    sectors are all ones.
72 */
73 /*
74 #define LX_FREE_SECTOR_DATA_VERIFY
75 */
76 
77 /* By default this value is 4, which represents a maximum of 4 blocks that
78    can be allocated for metadata.
79 */
80 /*
81 #define LX_NAND_FLASH_MAX_METADATA_BLOCKS 4
82 */
83 
84 /* Defined, this disabled the extended NOR cache.  */
85 /*
86 #define LX_NOR_DISABLE_EXTENDED_CACHE
87 */
88 
89 /* By default this value is 8, which represents a maximum of 8 sectors that
90    can be cached in a NOR instance.
91 */
92 /*
93 #define LX_NOR_EXTENDED_CACHE_SIZE   8
94 */
95 
96 
97 /* By default this value is 16 and defines the logical sector mapping cache size.
98    Large values improve performance, but cost memory. The minimum size is 8 and all
99    values must be a power of 2.
100 */
101 /*
102 #define LX_NOR_SECTOR_MAPPING_CACHE_SIZE   16
103 */
104 
105 /* Defined, this makes LevelX thread-safe by using a ThreadX mutex object
106    throughout the API.
107 */
108 /*
109 #define LX_THREAD_SAFE_ENABLE
110 */
111 
112 /* Defined, LevelX will be used in standalone mode (without Azure RTOS ThreadX) */
113 
114 /* #define LX_STANDALONE_ENABLE */
115 
116 /* Define user extension for NOR flash control block.  */
117 /*
118 #define LX_NOR_FLASH_USER_EXTENSION    ????
119 */
120 
121 /* Define user extension for NAND flash control block.  */
122 /*
123 #define LX_NAND_FLASH_USER_EXTENSION   ????
124 */
125 
126 #endif
127 
128