QNX IPC: Build - Add Vayu Build to the QNX IPC
[ipc/ipcdev.git] / qnx / src / ipc3x_dev / ReadMe.txt
1                              SysLink 3 / Tiler
3 This is the Qnx SysLink IPC that uses the VirtQueue transport to communicate
4 with the sys-bios rpmsg.
6 Source Code:
7 ============
8     - Qnx SysLink Source
9       The source code is located in the gforge01 git tree.
11       git clone ssh://<aid/xid>@gforge01.dal.design.ti.com/gitroot/syslink_qnx
12       branch: sl3_dev
13       Provide enterprise password when prompted.
15     - BIOS RPMSG Source
16       The source code is located in git.omapzoom.org
18       branch: master
19       tag: 2.00.11.31
20       commit-id: 91f6379282230ef5d1818ce8363ce1e64f23cda2
21       patches needed on top for Qnx can be found at:
22       \\dta0866189\SHARE\sl3\patches\sl3_1.05.23\sysbios-rpmsg
23       0001-IPC-Protect-Message-Sending-to-Serialize-Messages.patch
24       0002-WIP-Add-j5-and-j5eco-support.patch
25       0003-Resources-Update-ti811x-resource-table-for-shmem-car.patch
26       0004-Update-number-of-HwSpinlocks.patch
28       Note: For running the benchmarking test, follow the instructions at the
29             top of the MPU-side benchmarking test app.
31       Default firmware files are generated in
32       /sysbios-rpmsg/src/ti/examples/srvmgr/ti_platform_<...>.  The folder is
33       named for the platform.  For example, for the OMAP5 ipu firmware, the folder
34       is named ti_platform_omap54xx_ipu.
36 Tools:
37 ======
38     - Qnx Momentics IDE 6.5.x
39       For more information please refer to the Wiki:
40       http://opbuwiki.dal.design.ti.com/index.php/QNX_Main_Page#Developer_Setup
41     - OMAP5 BSP Information is available in thie Wiki:
42       http://opbuwiki.dal.design.ti.com/index.php/OMAP5_QNX_BSP
43     - J5Eco BSP Information can be found on this Wiki:
44       http://opbuwiki.dal.design.ti.com/index.php/J5eco_QNX_RPMSG#QNX_J5_eco_BSP
45     - Please refer to the ReadMe in the Bios RPMSG source for the tools
46       required to build the BIOS RPMSG source.
48 Build Instructions (Windows):
49 =============================
50     1) Open a command prompt and change directory to the syslink project
51        directory.
52     2) (Optional) To override the default install root, create a new file named
53        qconf-override.mk with the following contents:
54            INSTALL_ROOT_nto := C:/ide-4.7-workspace/trunk
55            USE_INSTALL_ROOT = 1
56        Set the environment variable QCONF_OVERRIDE as follows:
57            set QCONF_OVERRIDE = C:\ide-4.7-workspace\trunk\qconf-override.mk
58     3) From the command prompt:
59            To build for OMAP4:
60                > make
61            To build for OMAP5:
62                > make SYSLINK_PLATFORM=omap5430 TILER_PLATFORM=omap5430 SMP=1
63            To build for TI811X (note, there is no tiler support for j5 eco):
64                > make SYSLINK_PLATFORM=ti81xx SYSLINK_VARIANT=TI811X
65        Note: To export the tiler headers and built binaries/libraries to the
66              install root, you can instead run "make install"
68 Note: To build the binaries/libraries with the debug compile options of -g and
69       -O0, add the following to the build command:
71           "SYSLINK_DEBUG=1 TILER_DEBUG=1".
73 Clean Instructions (Windows):
74 =============================
75     1) Open a command prompt and change directory to the syslink project
76        directory.
77     3) From the command prompt:
78            > make clean
80 Build Output:
81 =============
83     Tiler binary and libs:
84     ----------------------
85     \tiler\resmgr\tiler\arm\le.v7\tiler              Tiler Resource Manager
86     \tiler\usr\memmgr\arm\so.le.v7\libmemmgr.so        Tiler MemMgr API library
87     \tiler\usr\tilerusr\arm\so.le.v7\libtilerusr.so    Tiler TilerUsr API library
88     \tiler\usr\utils\arm\so.le.v7\libmemmgr_utils.so   Tiler MmemMgr Utils library
90     Tiler samples:
91     --------------
92     \tiler\usr\tests\memmgr\arm\le.v7\memmgr_test     Tiler MemMgr test
93     \tiler\usr\tests\tiler\arm\le.v7\tiler_test       Tiler parametric test
94     \tiler\usr\tests\tilerusr\arm\le.v7\tilerusr_test Tiler TilerUsr test
95     \tiler\usr\tests\utils\arm\le.v7\utils_test       Tiler Utils test
97     SharedMemAllocator binary and libs:
98     -----------------------------------
99     \sharedmemallocator\resmgr\arm\le.v7\shmemallocator              ResMgr
100     \sharedmemallocator\usr\arm\so.le.v7\libsharedmemallocator.so    User Lib
102     SharedMemAllocator samples:
103     ---------------------------
104     \sharedmemallocator\samples\sharedMemAllocator\usr\arm\le.v7\SharedMemoryAllocatorTestApp
106     SysLink binary and lib (under \ti\syslink\build\Qnx\):
107     ------------------------------------------------------
108     resmgr\arm\le.v7\syslink                    Syslink Resource Manager
109     lib\arm\so.le.v7\libsyslink_client.so       Syslink client library (
110                                                 needed for using HWSpinLock API
111                                                 and running the
112                                                 MQCopy test app)
114     SysLink samples (under \ti\syslink\samples\hlos\):
115     --------------------------------------------------
116     benchmark\usr\arm\le.v7\rpmsg-omx-benchmark     Benchmark test
117     MessageQCopy\usr\arm\le.v7\mqcopytestapp        MessageQCopy test
118     rpmsg-omx\usr\arm\le.v7\rpmsg-omx-test          Rpmsg-omx interface test
119     hwspinlock\usr\arm\le.v7\HwSpinLockTestApp      HWSpinLock test
121     Note: If an install root was specified, you will find the above mentioned binaries and
122     libraries in the follwing paths in the install root:
124     <install_root>\bin\
125         -> syslink
126         -> rpmsg-omx-benchmark
127         -> mqcopytestapp
128         -> rpmsg-omx-test
129         -> HwSpinLockTestApp
130     <install_root>\sbin\
131         -> tiler
132         -> memmgr_test
133         -> tiler_test
134         -> tilerusr_test
135         -> utils_test
136     <install_root>\usr\lib
137         -> libmemmgr.so
138         -> libtilerusr.so
139         -> libmemmgr_utils.so
140         -> libsyslink_client.so
142 To Run SysLink/Tiler/SharedMemAllocator:
143 ========================================
145     SharedMemAllocator
146     ------------------
147     On the target, sharedmemallocator can be started by running the following
148     command
149         # shmemallocator
150     No additional command line arguments are required.
151     The default carveouts will be created unless the resource manager
152     source file is modified to define different carveouts.
153     Note: If the source file is modified, then the carveouts will need to be
154     modified in the syslink Platform.c file, and the sysbios-rpmsg resource
155     table file in order for the carveouts to be visible to the remote core.
157     Tiler
158     -----
159     On the target, tiler can be started by running the following command
160         # tiler
161     No additional command line arguments required.  To see what options are
162     available, run "use tiler" or view the tiler.use file.
164     SysLink
165     -------
166     On the target, syslink can be started by running the following commad
167         # syslink <proc_name> <ipu_firmware_file> ...
168     The IPU firmware file to be loaded must be specified when starting syslink.
169     The proc_name is the same as the MultiProc name for the proc that is to
170     be loaded and is specific to the platform. Multiple proc_name/file pairs
171     can be listed and all will be loaded.
172     To see what other options may be available, run "use syslink" or view the
173     syslink.use file.
174     For example:
175         - To start syslink with DSP for TI811X:
176             # syslink DSP <dsp_firmware_file>
177     For backward-compatibility with previous OMAP5 releases, the "-f" and "-d"
178     options can be used instead to load IPU and DSP, respectively:
179         # syslink -f <ipu_firmware_file> -d <dsp_firmware_file>
181 Disabling Hibernation and Changing the Hibernation Timeout:
182 =======================================
183     To disable hibernation, use the "-H 0" option when starting syslink:
185     # syslink -f <ducati_firmware_file> -H 0
187     To change the hibernation timeout, use the "-T" option when starting syslink.
188     The value should  be in msec:
190     # syslink -f <ducati_firmware_file> -T 10000
192 Remote Core Traces:
193 ===================
194     To see a dump of the remote core trace buffer, simply cat
195     /dev/syslink-trace<proc_id>.  Proc_id is the same as the MultiProc procId.
197     For IPU traces for OMAP5:
198     # cat /dev/syslink-trace2
200     For DSP traces for OMAP5 or TI811X:
201     # cat /dev/syslink-trace0
203 Changing SharedMemAllocator Carveouts:
204 ======================================
205     The carveouts used by the SharedMemAllocator are defined in
206     \sharedmemallocator\resmgr\SharedMemoryAllocator.c at in the "blocks" array.
207     In order to modify the addresses/sizes/number of the carveouts, modify this
208     array and then re-build the module.
210 Defining Carveouts for the Remote Cores:
211 ========================================
212     In order to be able to perform the address translation and to have the
213     carveout mapped into the MMU for the remote core, the carveouts must be
214     defined in the sysbio-rpmsg resource table for the cores which need access
215     to them.  Carveouts should be added as "devmem" entries in the table, with
216     the virtual and physical addresses given in the entry.
218     The MPU-side Platform.c file for the target should also be updated to define
219     the updated/new carveouts in the Syslink_Override_Params.  The carveouts
220     should be listed here for each core which needs access to them.
222 Validating on the TARGET:
223 =============================
225     SysLink standalone tests:
226     -------------------------------------
227     1) Setup the target:
228        Copy the following files to the target:
229            syslink
230            mqcopytestapp
231            rpmsg-omx-test
232            libsyslink_client.so
233            test_omx_ipu.xem3 (for OMAP5 IPU)
234            test_omx_dsp.xe64T (for OMAP5 or TI811X DSP)
236        Note: The binaries are from the sysbios-rpmsg tree, and
237              can be found in the examples folder.
239     3) Start syslink from the terminal:
240        For OMAP5:
241        # /tmp/syslink -f /tmp/test_omx_ipu.xem3 -d /tmp/test_omx_dsp.xe64T -H 0
242        For TI811X:
243        # /tmp/syslink DSP /tmp/test_omx_dsp.xe64T -H 0
245        You will see output like below on the console (OMAP5 output shown as example):
246        # /tmp/syslink -f /tmp/test_omx_ipu.xem3 -d /tmp/test_omx_dsp.xe64T -H 0
247        Starting syslink resource manager...
248        RscTable_process: RscTable version is [1]
249        RscTable_process: vring [256] @ [0xa0000000]
250        RscTable_process: vring [256] @ [0xa0004000]
251        RscTable_process: carveout [IPU_MEM_TEXT] @ da [0x00000000] pa [0xeda00000] len [0x600000]
252        RscTable_process: carveout [IPU_MEM_DATA] @ da [0x80000000] pa [0xee000000] len [0x9c00000]
253        RscTable_process: carveout [IPU_MEM_IPC_DATA] @ da [0x9f000000] pa [0xf7c00000] len [0x100000]
254        RscTable_process: trace [trace:sysm3] @ da [0x9f000000] len [0x8000]
255        RscTable_process: devmem [IPU_MEM_IPC_VRING] @ da [0xa0000000] pa [0xed900000] len [0x100000]
256        RscTable_process: devmem [IPU_MEM_IOBUFS] @ da [0x90000000] pa [0xf7d00000] len [0x5a00000]
257        RscTable_process: devmem [IPU_TILER_MODE_0_1] @ da [0x60000000] pa [0x60000000] len [0x10000000]
258        RscTable_process: devmem [IPU_TILER_MODE_2] @ da [0x70000000] pa [0x70000000] len [0x8000000]
259        RscTable_process: devmem [IPU_TILER_MODE_3] @ da [0x78000000] pa [0x78000000] len [0x8000000]
260        RscTable_process: devmem [IPU_PERIPHERAL_L4CFG] @ da [0xaa000000] pa [0x4a000000] len [0x1000000]
261        RscTable_process: devmem [IPU_PERIPHERAL_L4PER] @ da [0xa8000000] pa [0x48000000] len [0x1000000]
262        RscTable_process: devmem [IPU_IVAHD_CONFIG] @ da [0xba000000] pa [0x5a000000] len [0x1000000]
263        RscTable_process: devmem [IPU_IVAHD_SL2] @ da [0xbb000000] pa [0x5b000000] len [0x1000000]
264        RscTable_process: devmem [IPU_PERIPHERAL_DMM] @ da [0xae000000] pa [0x4e000000] len [0x100000]
265        << DLOAD >> WARNING: '' does not have a dynamic segment; assuming that it is a static executable and it cannot be relocated.
266          Programming Benelli memory regions
267        =========================================
268        VA = [0xa0000000] of size [0x100000] at PA = [0xed900000]
269        VA = [0x0] of size [0x600000] at PA = [0xeda00000]
270        VA = [0x80000000] of size [0x9c00000] at PA = [0xee000000]
271        VA = [0x9f000000] of size [0x100000] at PA = [0xf7c00000]
272          Programming Benelli L4 peripherals
273        =========================================
274        PA [0x60000000] VA [0x60000000] size [0x10000000]
275        PA [0x70000000] VA [0x70000000] size [0x8000000]
276        PA [0x78000000] VA [0x78000000] size [0x8000000]
277        PA [0x4a000000] VA [0xaa000000] size [0x1000000]
278        PA [0x48000000] VA [0xa8000000] size [0x1000000]
279        PA [0x4e000000] VA [0xae000000] size [0x100000]
280        PA [0x5a000000] VA [0xba000000] size [0x1000000]
281        PA [0x5b000000] VA [0xbb000000] size [0x1000000]
282        PA [0x58000000] VA [0xb8000000] size [0x1000000]
283        RscTable_process: RscTable version is [1]
284        RscTable_process: vring [256] @ [0xa0000000]
285        RscTable_process: vring [256] @ [0xa0004000]
286        RscTable_process: carveout [DSP_MEM_TEXT] @ da [0x20000000] pa [0xe0d00000] len [0x100000]
287        RscTable_process: carveout [DSP_MEM_DATA] @ da [0x90000000] pa [0xe0e00000] len [0x100000]
288        RscTable_process: carveout [DSP_MEM_HEAP] @ da [0x90100000] pa [0xe0f00000] len [0x300000]
289        RscTable_process: carveout [DSP_MEM_IPC_DATA] @ da [0x9f000000] pa [0xe1200000] len [0x100000]
290        RscTable_process: trace [trace:dsp] @ da [0x9f000000] len [0x8000]
291        RscTable_process: devmem [DSP_MEM_IPC_VRING] @ da [0xa0000000] pa [0xe0c00000] len [0x100000]
292        RscTable_process: devmem [DSP_MEM_IOBUFS] @ da [0x80000000] pa [0xe1300000] len [0x5a00000]
293        RscTable_process: devmem [DSP_TILER_MODE_0_1] @ da [0x60000000] pa [0x60000000] len [0x10000000]
294        RscTable_process: devmem [DSP_TILER_MODE_2] @ da [0x70000000] pa [0x70000000] len [0x8000000]
295        RscTable_process: devmem [DSP_TILER_MODE_3] @ da [0x78000000] pa [0x78000000] len [0x8000000]
296        RscTable_process: devmem [DSP_PERIPHERAL_L4CFG] @ da [0x4a000000] pa [0x4a000000] len [0x1000000]
297        RscTable_process: devmem [DSP_PERIPHERAL_L4PER] @ da [0x48000000] pa [0x48000000] len [0x1000000]
298        RscTable_process: devmem [DSP_PERIPHERAL_DMM] @ da [0x4e000000] pa [0x4e000000] len [0x100000]
299        << DLOAD >> WARNING: '' does not have a dynamic segment; assuming that it is a static executable and it cannot be relocated.
300          Programming Tesla memory regions
301        =========================================
302        VA = [0xa0000000] of size [0x100000] at PA = [0xe0c00000]
303        VA = [0x20000000] of size [0x100000] at PA = [0xe0d00000]
304        VA = [0x90000000] of size [0x100000] at PA = [0xe0e00000]
305        VA = [0x90100000] of size [0x300000] at PA = [0xe0f00000]
306        VA = [0x9f000000] of size [0x100000] at PA = [0xe1200000]
307          Programming L4 peripherals
308        =========================================
309        VA = [0x60000000] and PA [0x60000000] of size = [0x10000000]
310        VA = [0x70000000] and PA [0x70000000] of size = [0x8000000]
311        VA = [0x78000000] and PA [0x78000000] of size = [0x8000000]
312        VA = [0x4a000000] and PA [0x4a000000] of size = [0x1000000]
313        VA = [0x48000000] and PA [0x48000000] of size = [0x1000000]
314        VA = [0x49000000] and PA [0x49000000] of size = [0x1000000]
315        VA = [0xba000000] and PA [0x5a000000] of size = [0x1000000]
316        Syslink resource manager started
317        #
319     4) rpmsg-omx-test:
320        # rpmsg-omx-test 1 10
322        You will see output like below on the console:
323        # rpmsg-omx-test 10
324        omx_sample: Connected to OMX
325        omx_sample (1): OMX_GetHandle (H264_decoder).
326                msg_id: 99, fxn_idx: 5, data_size: 13, data: OMX_Callback
327        omx_sample (1): Got omx_handle: 0x5c0ffee5
328        omx_sample(1): OMX_SetParameter (0x5c0ffee5)
329        omx_sample (1): Got result 0
330        omx_sample (2): OMX_GetHandle (H264_decoder).
331                msg_id: 99, fxn_idx: 5, data_size: 13, data: OMX_Callback
332        omx_sample (2): Got omx_handle: 0x5c0ffee5
333        omx_sample(2): OMX_SetParameter (0x5c0ffee5)
334        omx_sample (2): Got result 0
336        [...]
338        omx_sample (10): OMX_GetHandle (H264_decoder).
339                msg_id: 99, fxn_idx: 5, data_size: 13, data: OMX_Callback
340        omx_sample (10): Got omx_handle: 0x5c0ffee5
341        omx_sample(10): OMX_SetParameter (0x5c0ffee5)
342        omx_sample (10): Got result 0
343        omx_sample: Closed connection to OMX!
344        #
346     5) mqcopytestapp:
347        # mqcopytestapp 1
349        To see the test app output, run sloginfo:
350        Jan 01 00:00:00    4    42     0 MessageQCopyApp sample application
352        Jan 01 00:00:00    4    42     0 Entered MessageQCopyApp_startup
354        Jan 01 00:00:00    4    42     0 Leaving MessageQCopyApp_startup. Status [0x0]
356        Jan 01 00:00:00    4    42     0 Entered MessageQCopyApp_execute
358        Jan 01 00:00:00   4    42     0 <1>mqcopy_server_test_cb 0 for handle 6141352 from 50 [hello world!]
359        Jan 01 00:00:00    4    42     0 <1>mqcopy_server_test_cb 1 for handle 6141352 from 50 [hello world!]
360        Jan 01 00:00:00    4    42     0 <1>mqcopy_server_test_cb 2 for handle 6141352 from 50 [hello world!]
361        Jan 01 00:00:00    4    42     0 <1>mqcopy_server_test_cb 3 for handle 6141352 from 50 [hello world!]
362        Jan 01 00:00:00    4    42     0 <1>mqcopy_server_test_cb 4 for handle 6141352 from 50 [hello world!]
363        Jan 01 00:00:00    4    42     0 <1>mqcopy_server_test_cb 5 for handle 6141352 from 50 [hello world!]
365        [...]
367        Jan 01 00:00:00    4    42     0 <1>mqcopy_server_test_cb 495 for handle 6141352 from 50 [hello world!]
368        Jan 01 00:00:00    4    42     0 <1>mqcopy_server_test_cb 496 for handle 6141352 from 50 [hello world!]
369        Jan 01 00:00:00    4    42     0 <1>mqcopy_server_test_cb 497 for handle 6141352 from 50 [hello world!]
370        Jan 01 00:00:00    4    42     0 <1>mqcopy_server_test_cb 498 for handle 6141352 from 50 [hello world!]
371        Jan 01 00:00:00    4    42     0 <1>mqcopy_server_test_cb 499 for handle 6141352 from 50 [hello world!]
372        Jan 01 00:00:00    4    42     0 <1>_MessageQCopy_callback_bufReady: no object for endpoint: 103
374        Jan 01 00:00:00    4    42     0 Leaving MessageQCopyApp_execute. Status [0x0]
376        Jan 01 00:00:00    4    42     0 Entered MessageQCopyApp_shutdown
378        Jan 01 00:00:00    4    42     0 Leaving MessageQCopyApp_shutdown. Status [0x0]
380        # mqcopytestapp 2
382        To see the test app output, run sloginfo:
383        Jan 01 00:00:00    4    42     0 MessageQCopyApp sample application
385        Jan 01 00:00:00    4    42     0 Entered MessageQCopyApp_startup
387        Jan 01 00:00:00    4    42     0 Leaving MessageQCopyApp_startup. Status [0x0]
389        Jan 01 00:00:00    4    42     0 Entered MessageQCopyApp_execute
391        Jan 01 00:00:00    4    42     0 <1>mqcopy_client_test_cb 0 for handle 6141352 from 50 [hello world!]
392        Jan 01 00:00:00    4    42     0 <1>mqcopy_client_test_cb 1 for handle 6141352 from 51 [hello world!]
393        Jan 01 00:00:00    4    42     0 <1>mqcopy_client_test_cb 2 for handle 6141352 from 50 [hello world!]
394        Jan 01 00:00:00    4    42     0 <1>mqcopy_client_test_cb 3 for handle 6141352 from 51 [hello world!]
395        Jan 01 00:00:00    4    42     0 <1>mqcopy_client_test_cb 4 for handle 6141352 from 50 [hello world!]
396        Jan 01 00:00:00    4    42     0 <1>mqcopy_client_test_cb 5 for handle 6141352 from 51 [hello world!]
398        [...]
400        Jan 01 00:00:00    4    42     0 <1>mqcopy_client_test_cb 495 for handle 6141352 from 51 [hello world!]
401        Jan 01 00:00:00    4    42     0 <1>mqcopy_client_test_cb 496 for handle 6141352 from 50 [hello world!]
402        Jan 01 00:00:00    4    42     0 <1>mqcopy_client_test_cb 497 for handle 6141352 from 51 [hello world!]
403        Jan 01 00:00:00    4    42     0 <1>mqcopy_client_test_cb 498 for handle 6141352 from 50 [hello world!]
404        Jan 01 00:00:00    4    42     0 <1>mqcopy_client_test_cb 499 for handle 6141352 from 51 [hello world!]
405        Jan 01 00:00:00    4    42     0 <1>_MessageQCopy_callback_bufReady: no object for endpoint: 103
407        Jan 01 00:00:00    4    42     0 <1>_MessageQCopy_callback_bufReady: no object for endpoint: 103
409        Jan 01 00:00:00    4    42     0 Leaving MessageQCopyApp_execute. Status [0x0]
411        Jan 01 00:00:00    4    42     0 <1>_MessageQCopy_callback_bufReady: no object for endpoint: 103
413        Jan 01 00:00:00    4    42     0 Entered MessageQCopyApp_shutdown
415        Jan 01 00:00:00    4    42     0 Leaving MessageQCopyApp_shutdown. Status [0x0]
417     6) HwSpinLockTestApp:
418        Note: Use the test_omx_dsp to run this test.
420        # HwSpinLockTestApp
422        You will see output like below on the console:
424        # HwSpinLockTestApp
425        PROC=> HwSpinlock_create(0) CREATED
427        PROC=> lock (0) entered
429        PROC=> return from HwSpinlock_leave(0)
430        HwSpinlock_delete(token0): PASSED
432        PROC=> HwSpinlock_create(1) CREATED
434        PROC=> lock (1) entered
436        PROC=> return from HwSpinlock_leave(1)
437        HwSpinlock_delete(token1): PASSED
439        PROC=> HwSpinlock_create(1) CREATED
441        PROC=> lock (2) entered
443        PROC=> return from HwSpinlock_leave(2)
444        HwSpinlock_delete(token2): PASSED
445        #
447     Tiler Standalone Tests:
448     -----------------------
450     1) Setup the target
452        Copy the following to the target:
454        tiler
455        memmgr_test
456        tilerusr_test
457        utils_test
458        libmemmgr.so
459        libtilerusr.so
460        libmemmgr_utils.so
462     2) Start tiler from the terminal:
463        # tiler
465        You will see output like below on the console:
466        # tiler
467        configured grow size is 16
468        configured grow size is 16
469        tiler: Unable to register to low memory event: Function not implemented
471     3) memmgr_test (Note: this test takes a long time on Virtio)
472        # memmgr_test
473        TEST #  1 - alloc_1D_test(4096, 0)
474        TEST_DESC - Allocate & Free 4096b 1D buffer
475        ==> TEST OK
476        so far FAILED: 0, SUCCEEDED: 1, UNAVAILABLE: 0
477        TEST #  2 - alloc_2D_test(64, 64, PIXEL_FMT_8BIT)
478        TEST_DESC - Allocate & Free 64x64x1b 1D buffer
479        ==> TEST OK
481        [...]
483        TEST # 103 - star_test(1000, 10)
484        TEST_DESC - Random set of 1000 Allocs/Maps and Frees/UnMaps for 10 slots
485        ==> TEST OK
486        so far FAILED: 0, SUCCEEDED: 103, UNAVAILABLE: 0
487        so far FAILED: 0, SUCCEEDED: 103, UNAVAILABLE: 0
488        FAILED: 0, SUCCEEDED: 103, UNAVAILABLE: 0
490     4) tilerusr_test (Note: this test takes a long time on Virtio)
491        # tilerusr_test
492        TEST #  1 - alloc_1D_test(4096, 0)
493        TEST_DESC - Allocate & Free 4096b 1D buffer
494        ==> TEST OK
495        so far FAILED: 0, SUCCEEDED: 1, UNAVAILABLE: 0
496        TEST #  2 - alloc_2D_test(64, 64, PIXEL_FMT_8BIT)
497        TEST_DESC - Allocate & Free 64x64x1b 1D buffer
498        ==> TEST OK
500        [...]
502        TEST # 79 - star_test(1000, 10)
503        TEST_DESC - Random set of 1000 Allocs/Maps and Frees/UnMaps for 10 slots
504        ==> TEST OK
505        so far FAILED: 0, SUCCEEDED: 79, UNAVAILABLE: 0
506        so far FAILED: 0, SUCCEEDED: 79, UNAVAILABLE: 0
507        FAILED: 0, SUCCEEDED: 79, UNAVAILABLE: 0
509     5) utils_test
510        # utils_test
511        TEST #  1 - test_new()
512        TEST_DESC - ==> TEST OK
513        so far FAILED: 0, SUCCEEDED: 1, UNAVAILABLE: 0
514        TEST #  2 - test_list()
515        TEST_DESC - ==> TEST OK
516        so far FAILED: 0, SUCCEEDED: 2, UNAVAILABLE: 0
518        [...]
520        TEST #  7 - test_math()
521        TEST_DESC - ==> TEST OK
522        so far FAILED: 0, SUCCEEDED: 7, UNAVAILABLE: 0
523        so far FAILED: 0, SUCCEEDED: 7, UNAVAILABLE: 0
524        FAILED: 0, SUCCEEDED: 7, UNAVAILABLE: 0