1 /*******************************************************************************
2 * The confidential and proprietary information contained in this file may *
3 * only be used by a person authorised under and to the extent permitted *
4 * by a subsisting licensing agreement from ARM Limited or its affiliates. *
5 * (C) COPYRIGHT [2001-2017] ARM Limited or its affiliates. *
6 * ALL RIGHTS RESERVED *
7 * This entire notice must be reproduced on all copies of this file *
8 * and copies of this file may only be made by a person if such person is *
9 * permitted to do so under the terms of a subsisting license agreement *
10 * from ARM Limited or its affiliates. *
11 *******************************************************************************/
12
13 #include <stdio.h>
14 #include <stdint.h>
15
16 #ifdef TZM
17 #include "FreeRTOS.h"
18 #include "test_pal_log.h"
19 #include "test_pal_mem.h"
20 #include "test_pal_mem_s.h"
21 #include <arm_cmse.h>
22 #endif
23
24 #ifndef TZM
25 /******************************************************************************/
Test_PalMalloc_s(size_t size)26 void *Test_PalMalloc_s(size_t size)
27 {
28 (void)size;
29 return NULL;
30 }
31
32 /******************************************************************************/
Test_PalFree_s(void * pvAddress)33 void Test_PalFree_s(void *pvAddress)
34 {
35 (void)pvAddress;
36 }
37
38 /******************************************************************************/
Test_PalRealloc_s(void * pvAddress,size_t newSize)39 void *Test_PalRealloc_s(void *pvAddress, size_t newSize)
40 {
41 (void)pvAddress;
42 (void)newSize;
43 return NULL;
44 }
45
46 /******************************************************************************/
Test_PalDMAContigBufferAlloc_s(size_t size)47 void *Test_PalDMAContigBufferAlloc_s(size_t size)
48 {
49 (void)size;
50 return NULL;
51 }
52
53 /******************************************************************************/
Test_PalDMAContigBufferFree_s(void * pvAddress)54 void Test_PalDMAContigBufferFree_s(void *pvAddress)
55 {
56 (void)pvAddress;
57 }
58
59 /******************************************************************************/
Test_PalDMAContigBufferRealloc_s(void * pvAddress,size_t newSize)60 void *Test_PalDMAContigBufferRealloc_s(void *pvAddress, size_t newSize)
61 {
62 (void)pvAddress;
63 (void)newSize;
64 return NULL;
65 }
66
67 /******************************************************************************/
Test_PalGetDMABaseAddr_s(void)68 unsigned long Test_PalGetDMABaseAddr_s(void)
69 {
70 return 0;
71 }
72
73 /******************************************************************************/
Test_PalGetUnmanagedBaseAddr_s(void)74 unsigned long Test_PalGetUnmanagedBaseAddr_s(void)
75 {
76 return 0;
77 }
78
79 /******************************************************************************/
Test_PalMemInit_s(unsigned long newDMABaseAddr,unsigned long newUnmanagedBaseAddr,size_t DMAsize)80 uint32_t Test_PalMemInit_s(unsigned long newDMABaseAddr,
81 unsigned long newUnmanagedBaseAddr,
82 size_t DMAsize)
83 {
84 (void)newDMABaseAddr;
85 (void)newUnmanagedBaseAddr;
86 (void)DMAsize;
87 return 1;
88 }
89
90 /******************************************************************************/
Test_PalMemFin_s(void)91 uint32_t Test_PalMemFin_s(void)
92 {
93 return 1;
94 }
95
96 #else
97
98 static unsigned long unmanagedBaseAddr_s = 0;
99 static uint8_t memInitialised_s = 0;
100
101 /******************************************************************************/
Test_PalMalloc_s(size_t size)102 void *Test_PalMalloc_s(size_t size)
103 {
104 /* A non-secure caller */
105 if (cmse_is_nsfptr(&Test_PalMalloc_s))
106 return NULL;
107
108 /* A secure caller */
109 if (!size)
110 return NULL;
111
112 return pvPortMalloc(size);
113 }
114
115 /******************************************************************************/
Test_PalFree_s(void * pvAddress)116 void Test_PalFree_s(void *pvAddress)
117 {
118 /* A non-secure caller */
119 if (cmse_is_nsfptr(&Test_PalFree_s))
120 return;
121
122 /* A secure caller */
123 if (pvAddress == NULL)
124 return;
125
126 vPortFree(pvAddress);
127 }
128
129 /******************************************************************************/
Test_PalRealloc_s(void * pvAddress,size_t newSize)130 void *Test_PalRealloc_s(void *pvAddress, size_t newSize)
131 {
132 /* A non-secure caller */
133 if (cmse_is_nsfptr(&Test_PalRealloc_s))
134 return NULL;
135
136 /* A secure caller */
137 if (pvAddress == NULL)
138 return NULL;
139
140 return pvPortRealloc(pvAddress, newSize);
141 }
142
143 /******************************************************************************/
Test_PalDMAContigBufferAlloc_s(size_t size)144 void *Test_PalDMAContigBufferAlloc_s(size_t size)
145 {
146 return Test_PalMalloc_s(size);
147 }
148
149 /******************************************************************************/
Test_PalDMAContigBufferFree_s(void * pvAddress)150 void Test_PalDMAContigBufferFree_s(void *pvAddress)
151 {
152 Test_PalFree_s(pvAddress);
153 }
154
155 /******************************************************************************/
Test_PalDMAContigBufferRealloc_s(void * pvAddress,size_t newSize)156 void *Test_PalDMAContigBufferRealloc_s(void *pvAddress, size_t newSize)
157 {
158 return Test_PalRealloc_s(pvAddress, newSize);
159 }
160
161 /******************************************************************************/
Test_PalGetDMABaseAddr_s(void)162 unsigned long Test_PalGetDMABaseAddr_s(void)
163 {
164 return 0;
165 }
166
167 /******************************************************************************/
Test_PalGetUnmanagedBaseAddr_s(void)168 unsigned long Test_PalGetUnmanagedBaseAddr_s(void)
169 {
170 return unmanagedBaseAddr_s;
171 }
172
173 /******************************************************************************/
Test_PalMemInit_s(unsigned long newDMABaseAddr_s,unsigned long newUnmanagedBaseAddr_s,size_t SDMAsize)174 uint32_t Test_PalMemInit_s(unsigned long newDMABaseAddr_s,
175 unsigned long newUnmanagedBaseAddr_s,
176 size_t SDMAsize)
177 {
178 /* A non-secure caller */
179 if (cmse_is_nsfptr(&Test_PalMemInit_s))
180 return 1;
181
182 /* A secure caller */
183 if(memInitialised_s) {
184 TEST_PRINTF_ERROR("Secure memory is already initialised");
185 return 1;
186 }
187
188 (void)newDMABaseAddr_s;
189 (void)SDMAsize;
190 unmanagedBaseAddr_s = newUnmanagedBaseAddr_s;
191 memInitialised_s = 1;
192
193 return 0;
194 }
195
196 /******************************************************************************/
Test_PalMemFin_s(void)197 uint32_t Test_PalMemFin_s(void)
198 {
199 /* A non-secure caller */
200 if (cmse_is_nsfptr(&Test_PalMemFin_s))
201 return 1;
202
203 /* A secure caller */
204 unmanagedBaseAddr_s = 0;
205 memInitialised_s = 0;
206
207 return 0;
208 }
209 #endif
210