summaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-07-30 15:58:15 +0000
committerflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-07-30 15:58:15 +0000
commitd309950948b0db22a2c5e7df41713bd17dc31ae5 (patch)
treedb3eca12ed0fc6e309671c12cd620fdaecc5cb7b /target
parent27b382580b6484f0aac3e91a7eb6c53c2f00f84c (diff)
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
Diffstat (limited to 'target')
-rw-r--r--target/linux/rdc-2.6/config/default1
-rw-r--r--target/linux/rdc-2.6/patches/600-x86_lzma.patch18
-rw-r--r--target/linux/x86-2.6/config/profile-Generic41
-rw-r--r--target/linux/x86-2.6/profiles/s100.mk1
4 files changed, 55 insertions, 6 deletions
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