# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.

config ADK_TARGET_CMDLINE
	string
	default "fbcon=rotate:1" if ADK_TARGET_SYSTEM_SHARP_ZAURUS
	default "geodewdt.nowayout=1" if ADK_TARGET_MODEL_PCENGINES_ALIX1C
	default "kinetis_platform=k70-som" if ADK_TARGET_SYSTEM_KINETIS_K70
	default ""

choice
prompt "Firmware type"
depends on !ADK_TARGET_TOOLCHAIN
default ADK_TARGET_ROOTFS_ARCHIVE

config ADK_TARGET_ROOTFS_INITRAMFS
	bool "initramfs filesystem"
	depends on \
		ADK_TARGET_QEMU || \
		ADK_TARGET_ARCH_M68K || \
		ADK_TARGET_ARCH_ARM || \
		ADK_TARGET_ARCH_MICROBLAZE || \
		ADK_TARGET_ARCH_MIPS || \
		ADK_TARGET_ARCH_PPC || \
		ADK_TARGET_ARCH_SPARC || \
		ADK_TARGET_ARCH_X86 || \
		ADK_TARGET_ARCH_X86_64
	depends on !ADK_TARGET_VBOX
	depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB532
	select ADK_KERNEL_BLK_DEV_INITRD
	help
	  create an read-only initramfs system.

config ADK_TARGET_ROOTFS_INITRAMFSPIGGYBACK
	bool "initramfs filesystem included into kernel image"
	select ADK_TARGET_ARCH_INITRAMFS_BUILTIN
	depends on \
		ADK_TARGET_QEMU || \
		ADK_TARGET_SIM || \
		ADK_TARGET_SYSTEM_OR1K_SIM || \
		ADK_TARGET_ARCH_AARCH64 || \
		ADK_TARGET_ARCH_ARC || \
		ADK_TARGET_ARCH_ARM || \
		ADK_TARGET_ARCH_M68K || \
		ADK_TARGET_ARCH_MICROBLAZE || \
		ADK_TARGET_ARCH_MIPS || \
		ADK_TARGET_ARCH_PPC || \
		ADK_TARGET_ARCH_SPARC || \
		ADK_TARGET_ARCH_X86 || \
		ADK_TARGET_ARCH_X86_64
	depends on !ADK_TARGET_VBOX
	depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB532
	help
	  create an read-only initramfs system.

config ADK_TARGET_ROOTFS_SQUASHFS
	bool "Compressed read-only root filesystem (squashfs)"
	select ADK_KERNEL_SQUASHFS
	select ADK_HOST_NEED_SQUASHFS
	select ADK_HOST_NEED_QEMU if ADK_TARGET_QEMU
	select ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_QEMU
	depends on ADK_TARGET_WITH_MTD \
		|| ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800 \
		|| ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605
	help
	  highly compressed read-only filesystem for MTD flash systems.

config ADK_TARGET_ROOTFS_JFFS2
	bool "Compressed read-write root filesystem (jffs2)"
	select ADK_KERNEL_JFFS2_FS
	select ADK_HOST_NEED_MTD_UTILS
	select ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_QEMU
	depends on ADK_TARGET_WITH_MTD \
		|| ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800 \
		|| ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605
	help
	  compressed read-write filesystem for MTD flash systems.

config ADK_TARGET_ROOTFS_YAFFS
	bool "YAFFS2 root filesystem (NAND)"
	select ADK_KERNEL_MISC_FILESYSTEMS
	select ADK_KERNEL_YAFFS_FS
	select ADK_KERNEL_YAFFS_YAFFS2
	select ADK_KERNEL_YAFFS_AUTO_YAFFS2
	depends on ADK_TARGET_WITH_NAND
	help
	  Root filesystem on NAND flash with YAFFS2.

config ADK_TARGET_ROOTFS_NFSROOT
	bool "NFS root"
	select ADK_KERNEL_NETWORK_FILESYSTEMS
	select ADK_KERNEL_SUNRPC
	select ADK_KERNEL_NFS_FS
	select ADK_KERNEL_NFS_V3
	select ADK_KERNEL_ROOT_NFS
	select ADK_KERNEL_NFS_COMMON
	select ADK_KERNEL_IP_PNP
	select ADK_KERNEL_IP_PNP_DHCP
	depends on !ADK_TARGET_QEMU && \
		   !ADK_TARGET_SIM && \
	           !ADK_TARGET_VBOX && \
		   !ADK_TARGET_SYSTEM_ARANYM_M68K && \
		   !ADK_TARGET_SYSTEM_ARM_FM
	help
	  Root filesystem mounted via NFS. (DHCP)

config ADK_TARGET_ROOTFS_USB
	bool "Boot from USB stick"
	select ADK_KERNEL_NLS
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_BLK_DEV_SD
	select ADK_KERNEL_USB
	select ADK_KERNEL_USB_EHCI_HCD
	select ADK_KERNEL_USB_OHCI_HCD
	select ADK_KERNEL_USB_UHCI_HCD
	select ADK_KERNEL_USB_STORAGE
	select ADK_PACKAGE_ADKINSTALL
	depends on ADK_TARGET_WITH_USB_BOOT
	help
	  Boot system from USB stick. 

config ADK_TARGET_ROOTFS_ISO
	bool "ISO image"
	select ADK_KERNEL_ISO9660_FS
	select ADK_KERNEL_JOLIET
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_BLK_DEV_SR
	select ADK_HOST_NEED_CDRTOOLS
	select ADK_HOST_NEED_SYSLINUX
	select ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_QEMU
	depends on ADK_HOST_LINUX
	depends on ADK_TARGET_ARCH_X86
	help
	  Use this option to create a bootable ISO image.

config ADK_TARGET_ROOTFS_INITRAMFSARCHIVE
	bool "Archive usable for initramfs creation"
	depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB532 \
		&& !ADK_TARGET_SIM
	select ADK_KERNEL_BLK_DEV_INITRD
	help
	  Use this option if your planning to create a initramfs,
	  useful for adk-test-framework.

config ADK_TARGET_ROOTFS_ARCHIVE
	bool "Archive usable for different filesystems"
	select ADK_HOST_NEED_GENEXT2FS if ADK_TARGET_QEMU || ADK_TARGET_VBOX
	select ADK_KERNEL_EXT2_FS if ADK_TARGET_QEMU || ADK_TARGET_VBOX
	select ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_QEMU
	depends on !ADK_TARGET_SIM
	help
	  Use this option if your root filesystem is ext2/ext3/ext4/xfs.

endchoice

choice
prompt "Root filesystem type"
depends on ADK_TARGET_ROOTFS_ARCHIVE || ADK_TARGET_ROOTFS_USB && !ADK_TARGET_QEMU
default ADK_TARGET_ROOT_EXT4

config ADK_TARGET_ROOT_EXT4
	bool "EXT4 filesystem"
	select ADK_KERNEL_EXT4_FS
	help
	  Compile EXT4 filesystem into kernel and use it as root filesystem.

config ADK_TARGET_ROOT_XFS
	bool "XFS filesystem"
	select ADK_KERNEL_XFS_FS
	help
	  Compile XFS filesystem into kernel and use it as root filesystem.

config ADK_TARGET_ROOT_EXT2
	bool "EXT2 filesystem"
	select ADK_KERNEL_EXT2_FS
	help
	  Compile EXT2 filesystem into kernel and use it as root filesystem.

config ADK_TARGET_ROOT_EXT3
	bool "EXT3 filesystem"
	select ADK_KERNEL_EXT3_FS
	help
	  Compile EXT3 filesystem into kernel and use it as root filesystem.

endchoice

config ADK_TARGET_ROOTFS
	string
	default "xfs" if ADK_TARGET_ROOT_XFS
	default "ext2" if ADK_TARGET_ROOT_EXT2
	default "ext3" if ADK_TARGET_ROOT_EXT3
	default "ext4" if ADK_TARGET_ROOT_EXT4
	help

config ADK_PACKAGE_SUFFIX
	string
	default "ipk" if ADK_TARGET_PACKAGE_IPKG
	default "ipk" if ADK_TARGET_PACKAGE_OPKG
	default "tar.xz" if ADK_TARGET_PACKAGE_TXZ
	help

choice
prompt "Package format"
default ADK_TARGET_PACKAGE_TXZ

config ADK_TARGET_PACKAGE_TXZ
	bool "xz compressed tar archive"
	help
	  Create compressed tar archives of packages.
	  Pre- and post install scripts will be executed in the target
	  directory. There will be no package manager installed onto the target.

config ADK_TARGET_PACKAGE_IPKG
	bool "ipkg"
	select BUSYBOX_IPKG
	help
	  Create ipkg packages and use ipkg package management on the target.

config ADK_TARGET_PACKAGE_OPKG
	bool "opkg"
	select ADK_PACKAGE_OPKG
	help
	  Create opkg packages and use opkg package management on the target.
	  
endchoice

choice
prompt "GPU memory size"
depends on ADK_TARGET_BOARD_BCM28XX
default ADK_TARGET_GPU_MEM_256 if ADK_PACKAGE_KODI

config ADK_TARGET_GPU_MEM_16
	bool "16"
	help
	  use minimal 16 MB.

config ADK_TARGET_GPU_MEM_64
	bool "64"
	help
	  use 64 MB.

config ADK_TARGET_GPU_MEM_128
	bool "128"
	help
	  use 128 MB.

config ADK_TARGET_GPU_MEM_256
	bool "256"
	help
	  use 256 MB.

endchoice

config ADK_TARGET_GPU_MEM
	int
	default 16 if ADK_TARGET_GPU_MEM_16
	default 64 if ADK_TARGET_GPU_MEM_64
	default 128 if ADK_TARGET_GPU_MEM_128
	default 256 if ADK_TARGET_GPU_MEM_256
	depends on ADK_TARGET_BOARD_BCM28XX