From d309950948b0db22a2c5e7df41713bd17dc31ae5 Mon Sep 17 00:00:00 2001 From: florian Date: Mon, 30 Jul 2007 15:58:15 +0000 Subject: [PATCH] Better x86 generic config, the lzma decompressor is now reliable (thanks to Daniel Gimpelevich) git-svn-id: svn://svn.openwrt.org/openwrt/trunk@8233 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/rt2x00/Makefile | 16 ++++---- target/linux/rdc-2.6/config/default | 1 + .../linux/rdc-2.6/patches/600-x86_lzma.patch | 18 +++++--- target/linux/x86-2.6/config/profile-Generic | 41 +++++++++++++++++++ target/linux/x86-2.6/profiles/s100.mk | 1 - 5 files changed, 63 insertions(+), 14 deletions(-) create mode 100644 target/linux/x86-2.6/config/profile-Generic diff --git a/package/rt2x00/Makefile b/package/rt2x00/Makefile index efe290d9b..551289be3 100644 --- a/package/rt2x00/Makefile +++ b/package/rt2x00/Makefile @@ -16,7 +16,6 @@ include $(INCLUDE_DIR)/package.mk define Package/rt2x00/Default SUBMENU:=Wireless Drivers - DEPENDS:=+kmod-mac80211 TITLE:=Ralink GPL Drivers DESCRIPTION:=Ralink GPL Drivers for rt2x00 cards VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(LINUX_RELEASE) @@ -24,6 +23,7 @@ endef define KernelPackage/rt2x00-lib $(call Package/rt2x00/Default) + DEPENDS:=+kmod-mac80211 TITLE+= (LIB) DESCRIPTION+= (LIB) FILES:=$(PKG_BUILD_DIR)/rt2x00lib.$(LINUX_KMOD_SUFFIX) @@ -32,7 +32,7 @@ endef define KernelPackage/rt2x00-pci $(call Package/rt2x00/Default) - DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-lib + DEPENDS:=@PCI_SUPPORT +kmod-rt2x00-lib TITLE+= (PCI) DESCRIPTION+= (PCI) FILES:=$(PKG_BUILD_DIR)/rt2x00pci.$(LINUX_KMOD_SUFFIX) @@ -41,7 +41,7 @@ endef define KernelPackage/rt2x00-usb $(call Package/rt2x00/Default) - DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib + DEPENDS:=@USB_SUPPORT +kmod-rt2x00-lib TITLE+= (USB) DESCRIPTION+= (USB) FILES:=$(PKG_BUILD_DIR)/rt2x00usb.$(LINUX_KMOD_SUFFIX) @@ -50,7 +50,7 @@ endef define KernelPackage/rt2400-pci $(call Package/rt2x00/Default) - DEPENDS+= +kmod-rt2x00-pci + DEPENDS:=+kmod-rt2x00-pci TITLE+= (RT2400 PCI) DESCRIPTION+= (RT2400 PCI) FILES:=$(PKG_BUILD_DIR)/rt2400pci.$(LINUX_KMOD_SUFFIX) @@ -59,7 +59,7 @@ endef define KernelPackage/rt2500-pci $(call Package/rt2x00/Default) - DEPENDS+= +kmod-rt2x00-pci + DEPENDS:=+kmod-rt2x00-pci TITLE+= (RT2500 PCI) DESCRIPTION+= (RT2500 PCI) FILES:=$(PKG_BUILD_DIR)/rt2500pci.$(LINUX_KMOD_SUFFIX) @@ -68,7 +68,7 @@ endef define KernelPackage/rt2500-usb $(call Package/rt2x00/Default) - DEPENDS+= +kmod-rt2x00-usb + DEPENDS:=+kmod-rt2x00-usb TITLE+= (RT2500 USB) DESCRIPTION+= (RT2500 USB) FILES:=$(PKG_BUILD_DIR)/rt2500usb.$(LINUX_KMOD_SUFFIX) @@ -77,7 +77,7 @@ endef define KernelPackage/rt61-pci $(call Package/rt2x00/Default) - DEPENDS+= +kmod-rt2x00-pci + DEPENDS:=+kmod-rt2x00-pci TITLE+= (RT2x61 PCI) DESCRIPTION+= (RT2x61 PCI) FILES:=$(PKG_BUILD_DIR)/rt61pci.$(LINUX_KMOD_SUFFIX) @@ -86,7 +86,7 @@ endef define KernelPackage/rt73-usb $(call Package/rt2x00/Default) - DEPENDS+= +kmod-rt2x00-usb + DEPENDS:=+kmod-rt2x00-usb TITLE+= (RT73 USB) DESCRIPTION+= (RT73 USB) FILES:=$(PKG_BUILD_DIR)/rt73usb.$(LINUX_KMOD_SUFFIX) diff --git a/target/linux/rdc-2.6/config/default b/target/linux/rdc-2.6/config/default index b4f1090dc..c8298b558 100644 --- a/target/linux/rdc-2.6/config/default +++ b/target/linux/rdc-2.6/config/default @@ -32,6 +32,7 @@ CONFIG_CLOCKSOURCE_WATCHDOG=y # CONFIG_CPU5_WDT is not set # CONFIG_CPU_FREQ is not set CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_ARC4=y CONFIG_CRYPTO_DEV_GEODE=m # CONFIG_CRYPTO_DEV_PADLOCK is not set CONFIG_CRYPTO_TWOFISH_586=m diff --git a/target/linux/rdc-2.6/patches/600-x86_lzma.patch b/target/linux/rdc-2.6/patches/600-x86_lzma.patch index 51e487848..bb10f1fdc 100644 --- a/target/linux/rdc-2.6/patches/600-x86_lzma.patch +++ b/target/linux/rdc-2.6/patches/600-x86_lzma.patch @@ -825,6 +825,7 @@ diff -Naur linux-old/arch/i386/boot/compressed/lzma_misc.c linux-lzma/arch/i386/ + +static unsigned insize; /* valid bytes in inbuf */ +static unsigned inptr; /* index of next byte to be processed in inbuf */ ++static unsigned long workspace; + +#define get_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf()) + @@ -902,7 +903,6 @@ diff -Naur linux-old/arch/i386/boot/compressed/lzma_misc.c linux-lzma/arch/i386/ + unsigned int lc; /* literal context bits */ + unsigned int lp; /* literal pos state bits */ + unsigned int pb; /* pos state bits */ -+ unsigned char* workspace; + unsigned int uncompressedSize = 0; + unsigned char* p; + @@ -927,10 +927,10 @@ diff -Naur linux-old/arch/i386/boot/compressed/lzma_misc.c linux-lzma/arch/i386/ + get_byte(); + + // point it beyond uncompresedSize -+ workspace = window + uncompressedSize; ++ //workspace = window + uncompressedSize; + + /* decompress kernel */ -+ if (LzmaDecode(workspace, ~0, lc, lp, pb, &callback, ++ if (LzmaDecode((unsigned char*)workspace, ~0, lc, lp, pb, &callback, + (unsigned char*)window, uncompressedSize, &i) == LZMA_RESULT_OK) + return 0; + else @@ -967,7 +967,7 @@ diff -Naur linux-old/arch/i386/boot/compressed/lzma_misc.c linux-lzma/arch/i386/ + + if ((u32)output & (CONFIG_PHYSICAL_ALIGN -1)) + error("Destination address not CONFIG_PHYSICAL_ALIGN aligned"); -+ if (end > ((-__PAGE_OFFSET-(512 <<20)-1) & 0x7fffffff)) ++ if ((workspace = end) > ((-__PAGE_OFFSET-(512 <<20)-1) & 0x7fffffff)) + error("Destination address too large"); +#ifndef CONFIG_RELOCATABLE + if ((u32)output != LOAD_PHYSICAL_ADDR) @@ -1029,6 +1029,14 @@ diff -urN linux-2.6.19.2/scripts/Makefile.lib linux-2.6.19.2.new/scripts/Makefil +# LZMA +# +quiet_cmd_lzma = LZMA $@ -+cmd_lzma = lzma e $< $@ -lc7 -lp0 -pb0 ++cmd_lzma = bash -e scripts/lzma_kern $< $@ -lc7 -lp0 -pb0 +# to use lzmacomp, +# cmd_lzma = lzmacomp $< 700 > $@ +diff -u linux/scripts/lzma_kern linux/scripts/lzma_kern +--- linux/scripts/lzma_kern 2007-07-27 20:18:17.013014750 -0700 ++++ linux/scripts/lzma_kern 2007-07-27 20:18:17.013014750 -0700 +@@ -0,0 +1,4 @@ ++get-size() { echo "$5" ;} ++printf -v len '%.8x' "$(get-size $(ls -l "$1"))" ++lzma e "$@" ++echo -ne "\x$(echo $len | cut -c 7,8)\x$(echo $len | cut -c 5,6)\x$(echo $len | cut -c 3,4)\x$(echo $len | cut -c 1,2)" >> "$2" diff --git a/target/linux/x86-2.6/config/profile-Generic b/target/linux/x86-2.6/config/profile-Generic new file mode 100644 index 000000000..034bfe615 --- /dev/null +++ b/target/linux/x86-2.6/config/profile-Generic @@ -0,0 +1,41 @@ +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_BINFMT_MISC=y +# CONFIG_CPUSETS is not set +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_PENDING_IRQ=y +# CONFIG_HOTPLUG_CPU is not set +CONFIG_HT_IRQ=y +CONFIG_IRQBALANCE=y +CONFIG_LOCK_KERNEL=y +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_CLUT224=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_M386=y +# CONFIG_M486 is not set +CONFIG_MATH_EMULATION=y +CONFIG_MICROCODE=y +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_MTRR=y +CONFIG_NR_CPUS=8 +# CONFIG_PCI_MSI is not set +CONFIG_PREEMPT_BKL=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_SMP=y +CONFIG_STOP_MACHINE=y +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_GENERIC=y +CONFIG_X86_HT=y +CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_MCE=y +# CONFIG_X86_MCE_NONFATAL is not set +# CONFIG_X86_MCE_P4THERMAL is not set +CONFIG_X86_MINIMUM_CPU_MODEL=0 +CONFIG_X86_MPPARSE=y +CONFIG_X86_SMP=y +CONFIG_X86_TRAMPOLINE=y diff --git a/target/linux/x86-2.6/profiles/s100.mk b/target/linux/x86-2.6/profiles/s100.mk index 839edcdc4..0a08a5c18 100644 --- a/target/linux/x86-2.6/profiles/s100.mk +++ b/target/linux/x86-2.6/profiles/s100.mk @@ -7,7 +7,6 @@ define Profile/s100 NAME:=T-Vision S-100 - LINUX_CONFIG:=$(CURDIR)/config/profile-s100 FEATURES+=usb endef