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

TOMOYO Linux Cross Reference
Linux/arch/mips/boot/compressed/decompress.c

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ 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.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/mips/boot/compressed/decompress.c (Architecture alpha) and /arch/i386/boot/compressed/decompress.c (Architecture i386)


  1 // SPDX-License-Identifier: GPL-2.0-or-later        1 
  2 /*                                                
  3  * Copyright 2001 MontaVista Software Inc.        
  4  * Author: Matt Porter <mporter@mvista.com>       
  5  *                                                
  6  * Copyright (C) 2009 Lemote, Inc.                
  7  * Author: Wu Zhangjin <wuzhangjin@gmail.com>     
  8  */                                               
  9                                                   
 10 #define DISABLE_BRANCH_PROFILING                  
 11                                                   
 12 #define __NO_FORTIFY                              
 13 #include <linux/types.h>                          
 14 #include <linux/kernel.h>                         
 15 #include <linux/string.h>                         
 16 #include <linux/libfdt.h>                         
 17                                                   
 18 #include <asm/addrspace.h>                        
 19 #include <asm/unaligned.h>                        
 20 #include <asm-generic/vmlinux.lds.h>              
 21                                                   
 22 #include "decompress.h"                           
 23                                                   
 24 /*                                                
 25  * These two variables specify the free mem re    
 26  * that can be used for temporary malloc area     
 27  */                                               
 28 unsigned long free_mem_ptr;                       
 29 unsigned long free_mem_end_ptr;                   
 30                                                   
 31 void error(char *x)                               
 32 {                                                 
 33         puts("\n\n");                             
 34         puts(x);                                  
 35         puts("\n\n -- System halted");            
 36                                                   
 37         while (1)                                 
 38                 ;       /* Halt */                
 39 }                                                 
 40                                                   
 41 /* activate the code for pre-boot environment     
 42 #define STATIC static                             
 43                                                   
 44 #ifdef CONFIG_KERNEL_GZIP                         
 45 #include "../../../../lib/decompress_inflate.c    
 46 #endif                                            
 47                                                   
 48 #ifdef CONFIG_KERNEL_BZIP2                        
 49 #include "../../../../lib/decompress_bunzip2.c    
 50 #endif                                            
 51                                                   
 52 #ifdef CONFIG_KERNEL_LZ4                          
 53 #include "../../../../lib/decompress_unlz4.c"     
 54 #endif                                            
 55                                                   
 56 #ifdef CONFIG_KERNEL_LZMA                         
 57 #include "../../../../lib/decompress_unlzma.c"    
 58 #endif                                            
 59                                                   
 60 #ifdef CONFIG_KERNEL_LZO                          
 61 #include "../../../../lib/decompress_unlzo.c"     
 62 #endif                                            
 63                                                   
 64 #ifdef CONFIG_KERNEL_XZ                           
 65 #include "../../../../lib/decompress_unxz.c"      
 66 #endif                                            
 67                                                   
 68 #ifdef CONFIG_KERNEL_ZSTD                         
 69 #include "../../../../lib/decompress_unzstd.c"    
 70 #endif                                            
 71                                                   
 72 const unsigned long __stack_chk_guard = 0x000a    
 73                                                   
 74 void __stack_chk_fail(void)                       
 75 {                                                 
 76         error("stack-protector: Kernel stack i    
 77 }                                                 
 78                                                   
 79 void decompress_kernel(unsigned long boot_heap    
 80 {                                                 
 81         unsigned long zimage_start, zimage_siz    
 82                                                   
 83         zimage_start = (unsigned long)(__image    
 84         zimage_size = (unsigned long)(__image_    
 85             (unsigned long)(__image_begin);       
 86                                                   
 87         puts("zimage at:     ");                  
 88         puthex(zimage_start);                     
 89         puts(" ");                                
 90         puthex(zimage_size + zimage_start);       
 91         puts("\n");                               
 92                                                   
 93         /* This area are prepared for mallocin    
 94         free_mem_ptr = boot_heap_start;           
 95         free_mem_end_ptr = boot_heap_start + B    
 96                                                   
 97         /* Display standard Linux/MIPS boot pr    
 98         puts("Uncompressing Linux at load addr    
 99         puthex(VMLINUX_LOAD_ADDRESS_ULL);         
100         puts("\n");                               
101                                                   
102         /* Decompress the kernel with accordin    
103         __decompress((char *)zimage_start, zim    
104                    (void *)VMLINUX_LOAD_ADDRES    
105                                                   
106         if (IS_ENABLED(CONFIG_MIPS_RAW_APPENDE    
107             fdt_magic((void *)&__appended_dtb)    
108                 unsigned int image_size, dtb_s    
109                                                   
110                 dtb_size = fdt_totalsize((void    
111                                                   
112                 /* last four bytes is always i    
113                 image_size = get_unaligned_le3    
114                                                   
115                 /* The device tree's address m    
116                 image_size = ALIGN(image_size,    
117                                                   
118                 puts("Copy device tree to addr    
119                 puthex(VMLINUX_LOAD_ADDRESS_UL    
120                 puts("\n");                       
121                                                   
122                 /* copy dtb to where the boote    
123                 memcpy((void *)VMLINUX_LOAD_AD    
124                        __appended_dtb, dtb_siz    
125         }                                         
126                                                   
127         /* FIXME: should we flush cache here?     
128         puts("Now, booting the kernel...\n");     
129 }                                                 
130                                                   

~ [ 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