1b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */ 21da177e4SLinus Torvalds/* 31da177e4SLinus Torvalds initramfs_data includes the compressed binary that is the 41da177e4SLinus Torvalds filesystem used for early user space. 51da177e4SLinus Torvalds Note: Older versions of "as" (prior to binutils 2.11.90.0.23 61da177e4SLinus Torvalds released on 2001-07-14) dit not support .incbin. 71da177e4SLinus Torvalds If you are forced to use older binutils than that then the 81da177e4SLinus Torvalds following trick can be applied to create the resulting binary: 91da177e4SLinus Torvalds 101da177e4SLinus Torvalds 111da177e4SLinus Torvalds ld -m elf_i386 --format binary --oformat elf32-i386 -r \ 121da177e4SLinus Torvalds -T initramfs_data.scr initramfs_data.cpio.gz -o initramfs_data.o 13f49821eeSNicholas Piggin ld -m elf_i386 -r -o built-in.a initramfs_data.o 141da177e4SLinus Torvalds 15ffe8018cSHendrik Brueckner For including the .init.ramfs sections, see include/asm-generic/vmlinux.lds. 161da177e4SLinus Torvalds 171da177e4SLinus Torvalds The above example is for i386 - the parameters vary from architectures. 181da177e4SLinus Torvalds Eventually look up LDFLAGS_BLOB in an older version of the 191da177e4SLinus Torvalds arch/$(ARCH)/Makefile to see the flags used before .incbin was introduced. 201da177e4SLinus Torvalds 211da177e4SLinus Torvalds Using .incbin has the advantage over ld that the correct flags are set 221da177e4SLinus Torvalds in the ELF header, as required by certain architectures. 231da177e4SLinus Torvalds*/ 241da177e4SLinus Torvalds 256ae64e42SHendrik Brueckner.section .init.ramfs,"a" 26ffe8018cSHendrik Brueckner__irf_start: 2765e00e04SMasahiro Yamada.incbin "usr/initramfs_inc_data" 28ffe8018cSHendrik Brueckner__irf_end: 29ffe8018cSHendrik Brueckner.section .init.ramfs.info,"a" 30c4df32c8SMasahiro Yamada.globl __initramfs_size 31c4df32c8SMasahiro Yamada__initramfs_size: 3296f93593SGeert Uytterhoeven#ifdef CONFIG_64BIT 33ffe8018cSHendrik Brueckner .quad __irf_end - __irf_start 3496f93593SGeert Uytterhoeven#else 3596f93593SGeert Uytterhoeven .long __irf_end - __irf_start 36ffe8018cSHendrik Brueckner#endif 37