| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2008-08-05 16:14:15 +01:00
										 |  |  |  * arch/arm/mach-sa1100/include/mach/uncompress.h | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2009-09-14 03:25:28 -04:00
										 |  |  |  * (C) 1999 Nicolas Pitre <nico@fluxnic.net> | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Reorganised to be machine independent. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "hardware.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-06 11:42:36 +01:00
										 |  |  | #define IOMEM(x)	(x)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * The following code assumes the serial port has already been | 
					
						
							|  |  |  |  * initialized by the bootloader.  We search for the first enabled | 
					
						
							|  |  |  |  * port in the most probable order.  If you didn't setup a port in | 
					
						
							|  |  |  |  * your bootloader then nothing will appear (which might be desired). | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define UART(x)		(*(volatile unsigned long *)(serial_port + (x)))
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-03-28 10:24:33 +01:00
										 |  |  | static void putc(int c) | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | { | 
					
						
							|  |  |  | 	unsigned long serial_port; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	do { | 
					
						
							|  |  |  | 		serial_port = _Ser3UTCR0; | 
					
						
							|  |  |  | 		if (UART(UTCR3) & UTCR3_TXE) break; | 
					
						
							|  |  |  | 		serial_port = _Ser1UTCR0; | 
					
						
							|  |  |  | 		if (UART(UTCR3) & UTCR3_TXE) break; | 
					
						
							|  |  |  | 		serial_port = _Ser2UTCR0; | 
					
						
							|  |  |  | 		if (UART(UTCR3) & UTCR3_TXE) break; | 
					
						
							|  |  |  | 		return; | 
					
						
							|  |  |  | 	} while (0); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-03-28 10:24:33 +01:00
										 |  |  | 	/* wait for space in the UART's transmitter */ | 
					
						
							|  |  |  | 	while (!(UART(UTSR1) & UTSR1_TNF)) | 
					
						
							|  |  |  | 		barrier(); | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-03-28 10:24:33 +01:00
										 |  |  | 	/* send the character out. */ | 
					
						
							|  |  |  | 	UART(UTDR) = c; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-03-28 10:24:33 +01:00
										 |  |  | static inline void flush(void) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * Nothing to do for these | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define arch_decomp_setup()
 |