This is a big patch. It allows the user to select 32 bit and 64 bit mode for those payloads and platforms that can choose. The logic for deciding which is done in kconfig, which sets some config values that we use from there on out. The rest of the patch is hacking the packages to be architecture agnostic, and adding the Serengeti/cheetah 64 bit configurations from Myles Watson.
Please test the heck out of this. I have tried to put warnings in the appropriate places so that you can't get yourself in trouble, but I may have missed some. I tested that 32 bit builds still work, and that S/C builds with the kernel - I haven't tried anything else.
Everything about this patch can be changed, from the name of the config options to the order of the configuration in menuconfig, so be brutal.
Thank you to Myles for the initial work. Most of this is his, but as always, the bugs are mine.
Jordan
[BUILDROM] Add generic 32bit/64bit support and make it configurable
Allow those payloads that can be built for 64bit to be built for 64bit given that the platform can do it. also, add the 64 bit configurations for Serengeti Cheetah, courtesy of Myles Watson.
Signed-off-by: Jordan Crouse jordan.crouse@amd.com Index: buildrom-devel/config/payloads/Config.in =================================================================== --- buildrom-devel.orig/config/payloads/Config.in +++ buildrom-devel/config/payloads/Config.in @@ -11,39 +11,51 @@ choice
config PAYLOAD_CUSTOM bool "Custom Payload" - select PAYLOAD
config PAYLOAD_ETHERBOOT depends !PLATFORM_M57SLI depends !PLATFORM_TYAN_S2891 bool "Etherboot" - select PAYLOAD
config PAYLOAD_FILO bool "FILO" - select PAYLOAD
config PAYLOAD_KERNEL depends !PLATFORM_GA_2761GXDK bool "Linux kernel payload" - select PAYLOAD + select PAYLOAD_64BIT
config PAYLOAD_LAB depends !PLATFORM_GA_2761GXDK bool "Linux As Bootloader" - select PAYLOAD + select PAYLOAD_64BIT
#config PAYLOAD_OFW # depends !PLATFORM_M57SLI # depends !PLATFORM_TYAN_S2891 # bool "OpenFirmware" -# select PAYLOAD
config PAYLOAD_MEMTEST depends !PLATFORM_M57SLI depends !PLATFORM_TYAN_S2891 bool "Memtest86+" - select PAYLOAD + +endchoice + +choice + prompt "Desired target architecture" + depends PLATFORM_SUPPORT_64BIT && PAYLOAD_64BIT + default CHOOSE_32BIT + help + Chose the target architecture for the payload. + +config CHOOSE_64BIT + bool "x86_64 (64 bit)" + select TARGET_64BIT + +config CHOOSE_32BIT + bool "x86 (32 bit)" + select TARGET_32BIT
endchoice
@@ -62,7 +74,6 @@ endmenu menu "Kernel Configuration" depends PAYLOAD_KERNEL
- config CMDLINE string "Kernel command line" default "" @@ -74,9 +85,6 @@ endmenu menu "LAB Configuration" depends PAYLOAD_LAB
-choice - prompt "Target Architecture" - config KBL_KEXEC_ONLY bool default n Index: buildrom-devel/config/platforms/Config.in =================================================================== --- buildrom-devel.orig/config/platforms/Config.in +++ buildrom-devel/config/platforms/Config.in @@ -60,25 +60,31 @@ config PLATFORM_GA_M57SLI_S4 bool "GIGABYTE GA-M57SLI-S4" depends VENDOR_GIGABYTE select PLATFORM + select PLATFORM_SUPPORT_64BIT
config PLATFORM_GA_2761GXDK bool "GIGABYTE GA-2761GXDK" depends VENDOR_GIGABYTE select PLATFORM + select PLATFORM_SUPPORT_64BIT
config PLATFORM_TYAN_S2882 bool "Tyan S2882" depends VENDOR_TYAN select PLATFORM + select PLATFORM_SUPPORT_64BIT
config PLATFORM_TYAN_S2891 bool "Tyan S2891" depends VENDOR_TYAN select PLATFORM + select PLATFORM_SUPPORT_64BIT
config PLATFORM_SERENGETI_CHEETAH bool "AMD Serengeti-Cheetah" depends VENDOR_AMD select PLATFORM + select PLATFORM_SUPPORT_64BIT + endchoice endmenu Index: buildrom-devel/Config.in =================================================================== --- buildrom-devel.orig/Config.in +++ buildrom-devel/Config.in @@ -62,7 +62,20 @@ config PLATFORM bool default n
-config PAYLOAD +config PLATFORM_SUPPORT_64BIT + bool + default n + +config PAYLOAD_64BIT + bool + default n + +config TARGET_32BIT + bool + depends !TARGET_64BIT + default y + +config TARGET_64BIT bool default n
Index: buildrom-devel/config/platforms/ga-2761gxdk.conf =================================================================== --- buildrom-devel.orig/config/platforms/ga-2761gxdk.conf +++ buildrom-devel/config/platforms/ga-2761gxdk.conf @@ -6,8 +6,13 @@ CC=gcc STRIP=strip AS=as
+ifeq ($(CONFIG_TARGET_64BIT),y) +TARGET_ARCH=x86_64 +CFLAGS_platform = +else TARGET_ARCH=i686 -CFLAGS_platform = -m32 +CFLAGS_platform = +endif
# Targets
@@ -20,7 +25,7 @@ LINUXBIOS_MK=$(PACKAGE_DIR)/linuxbios/ga # Disable for now - I don't know the right kernel for this platform #KERNEL_VERSION=2.6.22.2 #KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/ -UCLIBC_ARCH=i386 +#UCLIBC_ARCH=$(TARGET_ARCH)
# Etherboot configuration ETHERBOOT_ARCH=i386 Index: buildrom-devel/config/platforms/m57sli.conf =================================================================== --- buildrom-devel.orig/config/platforms/m57sli.conf +++ buildrom-devel/config/platforms/m57sli.conf @@ -6,8 +6,13 @@ CC=gcc STRIP=strip AS=as
+ifeq ($(CONFIG_TARGET_64BIT),y) +TARGET_ARCH=x86_64 +CFLAGS_platform = +else TARGET_ARCH=i686 -CFLAGS_platform = -m32 +CFLAGS_platform = +endif
# Targets
@@ -17,8 +22,14 @@ LINUXBIOS_MK=$(PACKAGE_DIR)/linuxbios/m5 # kernel configuration (for LAB)
KERNEL_VERSION=2.6.22.2 + +ifeq ($(CONFIG_TARGET_64BIT),y) +$(error You must specify a kernel configuration for 64 bit) +else KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/m57sli-defconfig -UCLIBC_ARCH=i386 +endif + +#UCLIBC_ARCH=$(TARGET_ARCH)
# Etherboot configuration ETHERBOOT_ARCH=i386 Index: buildrom-devel/config/platforms/serengeti_cheetah.conf =================================================================== --- buildrom-devel.orig/config/platforms/serengeti_cheetah.conf +++ buildrom-devel/config/platforms/serengeti_cheetah.conf @@ -7,19 +7,32 @@ CC=gcc STRIP=strip AS=as
-TARGET_ARCH=i586 +ifeq ($(CONFIG_TARGET_64BIT),y) +TARGET_ARCH=x86_64 CFLAGS_platform = +else +TARGET_ARCH=i686 +CFLAGS_platform = +endif
# Targets
KERNEL_MK=$(PACKAGE_DIR)/kernel/serengeti_cheetah-kernel.mk -LINUXBIOS_MK=$(PACKAGE_DIR)/linuxbios/generic-linuxbios.mk +LINUXBIOS_MK=$(PACKAGE_DIR)/linuxbios/serengeti_cheetah.mk
# kernel configuration (for LAB)
KERNEL_VERSION=2.6.20.2 + +ifeq ($(CONFIG_TARGET_64BIT),y) +KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/defconfig-serengeti_cheetah-x86_64 +BUSYBOX_CONFIG=defconfig-serengeti_cheetah-x86_64 +UCLIBC_CONFIG=defconfig-x86_64 +else KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/serengeti_cheetah-defconfig -UCLIBC_ARCH=i386 +endif + +#UCLIBC_ARCH=$(TARGET_ARCH)
# Etherboot configuration ETHERBOOT_ARCH=i386 Index: buildrom-devel/config/platforms/tyan-s2882.conf =================================================================== --- buildrom-devel.orig/config/platforms/tyan-s2882.conf +++ buildrom-devel/config/platforms/tyan-s2882.conf @@ -6,8 +6,13 @@ CC=gcc STRIP=strip AS=as
+ifeq ($(CONFIG_TARGET_64BIT), y) +TARGET_ARCH=x86_64 +CFLAGS_platform = +else TARGET_ARCH=i686 -CFLAGS_platform = -m32 +CFLAGS_platform = +endif
# Targets
@@ -17,8 +22,14 @@ LINUXBIOS_MK=$(PACKAGE_DIR)/linuxbios/ty # kernel configuration (for LAB)
KERNEL_VERSION=2.6.22.2 + +ifeq ($(CONFIG_TARGET_64BIT), y) +$(error You must specify a kernel configuration for 64 bit) +else KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/tyan-s2882-defconfig -UCLIBC_ARCH=i386 +endif + +#UCLIBC_ARCH=i386
# Etherboot configuration ETHERBOOT_ARCH=i386 Index: buildrom-devel/config/platforms/tyan-s2891.conf =================================================================== --- buildrom-devel.orig/config/platforms/tyan-s2891.conf +++ buildrom-devel/config/platforms/tyan-s2891.conf @@ -6,8 +6,13 @@ CC=gcc STRIP=strip AS=as
+ifeq ($(CONFIG_TARGET_64BIT), y) +TARGET_ARCH=x86_64 +CFLAGS_platform = +else TARGET_ARCH=i686 -CFLAGS_platform = -m32 +CFLAGS_platform = +endif
# Targets
@@ -17,8 +22,14 @@ LINUXBIOS_MK=$(PACKAGE_DIR)/linuxbios/ty # kernel configuration (for LAB)
KERNEL_VERSION=2.6.22.2 + +ifeq ($(CONFIG_TARGET_64BIT),y) +$(error You must specify a kernel configuration for 64 bit) +else KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/tyan-s2891-defconfig -UCLIBC_ARCH=i386 +endif + +#UCLIBC_ARCH=i386
# Etherboot configuration ETHERBOOT_ARCH=i386 Index: buildrom-devel/packages/kernel/kernel.inc =================================================================== --- buildrom-devel.orig/packages/kernel/kernel.inc +++ buildrom-devel/packages/kernel/kernel.inc @@ -7,6 +7,14 @@ KERNEL_SRC_DIR=$(KERNEL_DIR)/$(KERNEL_BA KERNEL_STAMP_DIR=$(KERNEL_DIR)/stamps KERNEL_LOG_DIR=$(KERNEL_DIR)/logs
+ifeq ($(CONFIG_TARGET_64BIT),y) +KERNEL_BZIMAGE=$(KERNEL_SRC_DIR)/arch/x86_64/boot/bzImage +KERNEL_BUILD_ARCH=x86_64 +else +KERNEL_BZIMAGE=$(KERNEL_SRC_DIR)/arch/i386/boot/bzImage +KERNEL_BUILD_ARCH=i386 +endif + ifeq ($(CONFIG_VERBOSE),y) KERNEL_FETCH_LOG=/dev/stdout KERNEL_BUILD_LOG=/dev/stdout @@ -42,23 +50,23 @@ endif $(KERNEL_SRC_DIR)/.config: $(KERNEL_STAMP_DIR)/.patched @ cat $(KERNEL_CONFIG) | sed -e s:^CONFIG_LOCALVERSION=.*:CONFIG_LOCALVERSION="$(ROM_VERSION)": > $(KERNEL_SRC_DIR)/.config
-$(KERNEL_SRC_DIR)/arch/i386/boot/bzImage: $(KERNEL_SRC_DIR)/.config +$(KERNEL_BZIMAGE): $(KERNEL_SRC_DIR)/.config @ echo "Building kernel..." - @ $(MAKE) -C $(KERNEL_SRC_DIR) ARCH=i386 \ + @ $(MAKE) -C $(KERNEL_SRC_DIR) ARCH=$(KERNEL_BUILD_ARCH) \ KERNEL_CC="$(CC)" KERNEL_LD="$(LD)" > $(KERNEL_BUILD_LOG) 2>&1
-$(OUTPUT_DIR)/bzImage: $(KERNEL_SRC_DIR)/arch/i386/boot/bzImage +$(OUTPUT_DIR)/bzImage: $(KERNEL_BZIMAGE) @ install -d $(OUTPUT_DIR) @ install -m 0644 $< $@
-$(OUTPUT_DIR)/vmlinux: $(KERNEL_SRC_DIR)/arch/i386/boot/bzImage +$(OUTPUT_DIR)/vmlinux: $(KERNEL_BZIMAGE) @ install -d $(OUTPUT_DIR) @ install -m 0644 $(KERNEL_SRC_DIR)/vmlinux $@ $(KERNEL_STAMP_DIR)/.headers: $(KERNEL_SRC_DIR)/.config $(STAGING_DIR)/host/bin/unifdef @ echo "Installing kernel headers..." @( export PATH=$(PATH):$(STAGING_DIR)/host/bin; \ - $(MAKE) -C $(KERNEL_SRC_DIR) ARCH=i386 \ + $(MAKE) -C $(KERNEL_SRC_DIR) ARCH=$(KERNEL_BUILD_ARCH) \ INSTALL_HDR_PATH=$(STAGING_DIR)/ headers_install > $(KERNEL_INSTALL_LOG) 2>&1) @ touch $@
Index: buildrom-devel/packages/kernel/m57sli-kernel.mk =================================================================== --- buildrom-devel.orig/packages/kernel/m57sli-kernel.mk +++ buildrom-devel/packages/kernel/m57sli-kernel.mk @@ -2,7 +2,8 @@
KERNEL_URL=http://kernel.org/pub/linux/kernel/v2.6/ KERNEL_SOURCE=linux-$(KERNEL_VERSION).tar.bz2 -KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/defconfig-m57sli + +# KERNEL_CONFIG is defined in the platform configuration
TINY_URL=http://elinux.org/images/0/0e/ TINY_SOURCE=Tiny-quilt-2.6.22.1-1.tar.gz Index: buildrom-devel/packages/kernel/serengeti_cheetah-kernel.mk =================================================================== --- buildrom-devel.orig/packages/kernel/serengeti_cheetah-kernel.mk +++ buildrom-devel/packages/kernel/serengeti_cheetah-kernel.mk @@ -2,11 +2,8 @@
KERNEL_URL=http://kernel.org/pub/linux/kernel/v2.6/ KERNEL_SOURCE=linux-$(KERNEL_VERSION).tar.bz2 -KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/defconfig-serengeti_cheetah - -#TINY_DIR=$(PACKAGE_DIR)/kernel/patches/tiny -#KERNEL_PATCHES += $(shell ls $(TINY_DIR)/*.patch)
+# Kernel config is set in the platform configuration
$(SOURCE_DIR)/$(KERNEL_SOURCE): @ mkdir -p $(SOURCE_DIR) Index: buildrom-devel/packages/kernel/tyan-s2882-kernel.mk =================================================================== --- buildrom-devel.orig/packages/kernel/tyan-s2882-kernel.mk +++ buildrom-devel/packages/kernel/tyan-s2882-kernel.mk @@ -2,7 +2,8 @@
KERNEL_URL=http://kernel.org/pub/linux/kernel/v2.6/ KERNEL_SOURCE=linux-$(KERNEL_VERSION).tar.bz2 -KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/defconfig-tyan-s2882 + +# KERNEL_CONFIG is defined in the platform configuration
TINY_URL=http://elinux.org/images/0/0e/ TINY_SOURCE=Tiny-quilt-2.6.22.1-1.tar.gz Index: buildrom-devel/packages/kernel/tyan-s2891-kernel.mk =================================================================== --- buildrom-devel.orig/packages/kernel/tyan-s2891-kernel.mk +++ buildrom-devel/packages/kernel/tyan-s2891-kernel.mk @@ -2,7 +2,8 @@
KERNEL_URL=http://kernel.org/pub/linux/kernel/v2.6/ KERNEL_SOURCE=linux-$(KERNEL_VERSION).tar.bz2 -KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/defconfig-tyan-s2891 + +# KERNEL_CONFIG is defined in the platform configuration
TINY_URL=http://elinux.org/images/0/0e/ TINY_SOURCE=Tiny-quilt-2.6.22.1-1.tar.gz Index: buildrom-devel/packages/uclibc/uclibc.mk =================================================================== --- buildrom-devel.orig/packages/uclibc/uclibc.mk +++ buildrom-devel/packages/uclibc/uclibc.mk @@ -1,7 +1,14 @@ +ifeq ($(CONFIG_PAYLOAD_LAB),y) +ifndef ($(UCLIBC_VER)) +UCLIBC_VER=0.9.28 +$(warning No UCLIBC_VER specified, using default $(UCLIBC_VER)) +endif +endif + UCLIBC_URL=http://www.uclibc.org/downloads -UCLIBC_SOURCE=uClibc-0.9.28.tar.bz2 +UCLIBC_SOURCE=uClibc-$(UCLIBC_VER).tar.bz2 UCLIBC_DIR=$(BUILD_DIR)/uclibc -UCLIBC_SRC_DIR=$(UCLIBC_DIR)/uClibc-0.9.28 +UCLIBC_SRC_DIR=$(UCLIBC_DIR)/uClibc-$(UCLIBC_VER) UCLIBC_STAMP_DIR=$(UCLIBC_DIR)/stamps UCLIBC_LOG_DIR=$(UCLIBC_DIR)/logs
@@ -15,6 +22,7 @@ endif
# Default, if its not set in the platform config UCLIBC_ARCH ?= $(TARGET_ARCH) +UCLIBC_CONFIG ?= defconfig
$(SOURCE_DIR)/$(UCLIBC_SOURCE): @ mkdir -p $(SOURCE_DIR) @@ -26,7 +34,7 @@ $(UCLIBC_STAMP_DIR)/.unpacked: $(SOURCE_ @ touch $@
$(UCLIBC_SRC_DIR)/.config: $(UCLIBC_STAMP_DIR)/.unpacked - @ cp $(PACKAGE_DIR)/uclibc/conf/defconfig $(UCLIBC_SRC_DIR)/.config + @ cat $(PACKAGE_DIR)/uclibc/conf/$(UCLIBC_CONFIG) | sed -e s:^KERNEL_HEADERS=.*:KERNEL_HEADERS="$(KERNEL_SRC_DIR)/include": > $(UCLIBC_SRC_DIR)/.config
$(UCLIBC_SRC_DIR)/lib/libc.a: $(UCLIBC_SRC_DIR)/.config @ echo "Building uclibc..." Index: buildrom-devel/scripts/Build.settings =================================================================== --- buildrom-devel.orig/scripts/Build.settings +++ buildrom-devel/scripts/Build.settings @@ -62,8 +62,14 @@ STRIPCMD := $(STRIP) -s --remove-section # This extra variable is needed because we need the original LDFLAGS # (without any cross flags) for at least busybox, and probably others too
+ifeq ($(TARGET_ARCH),x86_64) +UCLIBC_LOADER = /lib/ld64-uClibc.so.0 +else +UCLIBC_LOADER = /lib/ld-uClibc.so.0 +endif + LDFLAGS_orig = -nostdlib -L$(STAGING_DIR)/lib \ --Wl,-rpath-link,$(STAGING_DIR)/lib -Wl,--dynamic-linker,/lib/ld-uClibc.so.0 \ +-Wl,-rpath-link,$(STAGING_DIR)/lib -Wl,--dynamic-linker,$(UCLIBC_LOADER) \ $(LDFLAGS_platform)
LDFLAGS=$(CROSS_LDFLAGS) $(LDFLAGS_orig) Index: buildrom-devel/scripts/Makefile.lab =================================================================== --- buildrom-devel.orig/scripts/Makefile.lab +++ buildrom-devel/scripts/Makefile.lab @@ -30,7 +30,7 @@ $(OUTPUT_DIR)/lab-payload-uncompressed.e @ rm -f $@ @ $(STAGING_DIR)/sbin/mkelfImage --command-line="$(COMMAND_LINE)" \ --ramdisk=$(OUTPUT_DIR)/initrd.uncompressed \ - $(OUTPUT_DIR)/vmlinux $@ + $(OUTPUT_DIR)/bzImage $@ @ chmod 0644 $@
$(OUTPUT_DIR)/lab-payload.elf: $(OUTPUT_DIR)/initrd Index: buildrom-devel/bin/checkrom.sh =================================================================== --- buildrom-devel.orig/bin/checkrom.sh +++ buildrom-devel/bin/checkrom.sh @@ -1,13 +1,8 @@ #!/bin/sh
size=`du -b $1 | cut -f1` -delta=`expr 884736 - $size` -echo "Bytes left in ROM: $delta" - -if [ $delta -lt 0 ]; then - echo "ERROR! ERROR! ERROR!" - echo "The ELF image $1 is too big!" - exit -1 -fi +echo "******************" +echo "Payload takes $size Bytes (`expr $size / 1024` KBytes) in ROM:" +echo "******************"
exit 0 Index: buildrom-devel/packages/busybox/busybox.mk =================================================================== --- buildrom-devel.orig/packages/busybox/busybox.mk +++ buildrom-devel/packages/busybox/busybox.mk @@ -15,6 +15,8 @@ BUSYBOX_BUILD_LOG=$(BUSYBOX_LOG_DIR)/bui BUSYBOX_INSTALL_LOG=$(BUSYBOX_LOG_DIR)/install.log endif
+BUSYBOX_CONFIG ?= defconfig + $(SOURCE_DIR)/$(BUSYBOX_SOURCE): @ mkdir -p $(SOURCE_DIR) @ wget -P $(SOURCE_DIR) $(BUSYBOX_URL)/$(BUSYBOX_SOURCE) @@ -30,7 +32,7 @@ $(BUSYBOX_STAMP_DIR)/.patched: $(BUSYBOX @ touch $@
$(BUSYBOX_SRC_DIR)/.config: $(BUSYBOX_STAMP_DIR)/.patched - @ cp $(PACKAGE_DIR)/busybox/conf/defconfig $@ + @ cp $(PACKAGE_DIR)/busybox/conf/$(BUSYBOX_CONFIG) $@
$(BUSYBOX_SRC_DIR)/busybox: $(BUSYBOX_SRC_DIR)/.config @ echo "Building busybox..." Index: buildrom-devel/packages/kernel/conf/defconfig-serengeti_cheetah-x86_64 =================================================================== --- /dev/null +++ buildrom-devel/packages/kernel/conf/defconfig-serengeti_cheetah-x86_64 @@ -0,0 +1,803 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.22.2 +# Wed Oct 31 08:59:35 2007 +# +CONFIG_X86_64=y +CONFIG_64BIT=y +CONFIG_X86=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_ZONE_DMA32=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_SEMAPHORE_SLEEPERS=y +CONFIG_MMU=y +CONFIG_ZONE_DMA=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_X86_CMPXCHG=y +CONFIG_EARLY_PRINTK=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_DMI=y +CONFIG_AUDIT_ARCH=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="tiny" +# CONFIG_LOCALVERSION_AUTO is not set +# CONFIG_SWAP is not set +# CONFIG_SYSVIPC is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_UTS_NS is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=15 +# CONFIG_CPUSETS is not set +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_SYSENTER=y +# CONFIG_AIO is not set +# CONFIG_XATTR is not set +# CONFIG_FILE_LOCKING is not set +# CONFIG_INETPEER is not set +# CONFIG_MEASURE_INLINES is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_EMBEDDED=y +# CONFIG_UID16 is not set +# CONFIG_SYSCTL_SYSCALL is not set +# CONFIG_KALLSYMS is not set +# CONFIG_HOTPLUG is not set +CONFIG_PRINTK_FUNC=y +CONFIG_PRINTK=y +# CONFIG_BUG is not set +# CONFIG_ELF_CORE is not set +CONFIG_PANIC=y +# CONFIG_FULL_PANIC is not set +# CONFIG_BASE_FULL is not set +CONFIG_NET_SMALL=y +# CONFIG_FUTEX is not set +CONFIG_ANON_INODES=y +# CONFIG_EPOLL is not set +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +# CONFIG_SHMEM is not set +# CONFIG_CRC32_TABLES is not set +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +# CONFIG_CC_FUNIT_AT_A_TIME is not set +# CONFIG_LINUXTINY_DO_UNINLINE is not set +CONFIG_BINFMT_SCRIPT=y +CONFIG_MAX_SWAPFILES_SHIFT=5 +CONFIG_NR_LDISCS=16 +CONFIG_MAX_USER_RT_PRIO=100 +CONFIG_CRC32_CALC=y +CONFIG_TINY_SHMEM=y +CONFIG_BASE_SMALL=1 + +# +# Loadable module support +# +# CONFIG_MODULES is not set + +# +# Block layer +# +CONFIG_BLOCK=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +# CONFIG_IOSCHED_AS is not set +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_NOOP=y +CONFIG_DEFAULT_IOSCHED="noop" + +# +# Processor type and features +# +CONFIG_X86_PC=y +# CONFIG_X86_VSMP is not set +CONFIG_MK8=y +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +# CONFIG_GENERIC_CPU is not set +CONFIG_X86_L1_CACHE_BYTES=64 +CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_INTERNODE_CACHE_BYTES=64 +CONFIG_X86_TSC=y +CONFIG_X86_GOOD_APIC=y +# CONFIG_MICROCODE is not set +# CONFIG_X86_MSR is not set +# CONFIG_X86_CPUID is not set +CONFIG_X86_IO_APIC=y +CONFIG_X86_LOCAL_APIC=y +# CONFIG_MTRR is not set +CONFIG_SMP=y +# CONFIG_SCHED_SMT is not set +# CONFIG_SCHED_MC is not set +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_PREEMPT_BKL=y +# CONFIG_NUMA is not set +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM=y +CONFIG_HAVE_MEMORY_PRESENT=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_RESOURCES_64BIT=y +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_NR_CPUS=2 +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_HPET_TIMER=y +CONFIG_IOMMU=y +# CONFIG_CALGARY_IOMMU is not set +CONFIG_SWIOTLB=y +# CONFIG_X86_MCE is not set +CONFIG_KEXEC=y +# CONFIG_CRASH_DUMP is not set +# CONFIG_RELOCATABLE is not set +CONFIG_PHYSICAL_START=0x200000 +# CONFIG_SECCOMP is not set +# CONFIG_CC_STACKPROTECTOR is not set +CONFIG_HZ_100=y +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=100 +CONFIG_K8_NB=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_ISA_DMA_API=y +CONFIG_GENERIC_PENDING_IRQ=y + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set + +# +# ACPI (Advanced Configuration and Power Interface) Support +# +CONFIG_ACPI=y +# CONFIG_ACPI_PROCFS is not set +CONFIG_ACPI_AC=y +# CONFIG_ACPI_BATTERY is not set +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_FAN=y +# CONFIG_ACPI_DOCK is not set +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_THERMAL=y +# CONFIG_ACPI_ASUS is not set +# CONFIG_ACPI_TOSHIBA is not set +# CONFIG_ACPI_CUSTOM_DSDT is not set +CONFIG_ACPI_BLACKLIST_YEAR=0 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_EC=y +CONFIG_ACPI_POWER=y +CONFIG_ACPI_SYSTEM=y +CONFIG_X86_PM_TIMER=y +# CONFIG_ACPI_CONTAINER is not set +# CONFIG_ACPI_SBS is not set + +# +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set + +# +# Bus options (PCI etc.) +# +CONFIG_PCI=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCIEPORTBUS=y +# CONFIG_PCIEAER is not set +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_PCI_MSI=y +CONFIG_HT_IRQ=y + +# +# PCCARD (PCMCIA/CardBus) support +# + +# +# Executable file formats / Emulations +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_MISC is not set +CONFIG_IA32_EMULATION=y +CONFIG_IA32_AOUT=y +CONFIG_COMPAT=y + +# +# Networking +# +# CONFIG_NET is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +# CONFIG_STANDALONE is not set +CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_MTD is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# +CONFIG_PNP=y +# CONFIG_PNP_DEBUG is not set + +# +# Protocols +# +CONFIG_PNPACPI=y + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_SX8 is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set + +# +# Misc devices +# +# CONFIG_IBM_ASM is not set +# CONFIG_PHANTOM is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_TIFM_CORE is not set +# CONFIG_SONY_LAPTOP is not set +# CONFIG_THINKPAD_ACPI is not set +CONFIG_IDE=y +CONFIG_IDE_MAX_HWIFS=4 +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +# CONFIG_BLK_DEV_HD_IDE is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_BLK_DEV_IDECD=y +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_BLK_DEV_IDEACPI is not set +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IDE_PROC_FS=y + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +# CONFIG_BLK_DEV_CMD640 is not set +# CONFIG_BLK_DEV_IDEPNP is not set +CONFIG_BLK_DEV_IDEPCI=y +# CONFIG_IDEPCI_SHARE_IRQ is not set +CONFIG_IDEPCI_PCIBUS_ORDER=y +# CONFIG_BLK_DEV_OFFBOARD is not set +# CONFIG_BLK_DEV_GENERIC is not set +# CONFIG_BLK_DEV_OPTI621 is not set +# CONFIG_BLK_DEV_RZ1000 is not set +# CONFIG_BLK_DEV_IDEDMA_PCI is not set +# CONFIG_IDE_ARM is not set +# CONFIG_BLK_DEV_IDEDMA is not set +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set +# CONFIG_SCSI_PROC_FS is not set + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set + +# +# SCSI low-level drivers +# +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC94XX is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_HPTIOP is not set +# CONFIG_SCSI_BUSLOGIC is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_EATA is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_GDTH is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_FC is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_SRP is not set +# CONFIG_ATA is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_IEEE1394 is not set + +# +# I2O device support +# +# CONFIG_I2O is not set +# CONFIG_MACINTOSH_DRIVERS is not set + +# +# ISDN subsystem +# + +# +# Telephony Support +# +# CONFIG_PHONE is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_PCI=y +# CONFIG_SERIAL_8250_PNP is not set +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=1 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +# CONFIG_UNIX98_PTYS is not set +# CONFIG_LEGACY_PTYS is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set +# CONFIG_WATCHDOG is not set +# CONFIG_HW_RANDOM is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_GEN_RTC is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +# CONFIG_AGP_INTEL is not set +# CONFIG_AGP_SIS is not set +# CONFIG_AGP_VIA is not set +# CONFIG_DRM is not set +# CONFIG_MWAVE is not set +# CONFIG_PC8736x_GPIO is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set +# CONFIG_HANGCHECK_TIMER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set +CONFIG_DEVPORT=y +# CONFIG_I2C is not set + +# +# SPI support +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set + +# +# Dallas's 1-wire bus +# +# CONFIG_W1 is not set +# CONFIG_HWMON is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set +# CONFIG_DAB is not set + +# +# Graphics support +# +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set +# CONFIG_VGASTATE is not set +# CONFIG_FB is not set + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +# CONFIG_VIDEO_SELECT is not set +CONFIG_DUMMY_CONSOLE=y + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# HID Devices +# +# CONFIG_HID is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +# CONFIG_USB is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set +# CONFIG_MMC is not set + +# +# LED devices +# +# CONFIG_NEW_LEDS is not set + +# +# LED drivers +# + +# +# LED Triggers +# + +# +# InfiniBand support +# +# CONFIG_INFINIBAND is not set + +# +# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) +# +# CONFIG_EDAC is not set + +# +# Real Time Clock +# +# CONFIG_RTC_CLASS is not set + +# +# DMA Engine support +# +# CONFIG_DMA_ENGINE is not set + +# +# DMA Clients +# + +# +# DMA Devices +# + +# +# Virtualization +# +# CONFIG_KVM is not set + +# +# Firmware Drivers +# +# CONFIG_EDD is not set +# CONFIG_DELL_RBU is not set +# CONFIG_DCDBAS is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XIP=y +CONFIG_FS_XIP=y +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_INOTIFY is not set +# CONFIG_QUOTA is not set +# CONFIG_DNOTIFY is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +# CONFIG_MSDOS_FS is not set +# CONFIG_VFAT_FS is not set +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +# CONFIG_PROC_KCORE is not set +# CONFIG_PROC_SYSCTL is not set +# CONFIG_SYSFS is not set +# CONFIG_TMPFS is not set +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +# CONFIG_EFI_PARTITION is not set +# CONFIG_SYSV68_PARTITION is not set + +# +# Native Language Support +# +# CONFIG_NLS is not set + +# +# Instrumentation Support +# +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set + +# +# Security options +# +# CONFIG_KEYS is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +# CONFIG_CRC_CCITT is not set +# CONFIG_CRC16 is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y Index: buildrom-devel/packages/uclibc/conf/defconfig-x86_64 =================================================================== --- /dev/null +++ buildrom-devel/packages/uclibc/conf/defconfig-x86_64 @@ -0,0 +1,182 @@ +# +# Automatically generated make config: don't edit +# Wed Oct 31 09:29:15 2007 +# +# TARGET_alpha is not set +# TARGET_arm is not set +# TARGET_bfin is not set +# TARGET_cris is not set +# TARGET_e1 is not set +# TARGET_frv is not set +# TARGET_h8300 is not set +# TARGET_hppa is not set +# TARGET_i386 is not set +# TARGET_i960 is not set +# TARGET_ia64 is not set +# TARGET_m68k is not set +# TARGET_microblaze is not set +# TARGET_mips is not set +# TARGET_nios is not set +# TARGET_nios2 is not set +# TARGET_powerpc is not set +# TARGET_sh is not set +# TARGET_sh64 is not set +# TARGET_sparc is not set +# TARGET_v850 is not set +# TARGET_vax is not set +TARGET_x86_64=y + +# +# Target Architecture Features and Options +# +TARGET_ARCH="x86_64" +FORCE_OPTIONS_FOR_ARCH=y +TARGET_SUBARCH="" + +# +# Using ELF file format +# +ARCH_LITTLE_ENDIAN=y + +# +# Using Little Endian +# +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +UCLIBC_HAS_FLOATS=y +UCLIBC_HAS_FPU=y +# DO_C99_MATH is not set +KERNEL_HEADERS="KERNEL_HEADERS_PATH_NOT_SET" +HAVE_DOT_CONFIG=y + +# +# General Library Settings +# +# HAVE_NO_PIC is not set +DOPIC=y +# HAVE_NO_SHARED is not set +# ARCH_HAS_NO_LDSO is not set +HAVE_SHARED=y +# FORCE_SHAREABLE_TEXT_SEGMENTS is not set +LDSO_LDD_SUPPORT=y +# LDSO_CACHE_SUPPORT is not set +# LDSO_PRELOAD_FILE_SUPPORT is not set +# UCLIBC_STATIC_LDCONFIG is not set +# LDSO_RUNPATH is not set +# UCLIBC_CTOR_DTOR is not set +# HAS_NO_THREADS is not set +# UCLIBC_HAS_THREADS is not set +UCLIBC_HAS_LFS=y +# MALLOC is not set +# MALLOC_SIMPLE is not set +MALLOC_STANDARD=y +# MALLOC_GLIBC_COMPAT is not set +# UCLIBC_DYNAMIC_ATEXIT is not set +# COMPAT_ATEXIT is not set +# UCLIBC_SUSV3_LEGACY is not set +# UCLIBC_SUSV3_LEGACY_MACROS is not set +# UCLIBC_HAS_SHADOW is not set +# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set +# UCLIBC_HAS___PROGNAME is not set +UNIX98PTY_ONLY=y +ASSUME_DEVPTS=y +# UCLIBC_HAS_TM_EXTENSIONS is not set +# UCLIBC_HAS_TZ_CACHING is not set +# UCLIBC_HAS_TZ_FILE is not set + +# +# Advanced Library Settings +# +UCLIBC_PWD_BUFFER_SIZE=256 +UCLIBC_GRP_BUFFER_SIZE=256 + +# +# Networking Support +# +UCLIBC_HAS_IPV6=y +# UCLIBC_HAS_RPC is not set +# UCLIBC_USE_NETLINK is not set +# UCLIBC_HAS_BSD_RES_CLOSE is not set + +# +# String and Stdio Support +# +# UCLIBC_HAS_STRING_GENERIC_OPT is not set +# UCLIBC_HAS_STRING_ARCH_OPT is not set +UCLIBC_HAS_CTYPE_TABLES=y +UCLIBC_HAS_CTYPE_SIGNED=y +UCLIBC_HAS_CTYPE_UNSAFE=y +# UCLIBC_HAS_CTYPE_CHECKED is not set +# UCLIBC_HAS_CTYPE_ENFORCED is not set +# UCLIBC_HAS_WCHAR is not set +# UCLIBC_HAS_LOCALE is not set +# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set +# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set +# USE_OLD_VFPRINTF is not set +UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 +# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set +# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set +# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set +UCLIBC_HAS_STDIO_BUFSIZ_4096=y +# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set +UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set +# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set +UCLIBC_HAS_STDIO_GETC_MACRO=y +UCLIBC_HAS_STDIO_PUTC_MACRO=y +UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y +# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set +# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set +# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set +# UCLIBC_HAS_PRINTF_M_SPEC is not set +# UCLIBC_HAS_ERRNO_MESSAGES is not set +# UCLIBC_HAS_SIGNUM_MESSAGES is not set +UCLIBC_HAS_GNU_GETOPT=y +UCLIBC_HAS_GNU_GETSUBOPT=y + +# +# Big and Tall +# +UCLIBC_HAS_REGEX=y +UCLIBC_HAS_REGEX_OLD=y +UCLIBC_HAS_FNMATCH=y +UCLIBC_HAS_FNMATCH_OLD=y +# UCLIBC_HAS_FTW is not set +# UCLIBC_HAS_GLOB is not set + +# +# Library Installation Options +# +SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib" +RUNTIME_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/" +DEVEL_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/usr/" + +# +# Security options +# +# UCLIBC_HAS_ARC4RANDOM is not set +# HAVE_NO_SSP is not set +# UCLIBC_HAS_SSP is not set +UCLIBC_BUILD_RELRO=y +# UCLIBC_BUILD_NOW is not set +UCLIBC_BUILD_NOEXECSTACK=y + +# +# uClibc development/debugging options +# +CROSS_COMPILER_PREFIX="" +UCLIBC_EXTRA_CFLAGS="" +# DODEBUG is not set +DOSTRIP=y +# DOASSERTS is not set +# SUPPORT_LD_DEBUG is not set +# SUPPORT_LD_DEBUG_EARLY is not set +# UCLIBC_MALLOC_DEBUGGING is not set +WARNINGS="-Wall" +# EXTRA_WARNINGS is not set +# DOMULTI is not set +# UCLIBC_MJN3_ONLY is not set Index: buildrom-devel/packages/linuxbios/generic-linuxbios.mk =================================================================== --- buildrom-devel.orig/packages/linuxbios/generic-linuxbios.mk +++ buildrom-devel/packages/linuxbios/generic-linuxbios.mk @@ -7,20 +7,11 @@ endif endif
LINUXBIOS_BASE_DIR=svn -LINUXBIOS_URL=svn://openbios.org/repos/trunk/LinuxBIOSv2 +LINUXBIOS_URL=svn://linuxbios.org/repos/trunk/LinuxBIOSv2 LINUXBIOS_TARBALL=linuxbios-svn-$(LINUXBIOS_TAG).tar.gz LINUXBIOS_PAYLOAD_TARGET=$(LINUXBIOS_BUILD_DIR)/payload.elf TARGET_ROM = $(LINUXBIOS_VENDOR)-$(LINUXBIOS_BOARD).rom
-# Make sure we have the tools we need to accomplish this -HAVE_IASL:=$(call find-tool,iasl) - -ifeq ($(HAVE_IASL),n) -$(error To build LinuxBIOS, you need to install the 'iasl' tool) -endif - -LINUXBIOS_PATCHES += $(PACKAGE_DIR)/linuxbios/patches/s-c-buildrom-payload.patch - include $(PACKAGE_DIR)/linuxbios/linuxbios.inc
$(SOURCE_DIR)/$(LINUXBIOS_TARBALL): Index: buildrom-devel/packages/linuxbios/linuxbios.inc =================================================================== --- buildrom-devel.orig/packages/linuxbios/linuxbios.inc +++ buildrom-devel/packages/linuxbios/linuxbios.inc @@ -68,7 +68,7 @@ $(LINUXBIOS_STAMP_DIR)/.patched: $(LINUX @ touch $@
$(LINUXBIOS_STAMP_DIR)/.configured: $(LINUXBIOS_STAMP_DIR)/.patched - @ echo "Building target config file..." + @ echo "Building target..." @( cd $(LINUXBIOS_TARGET_DIR); \ ./buildtarget $(LINUXBIOS_CONFIG_NAME) > $(LINUXBIOS_CONFIG_LOG) 2>&1) @ touch $@ Index: buildrom-devel/packages/linuxbios/patches/serengeti_cheetah-lab.patch =================================================================== --- /dev/null +++ buildrom-devel/packages/linuxbios/patches/serengeti_cheetah-lab.patch @@ -0,0 +1,96 @@ +Index: svn/targets/amd/serengeti_cheetah/Config.lb +=================================================================== +--- svn/targets/amd/serengeti_cheetah/Config.lb (revision 2880) ++++ svn/targets/amd/serengeti_cheetah/Config.lb (working copy) +@@ -2,84 +2,18 @@ + # the amd serengeti_cheetah + # This will make a target directory of ./serengeti_cheetah + +-target serengeti_cheetah ++target serengeti_cheetah-x86_64 + mainboard amd/serengeti_cheetah + +-# serengeti_leopard +-romimage "normal" +-# 48K for SCSI FW +-# option ROM_SIZE = 475136 +-# 48K for SCSI FW and 48K for ATI ROM +-# option ROM_SIZE = 425984 +-# 64K for Etherboot +-# option ROM_SIZE = 458752 +- option USE_FAILOVER_IMAGE=0 +- option USE_FALLBACK_IMAGE=0 +-# option ROM_IMAGE_SIZE=0x13800 +-# option ROM_IMAGE_SIZE=0x18800 +- option ROM_IMAGE_SIZE=0x20000 +-# option ROM_IMAGE_SIZE=0x15800 +- option XIP_ROM_SIZE=0x40000 +- option LINUXBIOS_EXTRA_VERSION="$(shell cat ../../VERSION)_Normal" +-# payload ../../../payloads/tg3--ide_disk.zelf +-# payload ../../../payloads/filo.elf +-# payload ../../../payloads/filo_mem.elf +-# payload ../../../payloads/filo.zelf +-# payload ../../../payloads/tg3--filo_hda2.zelf +-# payload ../../../payloads/tg3.zelf +-# payload ../../../../payloads/tg3_vga.zelf +-# payload ../../../../payloads/tg3--filo_hda2_vga.zelf +- payload ../../../../payloads/tg3--filo_hda2_vga_5.4.1.zelf +-# payload ../../../../payloads/e1000_vga.zelf +-# payload ../../../../payloads/tg3--filo_hda2_vga_5_4.zelf +-# payload ../../../payloads/tg3_com2.zelf +-# payload ../../../payloads/e1000--filo.zelf +-# payload ../../../payloads/tg3--e1000--filo.zelf +-# payload ../../../payloads/tg3--eepro100--e1000--filo_hda2.zelf +-# payload ../../../payloads/tg3--eepro100--e1000--filo_hda2_5.3.zelf +-# payload ../../../payloads/tg3--eepro100--e1000--filo_hda2_com2.zelf +-end +- +-romimage "fallback" +- option USE_FAILOVER_IMAGE=0 ++option ROM_SIZE = 0x100000 ++romimage "fallback" + option USE_FALLBACK_IMAGE=1 +-# option ROM_IMAGE_SIZE=0x13800 +-# option ROM_IMAGE_SIZE=0x19800 +- option ROM_IMAGE_SIZE=0x20000 +-# option ROM_IMAGE_SIZE=0x15800 ++ option FALLBACK_SIZE= ROM_SIZE ++ option ROM_IMAGE_SIZE=0x1a000 + option XIP_ROM_SIZE=0x40000 + option LINUXBIOS_EXTRA_VERSION="$(shell cat ../../VERSION)_Fallback" +-# payload ../../../payloads/tg3--ide_disk.zelf +-# payload ../../../payloads/filo.elf +-# payload ../../../payloads/filo_mem.elf +-# payload ../../../payloads/filo.zelf +-# payload ../../../payloads/tg3--filo_hda2.zelf +-# payload ../../../payloads/tg3.zelf +-# payload ../../../../payloads/tg3_vga.zelf +-# payload ../../../../payloads/memtest +-# payload ../../../../payloads/adlo.elf +-# payload ../../../../payloads/e1000_vga.zelf +-# payload ../../../../payloads/filo_hda.zelf +-# payload ../../../../payloads/tg3--filo_hda2_vga.zelf +-# payload ../../../../payloads/tg3--filo_hda2_vga_5_4.zelf +- payload ../../../../payloads/tg3--filo_hda2_vga_5.4.1.zelf +-# payload ../../../../payloads/filo_hda2_novga.zelf +-# payload ../../../payloads/tg3_com2.zelf +-# payload ../../../payloads/e1000--filo.zelf +-# payload ../../../payloads/tg3--e1000--filo.zelf +-# payload ../../../payloads/tg3--eepro100--e1000--filo_hda2.zelf +-# payload ../../../payloads/tg3--eepro100--e1000--filo_hda2_5.3.zelf +-# payload ../../../payloads/tg3--eepro100--e1000--filo_hda2_com2.zelf +-end + +-romimage "failover" +- option USE_FAILOVER_IMAGE=1 +- option USE_FALLBACK_IMAGE=0 +- option ROM_IMAGE_SIZE=FAILOVER_SIZE +- option XIP_ROM_SIZE=FAILOVER_SIZE +- option LINUXBIOS_EXTRA_VERSION="$(shell cat ../../VERSION)_Failover" ++ payload ../payload.elf + end + +- +-buildrom ./linuxbios.rom ROM_SIZE "normal" "fallback" "failover" +-#buildrom ./linuxbios.rom ROM_SIZE "normal" "fallback" ++buildrom ./linuxbios.rom ROM_SIZE "fallback" Index: buildrom-devel/packages/linuxbios/serengeti_cheetah.mk =================================================================== --- /dev/null +++ buildrom-devel/packages/linuxbios/serengeti_cheetah.mk @@ -0,0 +1,44 @@ +# This is the Generic LinuxBIOS target + +ifeq ($(CONFIG_PLATFORM),y) +ifeq ($(LINUXBIOS_TAG),) +$(error You need to specify a version to pull in your platform config) +endif +endif + +LINUXBIOS_PATCHES = + +# Make sure we have the tools we need to accomplish this +HAVE_IASL:=$(call find-tool,iasl) + +ifeq ($(HAVE_IASL),n) +$(error To build LinuxBIOS, you need to install the 'iasl' tool) +endif + +ifeq ($(CONFIG_PAYLOAD_LAB),y) + LINUXBIOS_PATCHES += $(PACKAGE_DIR)/linuxbios/patches/serengeti_cheetah-lab.patch +else + LINUXBIOS_PATCHES += $(PACKAGE_DIR)/linuxbios/patches/serengeti_cheetah-payload.patch +endif + +LINUXBIOS_BASE_DIR=svn +LINUXBIOS_URL=svn://linuxbios.org/repos/trunk/LinuxBIOSv2 +LINUXBIOS_TARBALL=linuxbios-svn-$(LINUXBIOS_TAG).tar.gz +LINUXBIOS_PAYLOAD_TARGET=$(LINUXBIOS_BUILD_DIR)/payload.elf +TARGET_ROM = $(LINUXBIOS_VENDOR)-$(LINUXBIOS_BOARD).rom + +include $(PACKAGE_DIR)/linuxbios/linuxbios.inc + +$(SOURCE_DIR)/$(LINUXBIOS_TARBALL): + @ echo "Fetching the LinuxBIOS code..." + @ mkdir -p $(SOURCE_DIR)/linuxbios + @ $(BIN_DIR)/fetchsvn.sh $(LINUXBIOS_URL) $(SOURCE_DIR)/linuxbios \ + $(LINUXBIOS_TAG) $(SOURCE_DIR)/$(LINUXBIOS_TARBALL) \ + > $(LINUXBIOS_FETCH_LOG) 2>&1 + +$(OUTPUT_DIR)/$(TARGET_ROM): $(LINUXBIOS_OUTPUT) + @ cp $< $@ + +linuxbios: $(OUTPUT_DIR)/$(TARGET_ROM) +linuxbios-clean: generic-linuxbios-clean +linuxbios-distclean: generic-linuxbios-distclean
Jordan,
I like it. It's much cleaner.
It doesn't build my 64-bit Serengeti Cheetah yet because of the UCLIBC_VER, which needs to be 0.9.29
It also needs to choose KERNEL_VERSION 2.6.22.2 for LAB when it's 64-bit.
The tiny patches don't get applied for the kernel anymore, which adds 25K
I know this is picky, but I meant to include iso9660 support too (here's the new defconfig file attached
It also looks like the packages/busybox/conf/defconfig-serengeti_cheetah-x86_64 didn't make it in the patch
It complains the first time because it's trying to copy the payload to a directory that doesn't exist yet (the LinuxBIOS build directory) because in my Config.lb I made it use serengeti_cheetah-x86_64. Either the config or the BUILD_DIR variable needs to change.
Same thing about serengeti_cheetah.rom. In my Config.lb I left it linuxbios.rom
I haven't tested the final image, but it builds now.
Myles
On 09/11/07 17:00 -0700, Myles Watson wrote:
It complains the first time because it's trying to copy the payload to a directory that doesn't exist yet (the LinuxBIOS build directory) because in my Config.lb I made it use serengeti_cheetah-x86_64. Either the config or the BUILD_DIR variable needs to change.
Is there a reason for this - are you building both architectures at the same time? That hasn't really been our model in the past - but if its compelling, we can make it happen (there are lots of config options that make assumptions about where the code lives).
I'll make the other changes.
Jordan
-----Original Message----- From: Jordan Crouse [mailto:jordan.crouse@amd.com] On 09/11/07 17:00 -0700, Myles Watson wrote:
It complains the first time because it's trying to copy the payload to a directory that doesn't exist yet (the LinuxBIOS build directory) because
in
my Config.lb I made it use serengeti_cheetah-x86_64. Either the config
or
the BUILD_DIR variable needs to change.
Is there a reason for this - are you building both architectures at the same time? That hasn't really been our model in the past - but if its compelling, we can make it happen (there are lots of config options that make assumptions about where the code lives).
It seemed simple to do (Just the BUILD_DIR option needed to be set), but it's not important. I was thinking that it would make testing easier.
I'll make the other changes.
Thanks, Myles
Jordan
Jordan Crouse Systems Software Development Engineer Advanced Micro Devices, Inc.
This needs to be added on top of your big patch to make the m57sli-s4 build:
--- config/platforms/m57sli.conf-orig 2007-11-22 11:11:08.000000000 -0500 +++ config/platforms/m57sli.conf 2007-11-22 10:55:47.000000000 -0500 @@ -26,7 +26,7 @@ ifeq ($(CONFIG_TARGET_64BIT),y) $(error You must specify a kernel configuration for 64 bit) else -KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/m57sli-defconfig +KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/defconfig-m57sli endif
#UCLIBC_ARCH=$(TARGET_ARCH)
Thanks, Ward.
This needs to be added on top of your big patch to make the m57sli-s4 build:
--- config/platforms/m57sli.conf-orig 2007-11-22 11:11:08.000000000 - 0500 +++ config/platforms/m57sli.conf 2007-11-22 10:55:47.000000000 - 0500 @@ -26,7 +26,7 @@ ifeq ($(CONFIG_TARGET_64BIT),y) $(error You must specify a kernel configuration for 64 bit) else -KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/m57sli-defconfig +KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/defconfig-m57sli endif
#UCLIBC_ARCH=$(TARGET_ARCH)
The same patch is needed for almost every config/platforms/*.conf because of the decision to put defconfig first in the file names.
Myles
On Fri, Nov 16, 2007 at 10:43:49AM -0700, Myles Watson wrote:
This needs to be added on top of your big patch to make the m57sli-s4 build:
--- config/platforms/m57sli.conf-orig 2007-11-22 11:11:08.000000000 - 0500 +++ config/platforms/m57sli.conf 2007-11-22 10:55:47.000000000 - 0500 @@ -26,7 +26,7 @@ ifeq ($(CONFIG_TARGET_64BIT),y) $(error You must specify a kernel configuration for 64 bit) else -KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/m57sli-defconfig +KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/defconfig-m57sli endif
#UCLIBC_ARCH=$(TARGET_ARCH)
The same patch is needed for almost every config/platforms/*.conf because of the decision to put defconfig first in the file names.
Yeah, I'm modifying things and generating a new patch.
Thanks, Ward.