Add support for the tracing infastructure in coreboot.
The compiler is forced to emmit special functions on every entry/exit of the function. Add a compile time option to support it. Function entries will be printed in the console. The CONFIG_TRACE has more documentation. Patch for userspace tools will follow. Change-Id: I2cbeb3f104892b034c8756f86ed05bf71187c3f3 Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Reviewed-on: http://review.coreboot.org/178 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
		
				
					committed by
					
						 Stefan Reinauer
						Stefan Reinauer
					
				
			
			
				
	
			
			
			
						parent
						
							f73535c089
						
					
				
				
					commit
					7f0e93060e
				
			
							
								
								
									
										39
									
								
								src/lib/trace.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								src/lib/trace.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| /* | ||||
|  * This file is part of the coreboot project. | ||||
|  * | ||||
|  * Copyright (C) 2011 Rudolf Marek <r.marek@assembler.cz> | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation; version 2 of the License. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA | ||||
|  */ | ||||
|  | ||||
| #include <types.h> | ||||
| #include <console/console.h> | ||||
| #include <trace.h> | ||||
|  | ||||
| int volatile trace_dis = 0; | ||||
|  | ||||
| void __cyg_profile_func_enter( void *func, void *callsite) | ||||
| { | ||||
|  | ||||
| 	if (trace_dis) | ||||
| 		return; | ||||
|  | ||||
| 	DISABLE_TRACE | ||||
| 	printk(BIOS_INFO, "~0x%08x(0x%08x)\n", (uint32_t) func, (uint32_t) callsite); | ||||
| 	ENABLE_TRACE | ||||
| } | ||||
|  | ||||
| void __cyg_profile_func_exit( void *func, void *callsite ) | ||||
| { | ||||
| } | ||||
		Reference in New Issue
	
	Block a user