xref: /utopia/UTPA2-700.0.x/projects/tools/gr/spi_load.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi #include <fcntl.h>
2*53ee8cc1Swenshuai.xi #include <sys/ioctl.h>
3*53ee8cc1Swenshuai.xi #include <stdio.h>
4*53ee8cc1Swenshuai.xi #include "mdrv_system_io.h"
5*53ee8cc1Swenshuai.xi #include "mdrv_types.h"
6*53ee8cc1Swenshuai.xi #include "mdrv_system_st.h"
7*53ee8cc1Swenshuai.xi 
8*53ee8cc1Swenshuai.xi 
9*53ee8cc1Swenshuai.xi #define SYS_MODULE_KERNAL_NAME   "/dev/system"
10*53ee8cc1Swenshuai.xi #define SYS_PRINT(fmt, args...)  printf("[SYSTEM (user mode)][%05d] " fmt, __LINE__, ## args)
11*53ee8cc1Swenshuai.xi 
12*53ee8cc1Swenshuai.xi static int SYS_fd = 0;
13*53ee8cc1Swenshuai.xi 
14*53ee8cc1Swenshuai.xi 
MAdp_SYS_Init(void)15*53ee8cc1Swenshuai.xi void MAdp_SYS_Init(void)
16*53ee8cc1Swenshuai.xi {
17*53ee8cc1Swenshuai.xi     if (SYS_fd==0)   //First time open
18*53ee8cc1Swenshuai.xi     {
19*53ee8cc1Swenshuai.xi         SYS_fd = open(SYS_MODULE_KERNAL_NAME, O_RDWR);
20*53ee8cc1Swenshuai.xi         SYS_PRINT("open System Kernal finish\n");
21*53ee8cc1Swenshuai.xi     }
22*53ee8cc1Swenshuai.xi     else
23*53ee8cc1Swenshuai.xi     {
24*53ee8cc1Swenshuai.xi         SYS_PRINT("Fail to open System Kernal Module\n");
25*53ee8cc1Swenshuai.xi     }
26*53ee8cc1Swenshuai.xi     //printf("\nStart T8 demo \n");
27*53ee8cc1Swenshuai.xi     //Init Scaler
28*53ee8cc1Swenshuai.xi     //printf("SYS_fd= %d\n",SYS_fd);
29*53ee8cc1Swenshuai.xi     SYS_PRINT("Start to Init System\n");
30*53ee8cc1Swenshuai.xi }
31*53ee8cc1Swenshuai.xi 
MAdp_SPI_Load(U32 start,U32 len,U8 * bin)32*53ee8cc1Swenshuai.xi void MAdp_SPI_Load(U32 start,U32 len,U8 *bin)
33*53ee8cc1Swenshuai.xi {
34*53ee8cc1Swenshuai.xi 	IO_SYS_SPI_t spi;
35*53ee8cc1Swenshuai.xi 	spi.u32Start=start;
36*53ee8cc1Swenshuai.xi 	spi.u32Len=len;
37*53ee8cc1Swenshuai.xi 	spi.u8data=bin;
38*53ee8cc1Swenshuai.xi 
39*53ee8cc1Swenshuai.xi         ioctl(SYS_fd,IOCTL_SYS_SPI_LOAD,&spi);
40*53ee8cc1Swenshuai.xi 
41*53ee8cc1Swenshuai.xi //	printf("\nstart 0x%08x   , size %d bytes \n",spi.u32Start,spi.u32Len);
42*53ee8cc1Swenshuai.xi //	unsigned int i;
43*53ee8cc1Swenshuai.xi //	printf("\nMAdp_SYS_SPI_LOAD\n");
44*53ee8cc1Swenshuai.xi //	for (i=0;i<0x10;i++)	printf("0x%02x ",*(spi.u8data+i));
45*53ee8cc1Swenshuai.xi 
46*53ee8cc1Swenshuai.xi }
47