~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm/kernel/debug.S

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/arm/kernel/debug.S (Version linux-6.12-rc7) and /arch/i386/kernel/debug.S (Version linux-4.18.20)


  1 /* SPDX-License-Identifier: GPL-2.0-only */       
  2 /*                                                
  3  *  linux/arch/arm/kernel/debug.S                 
  4  *                                                
  5  *  Copyright (C) 1994-1999 Russell King          
  6  *                                                
  7  *  32-bit debugging code                         
  8  */                                               
  9 #include <linux/linkage.h>                        
 10 #include <asm/assembler.h>                        
 11                                                   
 12                 .text                             
 13                                                   
 14 /*                                                
 15  * Some debugging routines (useful if you've g    
 16  * printk isn't working).  For DEBUGGING ONLY!    
 17  * references to these in a production kernel!    
 18  */                                               
 19                                                   
 20 #if !defined(CONFIG_DEBUG_SEMIHOSTING)            
 21 #include CONFIG_DEBUG_LL_INCLUDE                  
 22 #endif                                            
 23                                                   
 24 #ifdef CONFIG_MMU                                 
 25                 .macro  addruart_current, rx,     
 26                 addruart        \tmp1, \tmp2,     
 27                 mrc             p15, 0, \rx, c    
 28                 tst             \rx, #1           
 29                 moveq           \rx, \tmp1        
 30                 movne           \rx, \tmp2        
 31                 .endm                             
 32                                                   
 33 #else /* !CONFIG_MMU */                           
 34                 .macro  addruart_current, rx,     
 35                 addruart        \rx, \tmp1, \t    
 36                 .endm                             
 37                                                   
 38 #endif /* CONFIG_MMU */                           
 39                                                   
 40 /*                                                
 41  * Useful debugging routines                      
 42  */                                               
 43 ENTRY(printhex8)                                  
 44                 mov     r1, #8                    
 45                 b       printhex                  
 46 ENDPROC(printhex8)                                
 47                                                   
 48 ENTRY(printhex4)                                  
 49                 mov     r1, #4                    
 50                 b       printhex                  
 51 ENDPROC(printhex4)                                
 52                                                   
 53 ENTRY(printhex2)                                  
 54                 mov     r1, #2                    
 55 printhex:       adr     r2, hexbuf_rel            
 56                 ldr     r3, [r2]                  
 57                 add     r2, r2, r3                
 58                 add     r3, r2, r1                
 59                 mov     r1, #0                    
 60                 strb    r1, [r3]                  
 61 1:              and     r1, r0, #15               
 62                 mov     r0, r0, lsr #4            
 63                 cmp     r1, #10                   
 64                 addlt   r1, r1, #'0'              
 65                 addge   r1, r1, #'a' - 10         
 66                 strb    r1, [r3, #-1]!            
 67                 teq     r3, r2                    
 68                 bne     1b                        
 69                 mov     r0, r2                    
 70                 b       printascii                
 71 ENDPROC(printhex2)                                
 72                                                   
 73                 .pushsection .bss                 
 74 hexbuf_addr:    .space 16                         
 75                 .popsection                       
 76                 .align                            
 77 hexbuf_rel:     .long   hexbuf_addr - .           
 78                                                   
 79                 .ltorg                            
 80                                                   
 81 #ifndef CONFIG_DEBUG_SEMIHOSTING                  
 82                                                   
 83 ENTRY(printascii)                                 
 84                 addruart_current r3, r1, r2       
 85 1:              teq     r0, #0                    
 86                 ldrbne  r1, [r0], #1              
 87                 teqne   r1, #0                    
 88                 reteq   lr                        
 89 2:              teq     r1, #'\n'                 
 90                 bne     3f                        
 91                 mov     r1, #'\r'                 
 92 #ifdef CONFIG_DEBUG_UART_FLOW_CONTROL             
 93                 waituartcts r2, r3                
 94 #endif                                            
 95                 waituarttxrdy r2, r3              
 96                 senduart r1, r3                   
 97                 busyuart r2, r3                   
 98                 mov     r1, #'\n'                 
 99 3:                                                
100 #ifdef CONFIG_DEBUG_UART_FLOW_CONTROL             
101                 waituartcts r2, r3                
102 #endif                                            
103                 waituarttxrdy r2, r3              
104                 senduart r1, r3                   
105                 busyuart r2, r3                   
106                 b       1b                        
107 ENDPROC(printascii)                               
108                                                   
109 ENTRY(printch)                                    
110                 addruart_current r3, r1, r2       
111                 mov     r1, r0                    
112                 mov     r0, #0                    
113                 b       2b                        
114 ENDPROC(printch)                                  
115                                                   
116 #ifdef CONFIG_MMU                                 
117 ENTRY(debug_ll_addr)                              
118                 addruart r2, r3, ip               
119                 str     r2, [r0]                  
120                 str     r3, [r1]                  
121                 ret     lr                        
122 ENDPROC(debug_ll_addr)                            
123 #endif                                            
124                                                   
125 #else                                             
126                                                   
127 ENTRY(printascii)                                 
128                 mov     r1, r0                    
129                 mov     r0, #0x04                 
130         ARM(    svc     #0x123456       )         
131 #ifdef CONFIG_CPU_V7M                             
132         THUMB(  bkpt    #0xab           )         
133 #else                                             
134         THUMB(  svc     #0xab           )         
135 #endif                                            
136                 ret     lr                        
137 ENDPROC(printascii)                               
138                                                   
139 ENTRY(printch)                                    
140                 adr     r1, hexbuf_rel            
141                 ldr     r2, [r1]                  
142                 add     r1, r1, r2                
143                 strb    r0, [r1]                  
144                 mov     r0, #0x03                 
145         ARM(    svc     #0x123456       )         
146 #ifdef CONFIG_CPU_V7M                             
147         THUMB(  bkpt    #0xab           )         
148 #else                                             
149         THUMB(  svc     #0xab           )         
150 #endif                                            
151                 ret     lr                        
152 ENDPROC(printch)                                  
153                                                   
154 ENTRY(debug_ll_addr)                              
155                 mov     r2, #0                    
156                 str     r2, [r0]                  
157                 str     r2, [r1]                  
158                 ret     lr                        
159 ENDPROC(debug_ll_addr)                            
160                                                   
161 #endif                                            
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php