OpenCores
URL https://opencores.org/ocsvn/funbase_ip_library/funbase_ip_library/trunk

Subversion Repositories funbase_ip_library

[/] [funbase_ip_library/] [trunk/] [TUT/] [ip.hwp.communication/] [hibi_pe_dma/] [1.0/] [tb/] [system/] [src_cpu2/] [hpd_macros.h] - Blame information for rev 145

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 145 lanttu
/*
2
 * File:   hpd_macros.h
3
 * Author: Lasse Lehtonen
4
 * Date:   2012-01-13
5
 * Brief:  Macros to help using HIBI PE DMA component
6
 *
7
 *
8
 *
9
 */
10
 
11
 
12
 
13
 
14
#ifndef HPD_MACROS_H
15
#define HPD_MACROS_H
16
 
17
 
18
#define HPD_CHAN_HIBI_ADDR(chan, hibi_addr, base)       \
19
  {                                             \
20
    volatile int * apu = (int*)base;            \
21
    apu = apu + ((chan) << 4) + 1;              \
22
    *apu = hibi_addr;                           \
23
  }
24
 
25
#define HPD_CHAN_MEM_ADDR(chan, addr, base)     \
26
  {                                             \
27
    volatile int * apu = (int*)base;            \
28
    apu = apu + ((chan) << 4);                  \
29
    *apu = addr;                                        \
30
  }
31
 
32
#define HPD_CHAN_WORDS(chan, words, base)       \
33
  {                                             \
34
    volatile int * apu = (int*)base;            \
35
    apu = apu + ((chan) << 4) + 2;              \
36
    *apu = words;                               \
37
  }
38
 
39
#define HPD_CHAN_INIT(chan, base)               \
40
  {                                             \
41
    volatile int * apu = (int*)base + 5;        \
42
    *apu = 1 << (chan);                         \
43
  }
44
 
45
#define HPD_RX_IRQ_ENA(base)                    \
46
  {                                             \
47
    volatile int * apu = (int*)base + 4;        \
48
    *apu = *apu | 0x2;                          \
49
  }
50
 
51
#define HPD_RX_IRQ_DIS(base)                    \
52
  {                                             \
53
    volatile int * apu = (int*)base + 4;        \
54
    *apu = *apu & 0xfffffffd;                   \
55
  }
56
 
57
#define HPD_GET_STAT_REG(var, base)             \
58
  {                                             \
59
    volatile int * apu = (int*)base + 4;        \
60
    var = *apu >> 16;                           \
61
  }
62
 
63
#define HPD_GET_CONF_REG(var, base)             \
64
  {                                             \
65
    volatile int * apu = (int*)base + 4;        \
66
    var = *apu & 0x0000ffff;                    \
67
  }
68
 
69
#define HPD_GET_INIT_REG(var, base)             \
70
  {                                             \
71
    volatile int * apu = (int*)base + 5;        \
72
    var = *apu;                                 \
73
  }
74
 
75
#define HPD_GET_IRQ_REG(var, base)              \
76
  {                                             \
77
    volatile int * apu = (int*)base + 7;        \
78
    var = *apu;                                 \
79
  }
80
 
81
#define HPD_RX_CLEAR_IRQ(chan, base)            \
82
  {                                             \
83
    volatile int * apu = (int*)base + 7;        \
84
    *apu = 1 << (chan);                         \
85
  }
86
 
87
#define HPD_GET_CURR_PTR(var, chan, base)       \
88
  {                                             \
89
    volatile int * apu = (int*)base + 3;        \
90
    apu = apu + ((chan) << 4);                  \
91
    var = *apu;                                 \
92
  }
93
 
94
#define HPD_TX_MEM_ADDR(addr, base)             \
95
  {                                             \
96
    volatile int * apu = (int*)base + 8;        \
97
    *apu = addr;                                \
98
  }
99
 
100
#define HPD_TX_WORDS(words, base)               \
101
  {                                             \
102
    volatile int * apu = (int*)base + 9;        \
103
    *apu = words;                               \
104
  }
105
 
106
#define HPD_TX_HIBI_ADDR(haddr, base)           \
107
  {                                             \
108
    volatile int * apu = (int*)base + 11;       \
109
    *apu = haddr;                               \
110
  }
111
 
112
#define HPD_TX_CMD(comm, base)                  \
113
  {                                             \
114
    volatile int * apu = (int*)base +10;        \
115
    *apu = comm;                                \
116
  }
117
 
118
#define HPD_TX_CMD_WRITE(base)                  \
119
  {                                             \
120
    volatile int * apu = (int*)base + 10;       \
121
    *apu = 2;                                   \
122
  }
123
 
124
#define HPD_TX_CMD_READ(base)                   \
125
  {                                             \
126
    volatile int * apu = (int*)base + 10;       \
127
    *apu = 4;                                   \
128
  }
129
 
130
#define HPD_TX_COMM_WRITE_MSG(base)             \
131
  {                                             \
132
    volatile int * apu = (int*)base + 10;       \
133
    *apu = 3;                                   \
134
  }
135
 
136
#define HPD_TX_START(base)                      \
137
  {                                             \
138
    volatile int * apu = (int*)base + 4;        \
139
    *apu = *apu | 0x1;                          \
140
    *apu = *apu & 0xfffffffe;                   \
141
  }
142
#define HPD_GET_TX_DONE(y, base)                \
143
  {                                             \
144
    volatile int * apu = (int*)base + 4;        \
145
    y = *apu >> 16;                             \
146
    y = y & 0x1;                                \
147
  }
148
 
149
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.