#######################################################
#
# Main options file for LinuxBIOS
#
# Each option used by a part must be defined in
# this file. The format for options is:
#
#   define <name> 
#	default <expr> | {<expr>} | "<string>" | none
#	format "<string>"
#	export always | used | never
#	comment "<string>"
#   end
#
# where 
#
#   <name> is the name of the option
#   <expr> is a numeric expression
#   <string> is a string
#
# Either a default value or 'default none' must
# be specified for every option. An option
# specified as 'default none' will not be exported
# (i.e. will remain undefined) unless it has
# been assigned a value.
#
# Option values can be an immediate expression that 
# evaluates to a numeric value, a delayed expression 
# (surrounded by curley braces), or a string 
# (surrounded by double quotes.)
#
# Immediate expressions are evaluated at the time an
# option is defined or set and the numeric result 
# becomes the value of the option.
#
# Delayed expression are evaluated at the time the 
# option is used, either in another expression or 
# when being exported.
#
# String values will have the double quotes removed 
# automatically. 
#
# Format strings determine the print format that is 
# used when exporting options. The default format
# is "%s" for strings and "%d" for numbers.
#
# Exported options generate entries in the 
# Makefile.settings file. Options can be always 
# exported, exported only if used, or never exported.
#
# A comment string must be supplied for every option.
#
#######################################################

###############################################
# Architecture options
###############################################

define ARCH
	default "i386"
	export always
	comment "Default architecture is i386, options are alpha and ppc"
end
define k7
	default none
	export used
	comment "We're a k7"
end
define k8
	default none
	export used
	comment "We're a k8"
end
define i586
	default none
	export used
	comment "We're a 586"
end
define i686
	default none
	export used
	comment "We're a 686"
end
define CPU_FIXUP
	default none
	export used
	comment "Do CPU fixups"
end

###############################################
# Build options
###############################################

define CROSS_COMPILE
	default ""
	export always
	comment "Cross compiler prefix"
end
define CC
	default "$(CROSS_COMPILE)gcc"
	export always
	comment "Target C Compiler"
end
define HOSTCC
	default "gcc"
	export always
	comment "Host C Compiler"
end
define CPU_OPT
	default none
	export used
	comment "Additional per-cpu CFLAGS"
end
define OBJCOPY
	default "$(CROSS_COMPILE)objcopy"
	export always
	comment "Objcopy command"
end
define LINUXBIOS_VERSION
	default "1.1.6"
	export always
	comment "LinuxBIOS version"
end
define LINUXBIOS_EXTRA_VERSION
        default ""
        export used
        comment "LinuxBIOS extra version"
end
define LINUXBIOS_BUILD
	default "$(shell date)"
	export always
	comment "Build date"
end
define LINUXBIOS_COMPILE_TIME
	default "$(shell date +%T)"
	export always
	comment "Build time"
end
define LINUXBIOS_COMPILE_BY
	default "$(shell whoami)"
	export always
	comment "Who build this image"
end
define LINUXBIOS_COMPILE_HOST
	default "$(shell hostname)"
	export always
	comment "Build host"
end

define LINUXBIOS_COMPILE_DOMAIN
	default "$(shell dnsdomainname)"
	export always
	comment "Build domain name"
end
define LINUXBIOS_COMPILER
	default "$(shell $(CC) $(CFLAGS) -v 2>&1 | tail -n 1)"
	export always
	comment "Build compiler"
end
define LINUXBIOS_LINKER
	default "$(shell  $(CC) -Wl,-v 2>&1 | grep version | tail -n 1)"
	export always
	comment "Build linker"
end
define LINUXBIOS_ASSEMBLER
	default "$(shell  touch dummy.s ; $(CC) -c -Wa,-v dummy.s 2>&1; rm -f dummy.s dummy.o )"
	export always
	comment "Build assembler"
end
define CONFIG_CHIP_CONFIGURE
	default 0
	export used
	comment "Use new chip_configure method for configuring (non-pci) devices"
end
define CONFIG_USE_INIT
	default 0
	export used
	comment "Use stage 1 initialization code"
end

###############################################
# ROM image options
###############################################

define HAVE_FALLBACK_BOOT
	format "%d"
	default 0
	export always
	comment "Set if fallback booting required"
end
define USE_FALLBACK_IMAGE
	format "%d"
	default 0
	export used
	comment "Set to build a fallback image"
end
define FALLBACK_SIZE
	default 65536
	format "0x%x"
	export used
	comment "Default fallback image size"
end
define ROM_SIZE
	default none
	format "0x%x"
	export used
	comment "Size of your ROM"
end
define ROM_IMAGE_SIZE
	default 65535
	format "0x%x"
	export always
	comment "Default image size"
end
define ROM_SECTION_SIZE
	default {FALLBACK_SIZE}
	format "0x%x"
	export used
	comment "Default rom section size"
end
define ROM_SECTION_OFFSET
	default {ROM_SIZE - FALLBACK_SIZE}
	format "0x%x"
	export used
	comment "Default rom section offset"
end
define PAYLOAD_SIZE
	default {ROM_SECTION_SIZE - ROM_IMAGE_SIZE}
	format "0x%x"
	export always
	comment "Default payload size"
end
define _ROMBASE
	default {PAYLOAD_SIZE}
	format "0x%x"
	export always
	comment "Base address of LinuxBIOS in ROM"
end
define _ROMSTART
	default none
	format "0x%x"
	export used
	comment "Start address of LinuxBIOS in ROM"
end
define _RESET
	default {_ROMBASE}
	format "0x%x"
	export always
	comment "Hardware reset vector address"
end
define _EXCEPTION_VECTORS
	default {_ROMBASE+0x100}
	format "0x%x"
	export always
	comment "Address of exception vector table"
end
define STACK_SIZE
	default 0x2000
	format "0x%x"
	export always
	comment "Default stack size"
end
define HEAP_SIZE
	default 0x2000
	format "0x%x"
	export always
	comment "Default heap size"
end
define _RAMBASE
	default none
	format "0x%x"
	export always
	comment "Base address of LinuxBIOS in RAM"
end
define _RAMSTART
	default none
	format "0x%x"
	export used
	comment "Start address of LinuxBIOS in RAM"
end
define USE_DCACHE_RAM
	default 0
	export used
	comment "Use data cache as temporary RAM if possible"
end
define DCACHE_RAM_BASE
	default none
	format "0x%x"
	export used
	comment "Base address of data cache when using it for temporary RAM"
end
define DCACHE_RAM_SIZE
	default none
	format "0x%x"
	export used
	comment "Size of data cache when using it for temporary RAM"
end
define XIP_ROM_BASE
	default 0
	format "0x%x"
	export used
	comment "Start address of area to cache during LinuxBIOS execution directly from ROM"
end
define XIP_ROM_SIZE
	default 0
	format "0x%x"
	export used
	comment "Size of area to cache during LinuxBIOS execution directly from ROM"
end
define CONFIG_COMPRESS
	default 1
	export always
	comment "Set for compressed image"
end
define CONFIG_UNCOMPRESSED
	format "%d"
	default {!CONFIG_COMPRESS}
	export always
	comment "Set for uncompressed image"
end
define CONFIG_LB_MEM_TOPK
	format "%d"
	default 1024
	export always
	comment "Kilobytes of memory to initialized before executing code from RAM"
end
define HAVE_OPTION_TABLE
	default 0
	export always
	comment "Export CMOS option table"
end
define USE_OPTION_TABLE
	format "%d"
	default {HAVE_OPTION_TABLE && !USE_FALLBACK_IMAGE}
	export always
	comment "Use option table"
end

###############################################
# CMOS variable options
###############################################
define LB_CKS_RANGE_START
	default 49
	format "%d"
	export always
	comment "First CMOS byte to use for LinuxBIOS options"
end
define LB_CKS_RANGE_END
	default 125
	format "%d"
	export always
	comment "Last CMOS byte to use for LinuxBIOS options"
end
define LB_CKS_LOC
	default 126
	format "%d"
	export always
	comment "Pair of bytes to use for CMOS checksum"
end


###############################################
# Build targets
###############################################

define CRT0
	default "$(TOP)/src/arch/$(ARCH)/config/crt0.base"
	export always
	comment "Main initialization target"
end

###############################################
# Debugging/Logging options
###############################################

define DEBUG
	default 1
	export always
	comment "Enable debugging code"
end
define CONFIG_CONSOLE_VGA
	default 0
	export always
	comment "Log messages to VGA"
end
define CONFIG_CONSOLE_LOGBUF
	default 0
	export always
	comment "Log messages to buffer"
end
define CONFIG_CONSOLE_SROM
	default 0
	export always
	comment "Log messages to SROM console"
end
define CONFIG_CONSOLE_SERIAL8250
	default 0
	export always
	comment "Log messages to 8250 uart based serial console"
end
define DEFAULT_CONSOLE_LOGLEVEL
	default 7
	export always
	comment "Console will log at this level unless changed"
end
define MAXIMUM_CONSOLE_LOGLEVEL
	default 8
	export always
 	comment "Error messages up to this level can be printed"
end
define CONFIG_SERIAL_POST
	default 0
	export always
	comment "Enable SERIAL POST codes"
end
define NO_POST
	default none
	export used
	comment "Disable POST codes"
end
define TTYS0_BASE
	default 0x3f8
	format "0x%x"
	export always
	comment "Base address for 8250 uart for the serial console"
end
define TTYS0_BAUD
	default 115200
	export always
	comment "Default baud rate for serial console"
end
define TTYS0_DIV
	default none
	format "%d"
	export used
	comment "Allow UART divisor to be set explicitly"
end
define TTYS0_LCS
	default 0x3
	format "0x%x"
	export always
	comment "Default flow control settings for the 8250 serial console uart"
end
	
###############################################
# Mainboard options
###############################################

define MAINBOARD
	default "Mainboard_not_set"
	export always
	comment "Mainboard name"
end
define MAINBOARD_PART_NUMBER
	default "Part_number_not_set"
	export always
	comment "Part number of mainboard"
end
define MAINBOARD_VENDOR
	default "Vendor_not_set"
	export always
	comment "Vendor of mainboard"
end
define MAINBOARD_POWER_ON_AFTER_POWER_FAIL
	default none
	export used
	comment "Default power on after power fail setting"
end
define CONFIG_SYS_CLK_FREQ
	default none
	export used
	comment "System clock frequency in MHz"
end
define CONFIG_LEGACY_VGABIOS
	default 0
	export used
	comment "Support for legacy VGA BIOS"
end

###############################################
# SMP options
###############################################

define CONFIG_SMP
	default 0
	export always
	comment "Define if we support SMP"
end
define CONFIG_MAX_CPUS
        default 1
        export always
        comment "Maximum CPU count for this machine"
end
define CONFIG_MAX_PHYSICAL_CPUS
	default {CONFIG_MAX_CPUS}
	export always
	comment "Physical CPU count for this machine"
end
define CONFIG_LOGICAL_CPUS
	default 0
	export always
	comment "Should multiple cpus per die be enabled?"
end
define HAVE_MP_TABLE
	default none
	export used
	comment "Define to build an MP table"
end

###############################################
# Boot options
###############################################

define CONFIG_IDE_STREAM
	default 0
	export always
	comment "Boot from IDE device"
end
define CONFIG_ROM_STREAM
	default 0
	export always
	comment "Boot image is located in ROM" 
end
define CONFIG_ROM_STREAM_START
	default {0xffffffff - ROM_SIZE + ROM_SECTION_OFFSET + 1}
	format "0x%x"
	export always
	comment "ROM stream start location"
end
define CONFIG_FS_STREAM
	default 0
	export always
	comment "Boot from a filesystem"
end
define CONFIG_FS_EXT2
	default 0
	export always
	comment "Enable ext2 filesystem support"
end
define CONFIG_FS_ISO9660
	default 0
	export always
	comment "Enable ISO9660 filesystem support"
end
define CONFIG_FS_FAT
	default 0
	export always
	comment "Enable FAT filesystem support"
end
define AUTOBOOT_DELAY
	default 2
	export always
	comment "Delay (in seconds) before autobooting"
end
define AUTOBOOT_CMDLINE
	default "hdc1:/vmlinuz root=/dev/hdc3 console=tty0 console=ttyS0,115200"
	export always
	format "\"%s\""
	comment "Default command line when autobooting"
end

###############################################
# IRQ options
###############################################

define HAVE_PIRQ_TABLE
	default none
	export used
	comment "Define if we have a PIRQ table"
end
define IRQ_SLOT_COUNT
	default none
	export used
	comment "Number of IRQ slots"
end
define CONFIG_PCIBIOS_IRQ
	default none
	export used
	comment "PCIBIOS IRQ support"
end
define CONFIG_IOAPIC
	default none
	export used
	comment "IOAPIC support"
end

###############################################
# IDE specific options
###############################################

define CONFIG_IDE
	default 0
	export always
	comment "Define to include IDE support"
end
define IDE_BOOT_DRIVE
	default 0
	export always
	comment "Disk number of boot drive"
end
define IDE_SWAB
	default none
	export used
	comment "Swap bytes when reading from IDE device"
end
define IDE_OFFSET
	default 0
	export always
	comment "Sector at which to start searching for boot image"
end

###############################################
# Options for memory mapped I/O
###############################################

define PCIC0_CFGADDR
	default none
	format "0x%x"
	export used
	comment "Address of PCI Configuration Address Register"
end
define PCIC0_CFGDATA
	default none
	format "0x%x"
	export used
	comment "Address of PCI Configuration Data Register"
end
define ISA_IO_BASE
	default none
	format "0x%x"
	export used
	comment "Base address of PCI/ISA I/O address range"
end
define ISA_MEM_BASE
	default none
	format "0x%x"
	export used
	comment "Base address of PCI/ISA memory address range"
end
define PNP_CFGADDR
	default none
	format "0x%x"
	export used
	comment "PNP Configuration Address Register offset"
end
define PNP_CFGDATA
	default none
	format "0x%x"
	export used
	comment "PNP Configuration Data Register offset"
end
define _IO_BASE
	default none
	format "0x%x"
	export used
	comment "Base address of memory mapped I/O operations"
end

###############################################
# Options for embedded systems
###############################################

define EMBEDDED_RAM_SIZE
	default none
	export used
	comment "Embedded boards generally have fixed RAM size"
end

###############################################
# Misc options
###############################################

define HAVE_HARD_RESET
	default none
	export used
	comment "Have hard reset"
end
define HARD_RESET_BUS
	default 1
	export always
	comment "Bus number of southbridge device doing reset"
end
define HARD_RESET_DEVICE
	default 5
	export always
	comment "Device number of southbridge device doing reset"
end
define HARD_RESET_FUNCTION
	default 0
	export always
	comment "Function number of southbridge device doing reset"
end
define MEMORY_HOLE
	default none
	export used
	comment "Set to deal with memory hole"
end
define MAX_REBOOT_CNT
	default 3
	export always
	comment "Set maximum reboots"
end

###############################################
# Misc device options
###############################################

define CONFIG_TSC_X86RDTSC_CALIBRATE_WITH_TIMER2
	default 0
	export used
	comment "Use timer2 to callibrate the x86 time stamp counter"
end
define INTEL_PPRO_MTRR
	default none
	export used
	comment ""
end
define CONFIG_UDELAY_TSC
	default 0
	export used
	comment "Implement udelay with the x86 time stamp counter"
end
define FAKE_SPDROM
	default 0
	export always
	comment "Use this to fake spd rom values"
end

define HAVE_ACPI_TABLES
	default 0
	export always
	comment "Define to build ACPI tables"
end

define AGP_APERTURE_SIZE
	default none
	export used
	comment "AGP graphics virtual memory aperture size"
end

###############################################
# Board specific options
###############################################

###############################################
# Options for motorola/sandpoint
###############################################
define CONFIG_SANDPOINT_ALTIMUS
	default 0
	export never
	comment "Configure Sandpoint with Altimus PMC"
end
define CONFIG_SANDPOINT_TALUS
	default 0
	export never
	comment "Configure Sandpoint with Talus PMC"
end
define CONFIG_SANDPOINT_UNITY
	default 0
	export never
	comment "Configure Sandpoint with Unity PMC"
end
define CONFIG_SANDPOINT_VALIS
	default 0
	export never
	comment "Configure Sandpoint with Valis PMC"
end
define CONFIG_SANDPOINT_GYRUS
	default 0
	export never
	comment "Configure Sandpoint with Gyrus PMC"
end

###############################################
# Options for totalimpact/briq
###############################################
define CONFIG_BRIQ_750FX
	default 0
	export never
	comment "Configure briQ with PowerPC 750FX"
end
define CONFIG_BRIQ_7400
	default 0
	export never
	comment "Configure briQ with PowerPC G4"
end