HeMPS  8.0
plasma.h
Go to the documentation of this file.
1 
13 #ifndef __PLASMA_H__
14 #define __PLASMA_H__
15 
16 /*********** Hardware addresses ***********/
17 #define UART_WRITE 0x20000000
18 #define UART_READ 0x20000000
19 #define IRQ_MASK 0x20000010
20 #define IRQ_STATUS 0x20000020
21 #define TIME_SLICE 0x20000060
22 #define SYS_CALL 0x20000070
23 #define END_SIM 0x20000080
24 #define CLOCK_HOLD 0x20000090
25 
26 /* Network Interface*/
27 #define NI_STATUS_RECV 0x20000100
28 #define NI_STATUS_SEND 0x20000110
29 #define NI_RECV 0x20000120
30 #define NI_SEND 0x20000130
31 #define NI_CONFIG 0x20000140
32 #define NI_ACK 0x20000150
33 #define NI_NACK 0x20000160
34 #define NI_END 0x20000170
35 #define CURRENT_PAGE 0x20000180
36 #define NEXT_PAGE 0x20000190
37 
38 /* DMNI*/
39 #define DMNI_SIZE_2 0x20000205
40 #define DMNI_ADDRESS_2 0x20000215
41 #define DMNI_SIZE 0x20000200
42 #define DMNI_ADDRESS 0x20000210
43 #define DMNI_OP 0x20000220
44 #define DMNI_START 0x20000230
45 #define DMNI_ACK 0x20000240
46 #define DMNI_SEND_ACTIVE 0x20000250
47 #define DMNI_RECEIVE_ACTIVE 0x20000260
48 
49 //Scheduling report
50 #define SCHEDULING_REPORT 0x20000270
51 #define INTERRUPTION 0x10000
52 //#define SYSCALL 0x20000
53 #define SCHEDULER 0x40000
54 #define IDLE 0x80000
55 
56 //Communication graphical debbug
57 #define ADD_PIPE_DEBUG 0x20000280
58 #define REM_PIPE_DEBUG 0x20000285
59 #define ADD_REQUEST_DEBUG 0x20000290
60 #define REM_REQUEST_DEBUG 0x20000295
61 
62 /* DMNI operations */
63 #define READ 0
64 #define WRITE 1
65 
66 #define TICK_COUNTER 0x20000300
67 #define CURRENT_TASK 0x20000400
68 
69 #define REQ_APP 0x20000350
70 #define ACK_APP 0x20000360
71 
72 #define SLACK_TIME_MONITOR 0x20000370
73 
74 //Kernel pending service FIFO
75 #define PENDING_SERVICE_INTR 0x20000400
76 
77 #define SLACK_TIME_WINDOW 50000 // half milisecond
78 
79 /*********** Interrupt bits **************/
80 #define IRQ_PENDING_SERVICE 0x01 //bit 0
81 #define IRQ_SLACK_TIME 0x02 //bit 1
82 #define IRQ_SCHEDULER 0x08 //bit 3
83 #define IRQ_NOC 0x20 //bit 5
84 
85 /*Memory Access*/
86 #define MemoryRead(A) (*(volatile unsigned int*)(A))
87 #define MemoryWrite(A,V) *(volatile unsigned int*)(A)=(V)
88 
89 #endif /*__PLASMA_H__*/
90