config BR2_TARGET_ROOTFS_CPIO
	bool "cpio the root filesystem (for use as an initial RAM filesystem)"
	help
	  Build a cpio archive of the root filesystem. This is typically
	  used for an initial RAM filesystem that is passed to the
	  kernel by the bootloader.

if BR2_TARGET_ROOTFS_CPIO

choice
	prompt "cpio type"
	default BR2_TARGET_ROOTFS_CPIO_FULL

config BR2_TARGET_ROOTFS_CPIO_FULL
	bool "cpio the whole root filesystem"
	help
	  Build a cpio archive containing the whole root filesystem.

config BR2_TARGET_ROOTFS_CPIO_DRACUT
	bool "Invoke dracut to make a partial initramfs"
	select BR2_PACKAGE_HOST_DRACUT
	help
	  Build an additional initramfs using dracut. This only contains
	  a subset of the rootfs, as determined by the configuration
	  file.
	  This can be useful to create a recovery system, for instance.

endchoice

if BR2_TARGET_ROOTFS_CPIO_DRACUT

config BR2_TARGET_ROOTFS_CPIO_DRACUT_MODULES
	string "extra dracut modules"
	help
	  Space-separated list of directories containing dracut modules.

config BR2_TARGET_ROOTFS_CPIO_DRACUT_CONF_FILES
	string "dracut configuration files"
	default "fs/cpio/dracut.conf"
	help
	  Space-separated list of Dracut configuration files. They
	  determine which parts of the rootfs get included in the
	  cpio image. See:
	    dracut.conf(5)
	    https://github.com/dracutdevs/dracut/blob/master/man/dracut.conf.5.asc

	  The default configuration file is suitable for busybox init.
	  It doesn't, however, pivot_root into a full rootfs.

endif

choice
	prompt "Compression method"
	default BR2_TARGET_ROOTFS_CPIO_NONE
	help
	  Select compressor for cpio filesystem of the root filesystem.
	  If you use the cpio archive as an initial RAM filesystem, make
	  sure the kernel contains the decompression algorithm selected
	  here.

config BR2_TARGET_ROOTFS_CPIO_NONE
	bool "no compression"
	help
	  Do not compress the cpio filesystem.

config BR2_TARGET_ROOTFS_CPIO_GZIP
	bool "gzip"
	help
	  Do compress the cpio filesystem with gzip.

config BR2_TARGET_ROOTFS_CPIO_BZIP2
	bool "bzip2"
	help
	  Do compress the cpio filesystem with bzip2.

config BR2_TARGET_ROOTFS_CPIO_LZ4
	bool "lz4"
	help
	  Do compress the cpio filesystem with lz4.

config BR2_TARGET_ROOTFS_CPIO_LZMA
	bool "lzma"
	help
	  Do compress the cpio filesystem with lzma.

config BR2_TARGET_ROOTFS_CPIO_LZO
	bool "lzo"
	help
	  Do compress the cpio filesystem with lzop.

config BR2_TARGET_ROOTFS_CPIO_XZ
	bool "xz"
	help
	  Do compress the cpio filesystem with xz.

config BR2_TARGET_ROOTFS_CPIO_ZSTD
	bool "zstd"
	help
	  Do compress the cpio filesystem with zstd.

endchoice

config BR2_TARGET_ROOTFS_CPIO_UIMAGE
	bool "Create U-Boot image of the root filesystem"
	select BR2_PACKAGE_HOST_UBOOT_TOOLS
	help
	  Add a U-Boot header to the cpio root filesystem. This allows
	  the initramfs to be loaded with the bootm command in U-Boot.

	  The U-Boot image will be called rootfs.cpio.uboot

endif # BR2_TARGET_ROOTFS_CPIO
