summaryrefslogtreecommitdiff
path: root/BeagleBoardPkg/Sec/Arm/Macro.inc
blob: cacfef976af4b610e4d5875673371eb10606e7e9 (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
//%HEADER%
  MACRO
  MmioWrite32Macro $Address, $Data
  ldr  r1, = ($Address)               
  ldr  r0, = ($Data)                
  str  r0, [r1] 
  MEND
    
  MACRO
  MmioOr32Macro $Address, $OrData
  ldr  r1, =($Address)              
  ldr  r2, =($OrData)               
  ldr  r0, [r1]                     
  orr  r0, r0, r2                   
  str  r0, [r1]
  MEND

  MACRO
  MmioAnd32Macro $Address, $AndData
  ldr  r1, =($Address)                
  ldr  r2, =($AndData)                
  ldr  r0, [r1]                       
  and  r0, r0, r2                     
  str  r0, [r1]
  MEND

  MACRO
  MmioAndThenOr32Macro $Address, $AndData, $OrData
  ldr  r1, =($Address)                        
  ldr  r0, [r1]                                       
  ldr  r2, =($AndData)                                
  and  r0, r0, r2                                     
  ldr  r2, =($OrData)                                 
  orr  r0, r0, r2                                     
  str  r0, [r1]         
  MEND

  MACRO
  MmioWriteFromReg32Macro $Address, $Reg
  ldr  r1, =($Address)  
  str  $Reg, [r1]       
  MEND

  MACRO
  MmioRead32Macro $Address  
  ldr  r1, =($Address)        
  ldr  r0, [r1]  
  MEND

  MACRO
  MmioReadToReg32Macro $Address, $Reg
  ldr  r1, =($Address)                  
  ldr  $Reg, [r1]       
  MEND

  MACRO
  LoadConstantMacro $Data
  ldr  r0, =($Data)
  MEND

  MACRO
  LoadConstantToRegMacro $Data, $Reg
  ldr  $Reg, =($Data)
  MEND
  
  END