| /* | 
 |  * 1. load vmlinuz | 
 |  * | 
 |  * CONFIG_MEMORY_START  	+-----------------------+ | 
 |  *				|        vmlinuz	| | 
 |  *				+-----------------------+ | 
 |  * 2. decompressed | 
 |  * | 
 |  * CONFIG_MEMORY_START  	+-----------------------+ | 
 |  *				|        vmlinuz	| | 
 |  *				+-----------------------+ | 
 |  *				|			| | 
 |  * BOOT_RELOC_ADDR		+-----------------------+ | 
 |  *				|		 	| | 
 |  * KERNEL_DECOMPRESS_ADDR 	+-----------------------+ | 
 |  *				|  	vmlinux		| | 
 |  *				+-----------------------+ | 
 |  * | 
 |  * 3. relocate copy & jump code | 
 |  * | 
 |  * CONFIG_MEMORY_START  	+-----------------------+ | 
 |  *				|        vmlinuz	| | 
 |  *				+-----------------------+ | 
 |  *				|			| | 
 |  * BOOT_RELOC_ADDR		+-----------------------+ | 
 |  *				|    boot(copy&jump)	| | 
 |  * KERNEL_DECOMPRESS_ADDR 	+-----------------------+ | 
 |  *				|  	vmlinux		| | 
 |  *				+-----------------------+ | 
 |  * | 
 |  * 4. relocate decompressed kernel | 
 |  * | 
 |  * CONFIG_MEMORY_START  	+-----------------------+ | 
 |  *				|        vmlinux	| | 
 |  *				+-----------------------+ | 
 |  *				|			| | 
 |  * BOOT_RELOC_ADDR		+-----------------------+ | 
 |  *				|     boot(copy&jump) 	| | 
 |  * KERNEL_DECOMPRESS_ADDR 	+-----------------------+ | 
 |  *				|  			| | 
 |  *				+-----------------------+ | 
 |  * | 
 |  */ | 
 | #ifdef __ASSEMBLY__ | 
 | #define __val(x)	x | 
 | #else | 
 | #define __val(x)	(x) | 
 | #endif | 
 |  | 
 | #define DECOMPRESS_OFFSET_BASE	__val(0x00900000) | 
 | #define BOOT_RELOC_SIZE		__val(0x00001000) | 
 |  | 
 | #define KERNEL_EXEC_ADDR	__val(CONFIG_MEMORY_START) | 
 | #define KERNEL_DECOMPRESS_ADDR	__val(CONFIG_MEMORY_START + \ | 
 | 				      DECOMPRESS_OFFSET_BASE + BOOT_RELOC_SIZE) | 
 | #define KERNEL_ENTRY		__val(CONFIG_MEMORY_START + 0x1000) | 
 |  | 
 | #define BOOT_EXEC_ADDR		__val(CONFIG_MEMORY_START) | 
 | #define BOOT_RELOC_ADDR		__val(CONFIG_MEMORY_START + DECOMPRESS_OFFSET_BASE) |