Add MAD boot example for SCBP6618X
[keystone-rtos/mcsdk-tools.git] / boot_loader / examples / mad / mad_helloworld / src / mad_helloworld.c
1 /******************************************************************************
2  * Copyright (c) 2011 Texas Instruments Incorporated - http://www.ti.com
3  *
4  *  Redistribution and use in source and binary forms, with or without
5  *  modification, are permitted provided that the following conditions
6  *  are met:
7  *
8  *    Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  *
11  *    Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the
14  *    distribution.
15  *
16  *    Neither the name of Texas Instruments Incorporated emac the names of
17  *    its contributors may be used to endorse or promote products derived
18  *    from this software without specific prior written permission.
19  *
20  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  *
32  *****************************************************************************/
34 /**************************************************************************************
35  * FILE PURPOSE: Hello World Example
36  **************************************************************************************
37  * FILE NAME: mad_helloworld.c
38  *
39  * DESCRIPTION: A simple hello world example running on non-zero Core.
40  *
41  ***************************************************************************************/
42 #include <stdlib.h>
43 #include <stdio.h>
44 #include <ctype.h>
45 #include <string.h>
46 #include "platform.h"
48 #define DEVICE_REG32_W(x,y)   *(volatile uint32_t *)(x)=(y)
50 #define MAGIC_ADDR          0x8ffffc
52 #define BOOT_MAGIC_NUMBER   0xBABEFACE
54 /* OSAL functions for Platform Library */
55 uint8_t *Osal_platformMalloc (uint32_t num_bytes, uint32_t alignment)
56 {
57         return malloc(num_bytes);
58 }
60 void Osal_platformFree (uint8_t *dataPtr, uint32_t num_bytes)
61 {
62     /* Free up the memory */
63     if (dataPtr)
64     {
65         free(dataPtr);
66     }
67 }
69 void Osal_platformSpiCsEnter(void)
70 {
71     return;
72 }
74 void Osal_platformSpiCsExit (void)
75 {
76     return;
77 }
79 void
80 write_boot_magic_number
81 (
82     void
83 )
84 {
85     DEVICE_REG32_W(MAGIC_ADDR, BOOT_MAGIC_NUMBER);
86     while(1);
87 }
89 /******************************************************************************
90  * Function:    main
91  ******************************************************************************/
92 void main ()
93 {
94     uint32_t                coreNum;
96     /* Initialize UART */
97     coreNum = platform_get_coreid();
98     if (coreNum != 0)
99     {
100         write_boot_magic_number();
101     }