# --- T2-COPYRIGHT-BEGIN ---
# t2/architecture/x86/linux.conf.sh
# Copyright (C) 2004 - 2026 The T2 SDE Project
# SPDX-License-Identifier: GPL-2.0
# --- T2-COPYRIGHT-END ---

{
	cat <<- 'EOT'
		define(`INTEL', `Intel X86 PCs')dnl
		
		dnl CPU configuration
		dnl

		# CONFIG_64BIT is not set
	EOT

	# all CPUs with PAE must sort after pentiumpro
	linux_arch=386
	for x in "i386		386"		\
		 "i486		486"		\
		 "c3		MCYRIXIII"	\
		 "c3-2		MVIAC3_2"	\
		 "i586		586"		\
		 "i586-mmx	586MMX"		\
		 "pentium	586"		\
		 "pentium-mmx	586MMX"		\
		 "i686		686"		\
		 "geode2	GEODE_LX"	\
		 "k6		K6"		\
		 "k6-2		K6"		\
		 "k6-3		K6"		\
		 "pentiumpro	686"		\
		 "pentium2	PENTIUMII"	\
		 "pentium3	PENTIUMIII"	\
		 "pentium4	PENTIUM4"	\
		 "pentium-m	PENTIUMM"	\
		 "atom		ATOM"		\
		 "athlon	K7"		\
		 "athlon-tbird	K7"		\
		 "athlon4	K7"		\
		 "athlon-xp	K7"		\
		 "athlon-mp	K7"
	do
		set $x # split line into $1, $2
		[ "$1" == "pentiumpro" ] && pae=1
		if [ "$1" == "$SDECFG_X86_OPT" ]; then
			linux_arch=$2
			break
		fi
	done

	# echo `grep -A 20 'Processor family' \
	#	/usr/src/linux/arch/i386/config.in | expand | \
	#	cut -c 57- | cut -f1 -d' ' | tr -d '"'`
	#
	for x in 386 486 586 586TSC 586MMX 686 PENTIUMIII PENTIUM4 PENTIUMM \
	         K6 K7 K8 ELAN CRUSOE WINCHIPC6 WINCHIP2 WINCHIP3D \
	         CYRIXIII VIAC3_2 ATOM GEODE_LX
	do
		if [ "$linux_arch" != "$x" ]
		then echo "# CONFIG_M$x is not set"
		else echo "CONFIG_M$x=y" ; fi
	done

	cat <<- 'EOT'
		include(`linux-common.conf.m4')
		include(`linux-block.conf.m4')
		include(`linux-net.conf.m4')
		include(`linux-fs.conf.m4')
		include(`linux-x86.conf.m4')
EOT

	case "$linux_arch" in
		386|486)
			echo "CONFIG_MATH_EMULATION=y"
			echo "# CONFIG_NAMESPACES is not set"
			echo "# CONFIG_SMP is not set"
			echo "# CONFIG_KVM is not set"
			echo "# CONFIG_HIGHMEM is not set"
			echo "CONFIG_NOHIGHMEM=y"
			;;
		*)
			echo "# CONFIG_MATH_EMULATION is not set"
			echo "CONFIG_NR_CPUS=4"
			echo "CONFIG_HIGHMEM=y"
			echo "CONFIG_HIGHMEM4G=y"
			;;
	esac

	[ "$pae" ] && cat <<- 'EOT'
		dnl Allow more than 4GB (split 3/1) of RAM by default
		dnl (and NX (Execute Disable) protection)
		dnl
		CONFIG_X86_PAE=y
		CONFIG_HIGHMEM64G=y
EOT

	cat <<- 'EOT'
		CONFIG_X86_ANCIENT_MCE=y
		# CONFIG_HYPERVISOR_GUEST is not set
		# CONFIG_IOMMU_SUPPORT is not set
		# CONFIG_SFI is not set
		# CONFIG_ACPI_APEI is not set
		# CONFIG_FAULT_INJECTION is not set
		# CONFIG_ATA_VERBOSE_ERROR is not set
		# CONFIG_FS_ENCRYPTION is not set
		# CONFIG_MICROCODE
		# CONFIG_COMPACTION is not set
		# CONFIG_FTRACE is not set
		# CONFIG_DEBUG_KERNEL is not set
	EOT
} | m4 -I $base/architecture/$arch -I $base/architecture/share
