Better x86 generic config, the lzma decompressor is now reliable (thanks to Daniel Gimpelevich)

SVN-Revision: 8233
This commit is contained in:
Florian Fainelli 2007-07-30 15:58:15 +00:00
parent f1ac6cf7ec
commit 4e0563e185
5 changed files with 63 additions and 14 deletions

View file

@ -16,7 +16,6 @@ include $(INCLUDE_DIR)/package.mk
define Package/rt2x00/Default define Package/rt2x00/Default
SUBMENU:=Wireless Drivers SUBMENU:=Wireless Drivers
DEPENDS:=+kmod-mac80211
TITLE:=Ralink GPL Drivers TITLE:=Ralink GPL Drivers
DESCRIPTION:=Ralink GPL Drivers for rt2x00 cards DESCRIPTION:=Ralink GPL Drivers for rt2x00 cards
VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(LINUX_RELEASE) VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(LINUX_RELEASE)
@ -24,6 +23,7 @@ endef
define KernelPackage/rt2x00-lib define KernelPackage/rt2x00-lib
$(call Package/rt2x00/Default) $(call Package/rt2x00/Default)
DEPENDS:=+kmod-mac80211
TITLE+= (LIB) TITLE+= (LIB)
DESCRIPTION+= (LIB) DESCRIPTION+= (LIB)
FILES:=$(PKG_BUILD_DIR)/rt2x00lib.$(LINUX_KMOD_SUFFIX) FILES:=$(PKG_BUILD_DIR)/rt2x00lib.$(LINUX_KMOD_SUFFIX)
@ -32,7 +32,7 @@ endef
define KernelPackage/rt2x00-pci define KernelPackage/rt2x00-pci
$(call Package/rt2x00/Default) $(call Package/rt2x00/Default)
DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-lib DEPENDS:=@PCI_SUPPORT +kmod-rt2x00-lib
TITLE+= (PCI) TITLE+= (PCI)
DESCRIPTION+= (PCI) DESCRIPTION+= (PCI)
FILES:=$(PKG_BUILD_DIR)/rt2x00pci.$(LINUX_KMOD_SUFFIX) FILES:=$(PKG_BUILD_DIR)/rt2x00pci.$(LINUX_KMOD_SUFFIX)
@ -41,7 +41,7 @@ endef
define KernelPackage/rt2x00-usb define KernelPackage/rt2x00-usb
$(call Package/rt2x00/Default) $(call Package/rt2x00/Default)
DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib DEPENDS:=@USB_SUPPORT +kmod-rt2x00-lib
TITLE+= (USB) TITLE+= (USB)
DESCRIPTION+= (USB) DESCRIPTION+= (USB)
FILES:=$(PKG_BUILD_DIR)/rt2x00usb.$(LINUX_KMOD_SUFFIX) FILES:=$(PKG_BUILD_DIR)/rt2x00usb.$(LINUX_KMOD_SUFFIX)
@ -50,7 +50,7 @@ endef
define KernelPackage/rt2400-pci define KernelPackage/rt2400-pci
$(call Package/rt2x00/Default) $(call Package/rt2x00/Default)
DEPENDS+= +kmod-rt2x00-pci DEPENDS:=+kmod-rt2x00-pci
TITLE+= (RT2400 PCI) TITLE+= (RT2400 PCI)
DESCRIPTION+= (RT2400 PCI) DESCRIPTION+= (RT2400 PCI)
FILES:=$(PKG_BUILD_DIR)/rt2400pci.$(LINUX_KMOD_SUFFIX) FILES:=$(PKG_BUILD_DIR)/rt2400pci.$(LINUX_KMOD_SUFFIX)
@ -59,7 +59,7 @@ endef
define KernelPackage/rt2500-pci define KernelPackage/rt2500-pci
$(call Package/rt2x00/Default) $(call Package/rt2x00/Default)
DEPENDS+= +kmod-rt2x00-pci DEPENDS:=+kmod-rt2x00-pci
TITLE+= (RT2500 PCI) TITLE+= (RT2500 PCI)
DESCRIPTION+= (RT2500 PCI) DESCRIPTION+= (RT2500 PCI)
FILES:=$(PKG_BUILD_DIR)/rt2500pci.$(LINUX_KMOD_SUFFIX) FILES:=$(PKG_BUILD_DIR)/rt2500pci.$(LINUX_KMOD_SUFFIX)
@ -68,7 +68,7 @@ endef
define KernelPackage/rt2500-usb define KernelPackage/rt2500-usb
$(call Package/rt2x00/Default) $(call Package/rt2x00/Default)
DEPENDS+= +kmod-rt2x00-usb DEPENDS:=+kmod-rt2x00-usb
TITLE+= (RT2500 USB) TITLE+= (RT2500 USB)
DESCRIPTION+= (RT2500 USB) DESCRIPTION+= (RT2500 USB)
FILES:=$(PKG_BUILD_DIR)/rt2500usb.$(LINUX_KMOD_SUFFIX) FILES:=$(PKG_BUILD_DIR)/rt2500usb.$(LINUX_KMOD_SUFFIX)
@ -77,7 +77,7 @@ endef
define KernelPackage/rt61-pci define KernelPackage/rt61-pci
$(call Package/rt2x00/Default) $(call Package/rt2x00/Default)
DEPENDS+= +kmod-rt2x00-pci DEPENDS:=+kmod-rt2x00-pci
TITLE+= (RT2x61 PCI) TITLE+= (RT2x61 PCI)
DESCRIPTION+= (RT2x61 PCI) DESCRIPTION+= (RT2x61 PCI)
FILES:=$(PKG_BUILD_DIR)/rt61pci.$(LINUX_KMOD_SUFFIX) FILES:=$(PKG_BUILD_DIR)/rt61pci.$(LINUX_KMOD_SUFFIX)
@ -86,7 +86,7 @@ endef
define KernelPackage/rt73-usb define KernelPackage/rt73-usb
$(call Package/rt2x00/Default) $(call Package/rt2x00/Default)
DEPENDS+= +kmod-rt2x00-usb DEPENDS:=+kmod-rt2x00-usb
TITLE+= (RT73 USB) TITLE+= (RT73 USB)
DESCRIPTION+= (RT73 USB) DESCRIPTION+= (RT73 USB)
FILES:=$(PKG_BUILD_DIR)/rt73usb.$(LINUX_KMOD_SUFFIX) FILES:=$(PKG_BUILD_DIR)/rt73usb.$(LINUX_KMOD_SUFFIX)

View file

@ -32,6 +32,7 @@ CONFIG_CLOCKSOURCE_WATCHDOG=y
# CONFIG_CPU5_WDT is not set # CONFIG_CPU5_WDT is not set
# CONFIG_CPU_FREQ is not set # CONFIG_CPU_FREQ is not set
CONFIG_CRYPTO_AES_586=m CONFIG_CRYPTO_AES_586=m
CONFIG_CRYPTO_ARC4=y
CONFIG_CRYPTO_DEV_GEODE=m CONFIG_CRYPTO_DEV_GEODE=m
# CONFIG_CRYPTO_DEV_PADLOCK is not set # CONFIG_CRYPTO_DEV_PADLOCK is not set
CONFIG_CRYPTO_TWOFISH_586=m CONFIG_CRYPTO_TWOFISH_586=m

View file

@ -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 insize; /* valid bytes in inbuf */
+static unsigned inptr; /* index of next byte to be processed 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()) +#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 lc; /* literal context bits */
+ unsigned int lp; /* literal pos state bits */ + unsigned int lp; /* literal pos state bits */
+ unsigned int pb; /* pos state bits */ + unsigned int pb; /* pos state bits */
+ unsigned char* workspace;
+ unsigned int uncompressedSize = 0; + unsigned int uncompressedSize = 0;
+ unsigned char* p; + unsigned char* p;
+ +
@ -927,10 +927,10 @@ diff -Naur linux-old/arch/i386/boot/compressed/lzma_misc.c linux-lzma/arch/i386/
+ get_byte(); + get_byte();
+ +
+ // point it beyond uncompresedSize + // point it beyond uncompresedSize
+ workspace = window + uncompressedSize; + //workspace = window + uncompressedSize;
+ +
+ /* decompress kernel */ + /* 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) + (unsigned char*)window, uncompressedSize, &i) == LZMA_RESULT_OK)
+ return 0; + return 0;
+ else + 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)) + if ((u32)output & (CONFIG_PHYSICAL_ALIGN -1))
+ error("Destination address not CONFIG_PHYSICAL_ALIGN aligned"); + 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"); + error("Destination address too large");
+#ifndef CONFIG_RELOCATABLE +#ifndef CONFIG_RELOCATABLE
+ if ((u32)output != LOAD_PHYSICAL_ADDR) + 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 +# LZMA
+# +#
+quiet_cmd_lzma = 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, +# to use lzmacomp,
+# cmd_lzma = lzmacomp $< 700 > $@ +# 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"

View file

@ -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

View file

@ -7,7 +7,6 @@
define Profile/s100 define Profile/s100
NAME:=T-Vision S-100 NAME:=T-Vision S-100
LINUX_CONFIG:=$(CURDIR)/config/profile-s100
FEATURES+=usb FEATURES+=usb
endef endef