aboutsummaryrefslogtreecommitdiff
blob: b8662fe08db021b0e037ab5dd3bf6aa79c22e494 (plain)
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?xml version="1.0"?>
<guide self="archs/alpha/">
<chapter>
<title>Arch Specific Notes -- Alpha</title>
<body>

<p>
The Alpha port uses the <c>alpha</c> keyword. It focuses upon HP (formerly Compaq
(formerly DEC)) hardware. This covers from <c>ev4</c> (known as 21064) through
<c>ev7z</c> (known as 21364a).
</p>

<section>
<title>Alpha Kernel and Userland ABIs</title>
<body>

<p>
All Alpha systems use a pure 64 bit kernel and a pure 64 bit userland.
</p>

<p>
All Alpha systems support both little and big endian <d/> however, Linux only uses
little endian.
</p>

</body>
</section>

<section>
<title>Additional Alpha Keywording Requirements</title>
<body>

<p>
It is generally expected that anyone who does keywording for Alpha should be on
the <c>alpha@</c> alias. However the Alpha team is happy if maintainers keyword
their packages when they have access to Alpha hardware, although the team would
like to know about it.
</p>

</body>
</section>

<section>
<title>Alpha Instruction Set and Performance Notes</title>
<body>

<p>
There are six basic Alpha instructions set standards:
</p>

<ul>
  <li>
    <c>ev4</c> or <c>ev45</c>. The <c>ev4</c> was the first Alpha processor of the Alpha
    family. It featured one integer pipeline and one floating-point pipeline.
    The <c>ev45</c> is a modified <c>ev4</c> with double both Data and Instruction cache
    (D-Cache and I-Cache respectively); it also featured a division optimization.
  </li>
  <li>
    <c>ev5</c> is an evolution of the <c>ev45</c>. The number of pipelines was doubled
    and the floating-point pipelines run in 9 stages rather than in 10. The
    <c>ev5</c> supports 3 cache levels.
  </li>
  <li>
    <c>ev56</c> added the BWX extension to load/store data in 8 or 16 bit quanta.
  </li>
  <li>
    <c>pca56</c> added a new set, MVI (Motion Video Instructions), aimed to
    accelerate video and audio calculations.
  </li>
  <li>
    <c>ev6</c> supports all extensions supported by the <c>pca56</c> and a new set, FIX,
    meant to move data between integer and floating-point registers and for square
    root.
  </li>
  <li>
    <c>ev67</c> is an evolution of the <c>ev6</c>, in addition it supports a new set.
    CIX adds instructions for counting and finding bits.
  </li>
</ul>

<p>
When no <c>-mcpu</c> option is passed to <c>gcc</c> it defaults to the processor on
which the compiler was built.
</p>

<p>
The <c>-mieee</c> flag <b>should</b> always be used unless you have a deep knowledge
of the Alpha architecture, so the comments on
<uri link="::general-concepts/user-environment#Not Filtering Variables"/> are
really important on Alpha.
</p>

</body>
</section>

<section>
<title>Notes on Alpha and PIC</title>
<body>

<p>
General <uri link="::general-concepts/pic/"/> policy also applies to Alpha. In fact,
Alpha systems complain loudly if you try to link PIC and non-PIC code. Usually
this results in errors during the compilation aborting emerge.
</p>

</body>
</section>

<section>
<title>Contacting the Alpha Team</title>
<body>

<p>
The Alpha team can be contacted:
</p>

<ul>
  <li>
    Via Bugzilla bugs assigned to <c>alpha@</c>
  </li>
  <li>
    Via email to the <c>alpha@</c> email alias
  </li>
  <li>
    Via email to the <c>gentoo-alpha</c> mailing list
  </li>
  <li>
    Via the <c>#gentoo-alpha</c> IRC channel on Freenode
  </li>
</ul>

</body>
</section>

<section>
<title>Other Resources</title>
<body>

<ul>
  <li>
    <uri link="http://alpha.gentoo.org/">Gentoo Linux Alpha Development Project</uri>
  </li>
  <li>
    <uri link="http://www.gentoo.org/doc/en/gentoo-alpha-faq.xml">Gentoo/Alpha FAQ</uri>
  </li>
  <li>
    <uri link="http://www.gentoo.org/proj/en/base/alpha/doc/alpha-porting-guide.xml">Alpha Porting Guide</uri>
  </li>
  <li>
    <uri link="http://forums.gentoo.org/viewforum-f-32.html">Gentoo on Alternative Architectures Forum</uri>
  </li>
</ul>

</body>
</section>

</body>
</chapter>
</guide>