-
Notifications
You must be signed in to change notification settings - Fork 0
/
AM335x_PRU_ICSS.gel
78 lines (62 loc) · 2.45 KB
/
AM335x_PRU_ICSS.gel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
//----------------------
// GEL file for AM335x EVM -- PRU-ICSS
// rev 1.1
//
//********************************************************************
// The hardware modules and descriptions referred to in this document
// are *NOT SUPPORTED* by Texas Instruments (www.ti.com / e2e.ti.com).
//
// These materials are intended for do-it-yourself (DIY) users who want
// to use the PRU at their own risk without TI support. "Community"
// support is offered at BeagleBoard.org/discuss.
//********************************************************************
menuitem "PRU_ICSS"
hotmenu PRU_ICSS_Init()
{
PRU_ICSS_PRCM_Enable_Step1();
PRU_ICSS_PRCM_Reset();
GEL_MemoryFill(0x4a300000, 0, 16*1024, 0x0, 0xC);
GEL_MemoryFill(0x4a310000, 0, 12*1024, 0x0, 0xC);
}
hotmenu PRU_ICSS_PRCM_Enable_Step1()
{
GEL_TextOut("\t**** PRU-ICSS PRCM Enable Step 1 is in progress **** \n","Output",1,1,1);
*((unsigned int*) 0x44E00C00) |= 0x2;
*((unsigned int*) 0x44E00C00) &= 0xFFFFFFFD;
GEL_TextOut("\t**** PRU-ICSS PRCM Enable Step 1 is Done **** \n","Output",1,1,1);
GEL_TextOut("\t**** PRU-ICSS PRCM Enable Step 2 is in progress **** \n","Output",1,1,1);
*((unsigned int*) 0x44E000E8) |= 0x2;
GEL_TextOut("\t**** PRU-ICSS PRCM Enable Step 2 is Done **** \n","Output",1,1,1);
}
hotmenu PRU_ICSS_PRCM_Reset()
{
/*Incase Memory Map was not defined*/
GEL_TextOut("\t**** PRU-ICSS PRCM Reset is in progress **** \n","Output",1,1,1);
*((unsigned int*) 0x44E00C00) |= 0x2;
*((unsigned int*) 0x44E00C00) &= 0xFFFFFFFD;
GEL_TextOut("\t**** PRU-ICSS PRCM Reset is Done **** \n","Output",1,1,1);
}
hotmenu PRU_ICSS_PRUcore0_SoftReset()
{
GEL_TextOut("\t**** PRU-ICSS PRU0 Reset is in progress **** \n","Output",1,1,1);
*((unsigned int*) 0x4A322000) &= 0xFFFFFFFE;
GEL_TextOut("\t**** PRU-ICSS PRU0 Reset is Done **** \n","Output",1,1,1);
}
hotmenu PRU_ICSS_PRUcore1_SoftReset()
{
GEL_TextOut("\t**** PRU-ICSS PRU1 Soft Reset is in progress **** \n","Output",1,1,1);
*((unsigned int*) 0x4A324000) &= 0xFFFFFFFE;
GEL_TextOut("\t**** PRU-ICSS PRU1 Soft Reset is Done **** \n","Output",1,1,1);
}
hotmenu PRU_ICSS_PRUcore0_and_1_Start()
{
GEL_TextOut("\t**** PRU-ICSS PRU0&1 is being started **** \n","Output",1,1,1);
*((unsigned int*) 0x4A324000) = 0xB;
*((unsigned int*) 0x4A322000) = 0xB;
}
hotmenu PRU_ICSS_PRUcore0_and_1_Halt()
{
GEL_TextOut("\t**** PRU-ICSS PRU0&1 is being Halted **** \n","Output",1,1,1);
*((unsigned int*) 0x4A324000) = 0;
*((unsigned int*) 0x4A322000) = 0;
}