• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 ASR Microelectronics (Shanghai) Co., Ltd. All rights reserved.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "flash.h"
17 #include "duet_flash.h"
18 
19 /* Logic partition on flash devices */
20 hal_logic_partition_t hal_partitions[HAL_PARTITION_MAX];
21 extern const duet_logic_partition_t duet_partitions[];
22 
flash_partition_init(void)23 void flash_partition_init(void)
24 {
25     hal_partitions[HAL_PARTITION_BOOTLOADER].partition_owner            =
26         duet_partitions[PARTITION_BOOTLOADER].partition_owner;
27     hal_partitions[HAL_PARTITION_BOOTLOADER].partition_description      =
28         duet_partitions[PARTITION_BOOTLOADER].partition_description;
29     hal_partitions[HAL_PARTITION_BOOTLOADER].partition_start_addr       =
30         duet_partitions[PARTITION_BOOTLOADER].partition_start_addr;
31     hal_partitions[HAL_PARTITION_BOOTLOADER].partition_length           =
32         duet_partitions[PARTITION_BOOTLOADER].partition_length;
33     hal_partitions[HAL_PARTITION_BOOTLOADER].partition_options          =
34         duet_partitions[PARTITION_BOOTLOADER].partition_options ;
35 
36     hal_partitions[HAL_PARTITION_PARAMETER_1].partition_owner            =
37         duet_partitions[PARTITION_PARAMETER_1].partition_owner;
38     hal_partitions[HAL_PARTITION_PARAMETER_1].partition_description      =
39         duet_partitions[PARTITION_PARAMETER_1].partition_description;
40     hal_partitions[HAL_PARTITION_PARAMETER_1].partition_start_addr       =
41         duet_partitions[PARTITION_PARAMETER_1].partition_start_addr;
42     hal_partitions[HAL_PARTITION_PARAMETER_1].partition_length           =
43         duet_partitions[PARTITION_PARAMETER_1].partition_length;
44     hal_partitions[HAL_PARTITION_PARAMETER_1].partition_options          =
45         duet_partitions[PARTITION_PARAMETER_1].partition_options ;
46 
47     hal_partitions[HAL_PARTITION_PARAMETER_2].partition_owner            =
48         duet_partitions[PARTITION_PARAMETER_2].partition_owner ;
49     hal_partitions[HAL_PARTITION_PARAMETER_2].partition_description      =
50         duet_partitions[PARTITION_PARAMETER_2].partition_description;
51     hal_partitions[HAL_PARTITION_PARAMETER_2].partition_start_addr       =
52         duet_partitions[PARTITION_PARAMETER_2].partition_start_addr;
53     hal_partitions[HAL_PARTITION_PARAMETER_2].partition_length           =
54         duet_partitions[PARTITION_PARAMETER_2].partition_length;
55     hal_partitions[HAL_PARTITION_PARAMETER_2].partition_options          =
56         duet_partitions[PARTITION_PARAMETER_2].partition_options;
57 
58     hal_partitions[HAL_PARTITION_PARAMETER_3].partition_owner            =
59         duet_partitions[PARTITION_PARAMETER_3].partition_owner ;
60     hal_partitions[HAL_PARTITION_PARAMETER_3].partition_description      =
61         duet_partitions[PARTITION_PARAMETER_3].partition_description;
62     hal_partitions[HAL_PARTITION_PARAMETER_3].partition_start_addr       =
63         duet_partitions[PARTITION_PARAMETER_3].partition_start_addr;
64     hal_partitions[HAL_PARTITION_PARAMETER_3].partition_length           =
65         duet_partitions[PARTITION_PARAMETER_3].partition_length;
66     hal_partitions[HAL_PARTITION_PARAMETER_3].partition_options          =
67         duet_partitions[PARTITION_PARAMETER_3].partition_options;
68 
69     hal_partitions[HAL_PARTITION_PARAMETER_4].partition_owner            =
70         duet_partitions[PARTITION_PARAMETER_4].partition_owner ;
71     hal_partitions[HAL_PARTITION_PARAMETER_4].partition_description      =
72         duet_partitions[PARTITION_PARAMETER_4].partition_description;
73     hal_partitions[HAL_PARTITION_PARAMETER_4].partition_start_addr       =
74         duet_partitions[PARTITION_PARAMETER_4].partition_start_addr;
75     hal_partitions[HAL_PARTITION_PARAMETER_4].partition_length           =
76         duet_partitions[PARTITION_PARAMETER_4].partition_length;
77     hal_partitions[HAL_PARTITION_PARAMETER_4].partition_options          =
78         duet_partitions[PARTITION_PARAMETER_4].partition_options;
79 
80     hal_partitions[HAL_PARTITION_APPLICATION].partition_owner            =
81         duet_partitions[PARTITION_APPLICATION].partition_owner;
82     hal_partitions[HAL_PARTITION_APPLICATION].partition_description      =
83         duet_partitions[PARTITION_APPLICATION].partition_description;
84     hal_partitions[HAL_PARTITION_APPLICATION].partition_start_addr       =
85         duet_partitions[PARTITION_APPLICATION].partition_start_addr;
86     hal_partitions[HAL_PARTITION_APPLICATION].partition_length           =
87         duet_partitions[PARTITION_APPLICATION].partition_length;
88     hal_partitions[HAL_PARTITION_APPLICATION].partition_options          =
89         duet_partitions[PARTITION_APPLICATION].partition_options;
90 
91     hal_partitions[HAL_PARTITION_OTA_TEMP].partition_owner               =
92         duet_partitions[PARTITION_OTA_TEMP].partition_owner;
93     hal_partitions[HAL_PARTITION_OTA_TEMP].partition_description         =
94         duet_partitions[PARTITION_OTA_TEMP].partition_description;
95     hal_partitions[HAL_PARTITION_OTA_TEMP].partition_start_addr          =
96         duet_partitions[PARTITION_OTA_TEMP].partition_start_addr;
97     hal_partitions[HAL_PARTITION_OTA_TEMP].partition_length              =
98         duet_partitions[PARTITION_OTA_TEMP].partition_length;
99     hal_partitions[HAL_PARTITION_OTA_TEMP].partition_options             =
100         duet_partitions[PARTITION_OTA_TEMP].partition_options;
101 
102 #ifdef MS_CONFIG_OTA_SUPPORT
103     hal_partitions[HAL_PARTITION_OTA_MCU].partition_owner                =
104         duet_partitions[PARTITION_OTA_MCU].partition_owner;
105     hal_partitions[HAL_PARTITION_OTA_MCU].partition_description          =
106         duet_partitions[PARTITION_OTA_MCU].partition_description;
107     hal_partitions[HAL_PARTITION_OTA_MCU].partition_start_addr           =
108         duet_partitions[PARTITION_OTA_MCU].partition_start_addr;
109     hal_partitions[HAL_PARTITION_OTA_MCU].partition_length               =
110         duet_partitions[PARTITION_OTA_MCU].partition_length;
111     hal_partitions[HAL_PARTITION_OTA_MCU].partition_options              =
112         duet_partitions[PARTITION_OTA_MCU].partition_options ;
113 
114     hal_partitions[HAL_PARTITION_OTA_PARA].partition_owner               =
115         duet_partitions[PARTITION_OTA_PARA].partition_owner;
116     hal_partitions[HAL_PARTITION_OTA_PARA].partition_description         =
117         duet_partitions[PARTITION_OTA_PARA].partition_description;
118     hal_partitions[HAL_PARTITION_OTA_PARA].partition_start_addr          =
119         duet_partitions[PARTITION_OTA_PARA].partition_start_addr;
120     hal_partitions[HAL_PARTITION_OTA_PARA].partition_length              =
121         duet_partitions[PARTITION_OTA_PARA].partition_length;
122     hal_partitions[HAL_PARTITION_OTA_PARA].partition_options             =
123         duet_partitions[PARTITION_OTA_PARA].partition_options ;
124 
125     hal_partitions[HAL_PARTITION_OTA_HEAD_PARA].partition_owner          =
126         duet_partitions[PARTITION_OTA_HEAD_PARA].partition_owner;
127     hal_partitions[HAL_PARTITION_OTA_HEAD_PARA].partition_description    =
128         duet_partitions[PARTITION_OTA_HEAD_PARA].partition_description;
129     hal_partitions[HAL_PARTITION_OTA_HEAD_PARA].partition_start_addr     =
130         duet_partitions[PARTITION_OTA_HEAD_PARA].partition_start_addr;
131     hal_partitions[HAL_PARTITION_OTA_HEAD_PARA].partition_length         =
132         duet_partitions[PARTITION_OTA_HEAD_PARA].partition_length;
133     hal_partitions[HAL_PARTITION_OTA_HEAD_PARA].partition_options        =
134         duet_partitions[PARTITION_OTA_HEAD_PARA].partition_options ;
135 #endif
136 }
137 
138