Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

  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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
 .data
foodata: .word 42
	 .text
footext:
	.global add
add:
	add r0, r1
	add #0, r2
	.global add2
add2:
	add2 #-1, r3
	.global addc
addc:
	addc r4, r5
	.global addn
addn:
	addn r6, r7
	addn #15, r8
	.global addn2
addn2:
	addn2 #-16, r9
	.global sub
sub:
	sub r10, r11
	.global subc
subc:
	subc r12, r13
	.global subn
subn:
	subn r14, r15
	.global cmp
cmp:
	cmp ac, fp
	cmp #1, sp
	.global cmp2
cmp2:
	cmp2 #-15, r0
	.global and
and:
	and r1, r2
	and r3, @r4
	.global andh
andh:
	andh r5, @r6
	.global andb
andb:
	andb r7, @r8
	.global or
or:
	or r9, r10
	or r11, @r12
	.global orh
orh:
	orh r13, @r14
	.global orb
orb:
	orb r15, @ac
	.global eor
eor:
	eor fp, sp
	eor r0, @r1
	.global eorh
eorh:
	eorh r2, @r3
	.global eorb
eorb:
	eorb r4, @r5
	.global bandl
bandl:
	bandl #15, @r6
	.global bandh
nadh:
	bandh #7, @r7
	.global borl
borl:
	borl #3, @r8
	.global borh
borh:
	borh #13, @r9
	.global beorl
beorl:
	beorl #15, @r10
	.global beorh
beorh:
	beorh #1, @r11
	.global btstl
btstl:
	btstl #0, @r12
	.global btsth
btsth:
	btsth #8, @r13
	.global mul
mul:
	mul r14, r15
	.global mulu
mulu:
	mulu ac, fp
	.global muluh
muluh:	
	muluh sp, r0
	.global mulh
mulh:	
	mulh r1, r2
	.global div0s
div0s:
	div0s r3
	.global div0u
div0u:
	div0u r4
	.global div1
div1:
	div1 r5
	.global div2
div2:
	div2 r6
	.global div3
div3:
	div3
	.global div4s
div4s:
	div4s
	.global lsl
lsl:
	lsl r7, r8
	lsl #3, r9
	.global lsl2
lsl2:
	lsl2 #0, r10
	.global lsr
lsr:
	lsr r11, r12
	lsr #15, r13
	.global lsr2
lsr2:
	lsr2 #15, r14
	.global asr
asr:
	asr r15, ac
	asr #6, fp
	.global asr2
asr2:
	asr2 #7, sp
	.global ldi_8
ldi_8:
	ldi:8 #0xff, r2
	.global ld
ld:
	ld @r3, r4
	ld @(R13, r5), r6
	ld @(R14, 0x1fc), r7
	ld @(R15, 0x3c), r8
	ld @r15+, r9
	ld @r15+, ps
	ld @R15+, tbr
	ld @r15+, rp
	ld @R15+, ssp
	.global lduh
lduh:
	lduh @r10, r11
	lduh @(r13, r12), r13
	lduh @(r14, #-256), r15
	.global ldub
ldub:
	ldub @ac, fp
	ldub @(r13, sp), r0
	ldub @(r14, -128), r1
	.global st
st:
	st r2, @r3
	st r4, @(r13, r5)
	st r6, @(r14, -512)
	st r7, @(r15, 0x3c)
	st r8, @ - r15
	st MDH, @-r15
	st PS, @ - r15
	.global lsth
sth:
	sth r9, @r10
	sth r11, @(r13, r12)
	sth r13, @(r14, 128)
	.global stb
stb:
	STB r14, @r15
	stb r0, @(r13, r1)
	STB r2, @(r14, -128)
	.global mov
mov:
	mov r3, r4
	MOV mdl, r5
	mov ps, r6
	mov r7, usp
	mov r8, ps
	.global jmp
jmp:
	jmp @r9
	.global ret
ret:
	ret
	.global bra
bra:
	bra footext
	.global bno
bno:
	bno footext
	.global beq
beq:
	beq footext
	.global bne
bne:
	bne footext
	.global bc
bc:
	bc footext
	.global bnc
bnc:
	bnc footext
	.global bn
bn:
	bn footext
	.global bp
bp:
	bp footext
	.global bv
bv:
	bv footext
	.global bnv
bnv:
	bnv footext
	.global blt
blt:
	blt footext
	.global bge
bge:
	bge footext
	.global ble
ble:
	ble footext
	.global bgt
bgt:
	bgt footext
	.global bls
bls:
	bls footext
	.global bhi
bhi:
	bhi footext
delay_footext:		
	.global jmp_d
jmp_d:
	jmp:d @r11
	nop
	.global ret_d
ret_d:
	ret:d
	nop
	.global bra_d
bra_d:
	bra:D delay_footext
	nop
	.global bno_d
bno_d:
	bno:d delay_footext
	nop
	.global beq_d
beq_d:
	beq:D delay_footext
	nop
	.global bne_d
bne_d:
	bne:d delay_footext
	nop
	.global bc_d
bc_d:
	bc:d delay_footext
	nop
	.global bnc_d
bnc_d:
	bnc:d delay_footext
	nop
	.global bn_d
bn_d:
	bn:d delay_footext
	nop
	.global bp_d
bp_d:
	bp:d delay_footext
	nop
	.global bv_d
bv_d:
	bv:d delay_footext
	nop
	.global bnv_d
bnv_d:
	bnv:d delay_footext
	nop
	.global blt_d
blt_d:
	blt:d delay_footext
	nop
	.global bge_d
bge_d:
	bge:d delay_footext
	nop
	.global ble_d
ble_d:
	ble:d delay_footext
	nop
	.global bgt_d
bgt_d:
	bgt:d delay_footext
	nop
	.global bls_d
bls_d:
	bls:d delay_footext
	nop
	.global bhi_d
bhi_d:
	bhi:d delay_footext
	nop
	.global ldres
ldres:
	ldres @r2+, #8
	.global stres
stres:
	stres #15, @r3+
	.global nop
nop:
	nop
	.global andccr
andccr:
	andccr #255
	.global orccr
orccr:
	orccr #125
	.global stilm
stilm:
	stilm #97
	.global addsp
addsp:
	addsp #-512
	.global extsb
extsb:
	extsb r9
	.global extub
extub:
	extub r10
	.global extsh
extsh:
	extsh r11
	.global extuh
extuh:
	extuh r12
	.global enter
enter:
	enter #1020
	.global leave
leave:
	leave 
	.global xchb
xchb:
	xchb @r14, r15
	.global ldi_32
ldi_32:
	ldi:32 #0x12345678, r0
	.global copop
copop:
	copop #15, #1, cr3, cr4
	copop #15, #4, cr5, cr6
	copop #15, #255, cr7, cr0
	.global copld
copld:
	copld #0, #0, r4, cr0
	.global copst
copst:
	copst #7, #2, cr1, r5
	.global copsv
copsv:
	copsv #8, #3, cr2, r6
	.global ldm0
ldm0:
	ldm0 (r0, r2, r3, r7)
	.global ldm1
ldm1:
	ldm1 (r8, r11, r15)
	.global stm0
stm0:
	stm0 (r2, r3)
	.global stm1
stm1:
	stm1 (r13, r14)
	.global call
call:
	call footext
	call @r10
	.global call_d
call_d:
	call:D footext
	nop
	call:d @r12
	nop
	.global dmov
dmov:
	dmov @0x88, r13
	dmov r13, @0x54
	dmov @0x44, @r13+
	dmov @R13+, @0x2
	dmov @0x2c, @-r15
	dmov @r15+, @38
	.global dmovh
dmovh:
	dmovh @0x88, r13
	dmovh r13, @0x52
	dmovh @0x34, @r13 +
	dmovh @r13+, @0x52
	.global dmovb
dmovb:
	dmovb @0x91, r13
	dmovb r13, @0x53
	dmovb @71, @r13+
	dmovb @r13+, @0x0
	.global ldi_20
ldi_20:
 	ldi:20 #0x000fffff, r1
finish:	
        ldi:32 #0x8000,r0
	mov    r0,ssp
        ldi:32 #1,r0
	int    #10
	.global inte
inte:
	inte
	.global reti
reti:
	reti