18f75582aSVasily Gorbik // SPDX-License-Identifier: GPL-2.0 28f75582aSVasily Gorbik #include <linux/string.h> 38f75582aSVasily Gorbik #include "compressed/decompressor.h" 48f75582aSVasily Gorbik #include "boot.h" 58f75582aSVasily Gorbik 68f75582aSVasily Gorbik void startup_kernel(void) 78f75582aSVasily Gorbik { 88f75582aSVasily Gorbik void (*startup_continue)(void) = (void *)0x100000; 98f75582aSVasily Gorbik unsigned long uncompressed_size; 108f75582aSVasily Gorbik void *uncompressed_img; 118f75582aSVasily Gorbik 128f75582aSVasily Gorbik if (!IS_ENABLED(CONFIG_KERNEL_UNCOMPRESSED)) { 138f75582aSVasily Gorbik uncompressed_img = decompress_kernel(&uncompressed_size); 148f75582aSVasily Gorbik memmove(startup_continue, uncompressed_img, uncompressed_size); 158f75582aSVasily Gorbik } 168f75582aSVasily Gorbik startup_continue(); 178f75582aSVasily Gorbik } 18