From 83d893a984a9e275e1e80b7f899c63b596ed12b3 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Wed, 27 Jun 2012 18:57:03 +0200 Subject: [PATCH] kernel3: updated to 3.2.21. --- .../kernel/kernel.config.armv5tel-ipfire-omap | 2 +- .../kernel/kernel.config.armv5tel-ipfire-rpi | 10 +- config/rootfiles/common/armv5tel/linux-omap | 6 +- config/rootfiles/common/armv5tel/linux-rpi | 6 +- lfs/linux3 | 31 +--- .../linux-3.2-bcm2708-sdhci_patches.patch | 138 ------------------ 6 files changed, 20 insertions(+), 173 deletions(-) delete mode 100644 src/patches/linux-3.2-bcm2708-sdhci_patches.patch diff --git a/config/kernel/kernel.config.armv5tel-ipfire-omap b/config/kernel/kernel.config.armv5tel-ipfire-omap index eb8c18a12..08405e29d 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-omap +++ b/config/kernel/kernel.config.armv5tel-ipfire-omap @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 2.6.42.19-ipfire-omap Kernel Configuration +# Linux/arm 3.2.21 Kernel Configuration # CONFIG_ARM=y CONFIG_HAVE_PWM=y diff --git a/config/kernel/kernel.config.armv5tel-ipfire-rpi b/config/kernel/kernel.config.armv5tel-ipfire-rpi index fa286d931..4d434e01a 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-rpi +++ b/config/kernel/kernel.config.armv5tel-ipfire-rpi @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 2.6.42.20 Kernel Configuration +# Linux/arm 3.2.21 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -122,9 +122,10 @@ CONFIG_PERF_USE_VMALLOC=y # CONFIG_PERF_EVENTS is not set # CONFIG_PERF_COUNTERS is not set CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set -CONFIG_SLAB=y -# CONFIG_SLUB is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y # CONFIG_SLOB is not set # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y @@ -3182,7 +3183,8 @@ CONFIG_SCHED_DEBUG=y # CONFIG_SCHEDSTATS is not set CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set -# CONFIG_DEBUG_SLAB is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set diff --git a/config/rootfiles/common/armv5tel/linux-omap b/config/rootfiles/common/armv5tel/linux-omap index d5e7ceaa7..78752ff2a 100644 --- a/config/rootfiles/common/armv5tel/linux-omap +++ b/config/rootfiles/common/armv5tel/linux-omap @@ -1,5 +1,5 @@ boot/uInit-ipfire-omap boot/uImage-ipfire-omap -boot/System.map-2.6.42.20-ipfire-omap -boot/config-2.6.42.20-ipfire-omap -lib/modules/2.6.42.20-ipfire-omap +boot/System.map-3.2.21-ipfire-omap +boot/config-3.2.21-ipfire-omap +lib/modules/3.2.21-ipfire-omap diff --git a/config/rootfiles/common/armv5tel/linux-rpi b/config/rootfiles/common/armv5tel/linux-rpi index 01908e4da..233a86cf1 100644 --- a/config/rootfiles/common/armv5tel/linux-rpi +++ b/config/rootfiles/common/armv5tel/linux-rpi @@ -1,4 +1,4 @@ boot/kernel.img -boot/System.map-2.6.42.20-ipfire-rpi -boot/config-2.6.42.20-ipfire-rpi -lib/modules/2.6.42.20-ipfire-rpi +boot/System.map-3.2.21-ipfire-rpi +boot/config-3.2.21-ipfire-rpi +lib/modules/3.2.21-ipfire-rpi diff --git a/lfs/linux3 b/lfs/linux3 index 94233dc54..086202806 100644 --- a/lfs/linux3 +++ b/lfs/linux3 @@ -24,20 +24,12 @@ include Config -PATCHLEVEL = .20 +VER = 3.2.21 -VER = 2.6.42.20 - -XVERS = 3.2.20 -XVERSION = 2 -XPATCHLEVEL = 6 -XSUBLEVEL = 42 -XEXTRAVERSION = .20 - -RPI_PATCHES = linux-3.2-bootc-6ab6087 +RPI_PATCHES = linux-3.2-bootc-a1f8d7a THISAPP = linux-$(VER) -DL_FILE = linux-$(XVERS).tar.bz2 +DL_FILE = linux-$(VER).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) CFLAGS = @@ -83,8 +75,8 @@ objects =$(DL_FILE) \ $(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE) rpi-patches-$(RPI_PATCHES).patch.xz = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES).patch.xz -$(DL_FILE)_MD5 = bd0063a747c3ea0ecdcc85a512d9760a -rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = fd87188cbd0b168a2b335db3d661ece9 +$(DL_FILE)_MD5 = c8a4ae25eb44f9122f386068e30e7e2e +rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = c3891a7f38609783358e765d784e5e6e install : $(TARGET) @@ -117,13 +109,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/linux && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - # Change version from 3.x to 2.6.4x - cd $(DIR_SRC)/linux-$(XVERS) && sed -i -e "s/^VERSION =.*$$/VERSION = $(XVERSION)/g" Makefile - cd $(DIR_SRC)/linux-$(XVERS) && sed -i -e "s/^PATCHLEVEL =.*$$/PATCHLEVEL = $(XPATCHLEVEL)/g" Makefile - cd $(DIR_SRC)/linux-$(XVERS) && sed -i -e "s/^SUBLEVEL =.*$$/SUBLEVEL = $(XSUBLEVEL)/g" Makefile - cd $(DIR_SRC)/linux-$(XVERS) && sed -i -e "s/^EXTRAVERSION =.*$$/EXTRAVERSION = $(XEXTRAVERSION)/g" Makefile - mv $(DIR_SRC)/linux-$(XVERS) $(DIR_SRC)/linux-$(VER) - ln -svf linux-$(VER) $(DIR_SRC)/linux # Linux Intermediate Queueing Device @@ -132,7 +117,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # Not report deprecated syscall 1.23 (for kudzu) # cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch - # ipp2p 0.8.2-ipfire cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch @@ -169,11 +153,10 @@ ifeq "$(KCFG)" "-omap" endif ifeq "$(KCFG)" "-rpi" - # Apply Raspberry Pi kernel patches. (only avail for 3.1.x kernel yet) + # Apply Raspberry Pi kernel patches. cd $(DIR_APP) && xzcat $(DIR_DL)/rpi-patches-$(RPI_PATCHES).patch.xz | patch -Np1 cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-bcm2835-alsamixer.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-bcm2835-limit_volume.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-bcm2708-sdhci_patches.patch endif ifeq "$(HEADERS)" "1" @@ -192,7 +175,7 @@ else cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config cd $(DIR_APP) && make CC="$(KGCC)" oldconfig cd $(DIR_APP) && make CC="$(KGCC)" clean - cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ $(PATCHLEVEL)-$(VERSUFIX)/' Makefile + cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ -$(VERSUFIX)/' Makefile ifeq "$(KCFG)" "-kirkwood" cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage diff --git a/src/patches/linux-3.2-bcm2708-sdhci_patches.patch b/src/patches/linux-3.2-bcm2708-sdhci_patches.patch deleted file mode 100644 index 060e8206f..000000000 --- a/src/patches/linux-3.2-bcm2708-sdhci_patches.patch +++ /dev/null @@ -1,138 +0,0 @@ -commit 872a8ff772ded51403bd8a46f80b1bf9706b76cd -Author: Paul Walmsley -Date: Mon Mar 12 10:58:00 2012 -0600 - - mmc: use really long write timeout to deal with crappy cards - - mmc: use really long write timeout to deal with crappy cards - - Several people have noticed that crappy SD cards take much longer to - complete multiple block writes than the 300ms that Linux specifies. - Try to work around this by using a three second write timeout instead. - - This is a generalized version of a patch from Chase Maupin - , whose patch description said: - - * With certain SD cards timeouts like the following have been seen - due to an improper calculation of the dto value: - mmcblk0: error -110 transferring data, sector 4126233, nr 8, - card status 0xc00 - * By removing the dto calculation and setting the timeout value - to the maximum specified by the SD card specification part A2 - section 2.2.15 these timeouts can be avoided. - * This change has been used by beagleboard users as well as the - Texas Instruments SDK without a negative impact. - * There are multiple discussion threads about this but the most - relevant ones are: - * http://talk.maemo.org/showthread.php?p=1000707#post1000707 - * http://www.mail-archive.com/linux-omap@vger.kernel.org/msg42213.html - * Original proposal for this fix was done by Sukumar Ghoral of - Texas Instruments - * Tested using a Texas Instruments AM335x EVM - - Signed-off-by: Paul Walmsley - Tested-by: Tony Lindgren - Signed-off-by: Chris Ball - -diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c -index d637982..a14ddf96 100644 ---- a/drivers/mmc/core/core.c -+++ b/drivers/mmc/core/core.c -@@ -396,10 +396,14 @@ void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card) - - if (data->flags & MMC_DATA_WRITE) - /* -- * The limit is really 250 ms, but that is -- * insufficient for some crappy cards. -+ * The MMC spec "It is strongly recommended -+ * for hosts to implement more than 500ms -+ * timeout value even if the card indicates -+ * the 250ms maximum busy length." Even the -+ * previous value of 300ms is known to be -+ * insufficient for some cards. - */ -- limit_us = 300000; -+ limit_us = 3000000; - else - limit_us = 100000; - -The folowing sdhci fixes rebased from rasperry pi github tree to kernel 3.2 to use -actial firmware that run emmc slot at 50Mhz. -Author: Arne Fitzenreiter - -diff -Naur linux-3.2.20.org/drivers/mmc/host/sdhci-bcm2708.c linux-3.2.20/drivers/mmc/host/sdhci-bcm2708.c ---- linux-3.2.20.org/drivers/mmc/host/sdhci-bcm2708.c 2012-06-12 00:18:23.000000000 +0200 -+++ linux-3.2.20/drivers/mmc/host/sdhci-bcm2708.c 2012-06-14 09:33:42.448194435 +0200 -@@ -328,12 +328,7 @@ - - static unsigned int sdhci_bcm2708_get_max_clock(struct sdhci_host *host) - { -- return 100000000; // this value is in Hz (100MHz/4) --} -- --static unsigned int sdhci_bcm2708_get_timeout_clock(struct sdhci_host *host) --{ -- return 100000; // this value is in kHz (100MHz/4) -+ return BCM2708_EMMC_CLOCK_FREQ; - } - - /*****************************************************************************\ -@@ -1222,12 +1217,7 @@ - #else - #error The BCM2708 SDHCI driver needs CONFIG_MMC_SDHCI_IO_ACCESSORS to be set - #endif -- //.enable_dma = NULL, -- //.set_clock = NULL, - .get_max_clock = sdhci_bcm2708_get_max_clock, -- //.get_min_clock = NULL, -- .get_timeout_clock = sdhci_bcm2708_get_timeout_clock, -- - .enable = sdhci_bcm2708_enable, - .disable = sdhci_bcm2708_disable, - .set_plat_power = sdhci_bcm2708_set_plat_power, -diff -Naur linux-3.2.20.org/drivers/mmc/host/sdhci-bcm2708.c linux-3.2.20/drivers/mmc/host/sdhci-bcm2708.c ---- linux-3.2.20.org/drivers/mmc/host/sdhci-bcm2708.c 2012-06-14 09:33:42.000000000 +0200 -+++ linux-3.2.20/drivers/mmc/host/sdhci-bcm2708.c 2012-06-14 09:47:20.635695042 +0200 -@@ -1277,7 +1277,10 @@ - host->irq = platform_get_irq(pdev, 0); - - host->quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION | -- SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK; -+ SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | -+ SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | -+ SDHCI_QUIRK_MISSING_CAPS | -+ SDHCI_QUIRK_NO_HISPD_BIT; - #ifdef CONFIG_MMC_SDHCI_BCM2708_DMA - host->flags = SDHCI_USE_PLATDMA; - #endif -diff -Naur linux-3.2.20.org/drivers/mmc/host/sdhci-bcm2708.c linux-3.2.20/drivers/mmc/host/sdhci-bcm2708.c ---- linux-3.2.20.org/drivers/mmc/host/sdhci-bcm2708.c 2012-06-14 10:03:31.000000000 +0200 -+++ linux-3.2.20/drivers/mmc/host/sdhci-bcm2708.c 2012-06-14 10:15:44.909133194 +0200 -@@ -71,6 +71,8 @@ - - #define BCM2708_SDHCI_SLEEP_TIMEOUT 1000 /* msecs */ - -+#define BCM2708_EMMC_CLOCK_FREQ 50000000 -+ - #define POWER_OFF 0 - #define POWER_LAZY_OFF 1 - #define POWER_ON 2 - -With the last revert Chris Boot has removed the UHS block at 3.3V -so it is needed to readd it to use some cards (eg. Verbatim 8GB Class10) -Author: Arne Fitzenreiter - -diff -Naur linux-3.2.20.org/drivers/mmc/host/sdhci.c linux-3.2.20/drivers/mmc/host/sdhci.c ---- linux-3.2.20.org/drivers/mmc/host/sdhci.c 2012-06-12 00:18:24.000000000 +0200 -+++ linux-3.2.20/drivers/mmc/host/sdhci.c 2012-06-14 12:47:25.435538000 +0200 -@@ -2930,6 +2930,10 @@ - if(host->ops->voltage_broken) - ocr_avail |= MMC_VDD_29_30 | MMC_VDD_30_31; - -+ /* No UHS Modes at 3.3V */ -+ mmc->caps &= ~(MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 | MMC_CAP_UHS_SDR104 | -+ MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_DDR50 ); -+ - mmc->ocr_avail = ocr_avail; - mmc->ocr_avail_sdio = ocr_avail; - if (host->ocr_avail_sdio) -- 2.39.2