diff options
Diffstat (limited to 'target')
-rw-r--r-- | target/config/Config.in | 52 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/bsd-compatibility.patch (renamed from target/linux/patches/3.4.9/bsd-compatibility.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/cris-etrax.patch (renamed from target/linux/patches/3.4.9/cris-etrax.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/defaults.patch (renamed from target/linux/patches/3.4.9/defaults.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/gemalto.patch (renamed from target/linux/patches/3.4.9/gemalto.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/lemote-rfkill.patch (renamed from target/linux/patches/3.4.9/lemote-rfkill.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/mmc-host.patch (renamed from target/linux/patches/3.4.9/mmc-host.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/module-alloc-size-check.patch (renamed from target/linux/patches/3.4.9/module-alloc-size-check.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/non-static.patch (renamed from target/linux/patches/3.4.9/non-static.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/sparc-include.patch (renamed from target/linux/patches/3.4.9/sparc-include.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/startup.patch (renamed from target/linux/patches/3.4.9/startup.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/usb-defaults-off.patch (renamed from target/linux/patches/3.4.9/usb-defaults-off.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/uuid.patch (renamed from target/linux/patches/3.4.9/uuid.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/vga-cons-default-off.patch (renamed from target/linux/patches/3.4.9/vga-cons-default-off.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/wlan-cf.patch (renamed from target/linux/patches/3.4.9/wlan-cf.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.4.13/zlib-inflate.patch (renamed from target/linux/patches/3.4.9/zlib-inflate.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/brcm.patch (renamed from target/linux/patches/3.5.4/brcm.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/bsd-compatibility.patch (renamed from target/linux/patches/3.5.4/bsd-compatibility.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/cris-etrax.patch (renamed from target/linux/patches/3.5.4/cris-etrax.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/defaults.patch (renamed from target/linux/patches/3.5.4/defaults.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/gemalto.patch (renamed from target/linux/patches/3.5.4/gemalto.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/lemote-rfkill.patch (renamed from target/linux/patches/3.5.4/lemote-rfkill.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/mmc-host.patch (renamed from target/linux/patches/3.5.4/mmc-host.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/module-alloc-size-check.patch (renamed from target/linux/patches/3.5.4/module-alloc-size-check.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/mtd-rootfs.patch (renamed from target/linux/patches/3.5.4/mtd-rootfs.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/non-static.patch (renamed from target/linux/patches/3.5.4/non-static.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/startup.patch (renamed from target/linux/patches/3.5.4/startup.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/usb-defaults-off.patch (renamed from target/linux/patches/3.5.4/usb-defaults-off.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/uuid.patch (renamed from target/linux/patches/3.5.4/uuid.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/vga-cons-default-off.patch (renamed from target/linux/patches/3.5.4/vga-cons-default-off.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/wlan-cf.patch (renamed from target/linux/patches/3.5.4/wlan-cf.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.5.6/zlib-inflate.patch (renamed from target/linux/patches/3.5.4/zlib-inflate.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/brcm.patch | 467 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/bsd-compatibility.patch | 2512 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/cris-etrax.patch | 12 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/defaults.patch | 22 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/gemalto.patch | 11 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/lemote-rfkill.patch | 21 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/mmc-host.patch | 36 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/module-alloc-size-check.patch | 21 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/mtd-rootfs.patch | 26 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/non-static.patch | 33 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/startup.patch | 20 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/usb-defaults-off.patch | 20 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/uuid.patch | 263 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/vga-cons-default-off.patch | 12 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/wlan-cf.patch | 11 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/zlib-inflate.patch | 12 | ||||
-rw-r--r-- | target/mips/sys-available/qemu-mips64el | 16 | ||||
-rw-r--r-- | target/x86_64/target.mk | 2 |
50 files changed, 3547 insertions, 22 deletions
diff --git a/target/config/Config.in b/target/config/Config.in index 32a254900..d31bd25a9 100644 --- a/target/config/Config.in +++ b/target/config/Config.in @@ -33,6 +33,7 @@ choice prompt "Target Kernel" depends on ADK_TARGET_SYSTEM_LEMOTE_YEELONG \ || ADK_TARGET_SYSTEM_QEMU_MIPS64 \ + || ADK_TARGET_SYSTEM_QEMU_MIPS64EL \ || ADK_LINUX_X86_64 config ADK_TARGET_KERNEL64 @@ -92,14 +93,17 @@ depends on ADK_TARGET_KERNEL64 && ADK_LINUX_X86_64 config ADK_TARGET_ABI_64 boolean "64 Bit ABI" select ADK_64 + select ADK_TARGET_MULTILIB_X86_64 if ADK_TARGET_WITH_MULTILIB config ADK_TARGET_ABI_X32 boolean "x32 ABI (new)" select ADK_x32 + select ADK_TARGET_MULTILIB_X86_X32 if ADK_TARGET_WITH_MULTILIB config ADK_TARGET_ABI_32 boolean "32 Bit ABI" select ADK_32 + select ADK_TARGET_MULTILIB_X86_32 if ADK_TARGET_WITH_MULTILIB endchoice @@ -108,7 +112,8 @@ config ADK_TARGET_LIBC_PATH string default "lib32" if ADK_n32 default "lib64" if ADK_n64 \ - || ADK_64 || ADK_LINUX_SPARC64 \ + || ADK_64 \ + || ADK_LINUX_SPARC64 \ || ADK_LINUX_PPC64 \ || ADK_LINUX_X86_64 default "libx32" if ADK_x32 @@ -117,41 +122,40 @@ config ADK_TARGET_LIBC_PATH menu "Target multilib support" depends on ADK_TARGET_KERNEL64 && \ - ADK_LINUX_X86_64 || \ - ADK_LINUX_MIPS + ( ADK_LINUX_X86_64 || ADK_LINUX_MIPS ) config ADK_TARGET_WITH_MULTILIB boolean "multilib support" +config ADK_TARGET_MULTILIB_MIPS_64 + boolean "64 bit libraries (n64 abi)" + depends on ADK_LINUX_MIPS && ADK_TARGET_WITH_MULTILIB + default y if ADK_n64 + +config ADK_TARGET_MULTILIB_MIPS_N32 + boolean "32 bit libraries (n32 abi)" + depends on ADK_LINUX_MIPS && ADK_TARGET_WITH_MULTILIB + default y if ADK_n32 + +config ADK_TARGET_MULTILIB_MIPS_O32 + boolean "32 bit libraries (o32 abi)" + depends on ADK_LINUX_MIPS && ADK_TARGET_WITH_MULTILIB + default y if ADK_o32 + config ADK_TARGET_MULTILIB_X86_64 boolean "64 bit libraries" depends on ADK_LINUX_X86_64 && ADK_TARGET_WITH_MULTILIB - default y + default y if ADK_64 config ADK_TARGET_MULTILIB_X86_32 boolean "32 bit libraries" depends on ADK_LINUX_X86_64 && ADK_TARGET_WITH_MULTILIB + default y if ADK_32 config ADK_TARGET_MULTILIB_X86_X32 boolean "x32 bit libraries" depends on ADK_LINUX_X86_64 && ADK_TARGET_WITH_MULTILIB - -choice -prompt "Default Library (compile all applications with this library)" -config ADK_TARGET_MULTILIB_X86_64_DEF - boolean "64 Bit libraries as default" - depends on ADK_TARGET_MULTILIB_X86_64 - -config ADK_TARGET_MULTILIB_X86_32_DEF - boolean "32 Bit libraries as default" - depends on ADK_TARGET_MULTILIB_X86_32 - -config ADK_TARGET_MULTILIB_X86_X32_DEF - boolean "x32 Bit libraries as default" - depends on ADK_TARGET_MULTILIB_X86_X32 - -endchoice -endmenu + default y if ADK_x32 config ADK_MULTILIB_TARGET string @@ -178,6 +182,8 @@ config ADK_MULTILIB_TARGET && ADK_TARGET_MULTILIB_X86_X32 +endmenu + # submodel support # choice @@ -484,6 +490,10 @@ config ADK_TARGET_ABI_CFLAGS default "-mx32" if ADK_TARGET_ABI_X32 default "-m64" if ADK_TARGET_ABI_64 +config ADK_TARGET_ABI_LDFLAGS + string + default "-Wl,-m -Wl,elf_i386" if ADK_TARGET_ABI_32 + config ADK_TARGET_KERNEL_LDFLAGS string default "-mabi=64 -m elf64ltsmip" if ADK_TARGET_ABI_N32 diff --git a/target/linux/patches/3.4.9/bsd-compatibility.patch b/target/linux/patches/3.4.13/bsd-compatibility.patch index 9e91a62de..9e91a62de 100644 --- a/target/linux/patches/3.4.9/bsd-compatibility.patch +++ b/target/linux/patches/3.4.13/bsd-compatibility.patch diff --git a/target/linux/patches/3.4.9/cris-etrax.patch b/target/linux/patches/3.4.13/cris-etrax.patch index a80d9a8b8..a80d9a8b8 100644 --- a/target/linux/patches/3.4.9/cris-etrax.patch +++ b/target/linux/patches/3.4.13/cris-etrax.patch diff --git a/target/linux/patches/3.4.9/defaults.patch b/target/linux/patches/3.4.13/defaults.patch index 58aae610b..58aae610b 100644 --- a/target/linux/patches/3.4.9/defaults.patch +++ b/target/linux/patches/3.4.13/defaults.patch diff --git a/target/linux/patches/3.4.9/gemalto.patch b/target/linux/patches/3.4.13/gemalto.patch index 65f7af1d7..65f7af1d7 100644 --- a/target/linux/patches/3.4.9/gemalto.patch +++ b/target/linux/patches/3.4.13/gemalto.patch diff --git a/target/linux/patches/3.4.9/lemote-rfkill.patch b/target/linux/patches/3.4.13/lemote-rfkill.patch index a61488434..a61488434 100644 --- a/target/linux/patches/3.4.9/lemote-rfkill.patch +++ b/target/linux/patches/3.4.13/lemote-rfkill.patch diff --git a/target/linux/patches/3.4.9/mmc-host.patch b/target/linux/patches/3.4.13/mmc-host.patch index 3d0e37add..3d0e37add 100644 --- a/target/linux/patches/3.4.9/mmc-host.patch +++ b/target/linux/patches/3.4.13/mmc-host.patch diff --git a/target/linux/patches/3.4.9/module-alloc-size-check.patch b/target/linux/patches/3.4.13/module-alloc-size-check.patch index a792ac60a..a792ac60a 100644 --- a/target/linux/patches/3.4.9/module-alloc-size-check.patch +++ b/target/linux/patches/3.4.13/module-alloc-size-check.patch diff --git a/target/linux/patches/3.4.9/non-static.patch b/target/linux/patches/3.4.13/non-static.patch index a967703d0..a967703d0 100644 --- a/target/linux/patches/3.4.9/non-static.patch +++ b/target/linux/patches/3.4.13/non-static.patch diff --git a/target/linux/patches/3.4.9/sparc-include.patch b/target/linux/patches/3.4.13/sparc-include.patch index 2f8ffd061..2f8ffd061 100644 --- a/target/linux/patches/3.4.9/sparc-include.patch +++ b/target/linux/patches/3.4.13/sparc-include.patch diff --git a/target/linux/patches/3.4.9/startup.patch b/target/linux/patches/3.4.13/startup.patch index 68e8987b0..68e8987b0 100644 --- a/target/linux/patches/3.4.9/startup.patch +++ b/target/linux/patches/3.4.13/startup.patch diff --git a/target/linux/patches/3.4.9/usb-defaults-off.patch b/target/linux/patches/3.4.13/usb-defaults-off.patch index 31367108a..31367108a 100644 --- a/target/linux/patches/3.4.9/usb-defaults-off.patch +++ b/target/linux/patches/3.4.13/usb-defaults-off.patch diff --git a/target/linux/patches/3.4.9/uuid.patch b/target/linux/patches/3.4.13/uuid.patch index ca23accdf..ca23accdf 100644 --- a/target/linux/patches/3.4.9/uuid.patch +++ b/target/linux/patches/3.4.13/uuid.patch diff --git a/target/linux/patches/3.4.9/vga-cons-default-off.patch b/target/linux/patches/3.4.13/vga-cons-default-off.patch index 178aeeeb9..178aeeeb9 100644 --- a/target/linux/patches/3.4.9/vga-cons-default-off.patch +++ b/target/linux/patches/3.4.13/vga-cons-default-off.patch diff --git a/target/linux/patches/3.4.9/wlan-cf.patch b/target/linux/patches/3.4.13/wlan-cf.patch index fc20759e2..fc20759e2 100644 --- a/target/linux/patches/3.4.9/wlan-cf.patch +++ b/target/linux/patches/3.4.13/wlan-cf.patch diff --git a/target/linux/patches/3.4.9/zlib-inflate.patch b/target/linux/patches/3.4.13/zlib-inflate.patch index 58e1f6d21..58e1f6d21 100644 --- a/target/linux/patches/3.4.9/zlib-inflate.patch +++ b/target/linux/patches/3.4.13/zlib-inflate.patch diff --git a/target/linux/patches/3.5.4/brcm.patch b/target/linux/patches/3.5.6/brcm.patch index a94b2302d..a94b2302d 100644 --- a/target/linux/patches/3.5.4/brcm.patch +++ b/target/linux/patches/3.5.6/brcm.patch diff --git a/target/linux/patches/3.5.4/bsd-compatibility.patch b/target/linux/patches/3.5.6/bsd-compatibility.patch index 9e91a62de..9e91a62de 100644 --- a/target/linux/patches/3.5.4/bsd-compatibility.patch +++ b/target/linux/patches/3.5.6/bsd-compatibility.patch diff --git a/target/linux/patches/3.5.4/cris-etrax.patch b/target/linux/patches/3.5.6/cris-etrax.patch index a80d9a8b8..a80d9a8b8 100644 --- a/target/linux/patches/3.5.4/cris-etrax.patch +++ b/target/linux/patches/3.5.6/cris-etrax.patch diff --git a/target/linux/patches/3.5.4/defaults.patch b/target/linux/patches/3.5.6/defaults.patch index 58aae610b..58aae610b 100644 --- a/target/linux/patches/3.5.4/defaults.patch +++ b/target/linux/patches/3.5.6/defaults.patch diff --git a/target/linux/patches/3.5.4/gemalto.patch b/target/linux/patches/3.5.6/gemalto.patch index 65f7af1d7..65f7af1d7 100644 --- a/target/linux/patches/3.5.4/gemalto.patch +++ b/target/linux/patches/3.5.6/gemalto.patch diff --git a/target/linux/patches/3.5.4/lemote-rfkill.patch b/target/linux/patches/3.5.6/lemote-rfkill.patch index a61488434..a61488434 100644 --- a/target/linux/patches/3.5.4/lemote-rfkill.patch +++ b/target/linux/patches/3.5.6/lemote-rfkill.patch diff --git a/target/linux/patches/3.5.4/mmc-host.patch b/target/linux/patches/3.5.6/mmc-host.patch index 3d0e37add..3d0e37add 100644 --- a/target/linux/patches/3.5.4/mmc-host.patch +++ b/target/linux/patches/3.5.6/mmc-host.patch diff --git a/target/linux/patches/3.5.4/module-alloc-size-check.patch b/target/linux/patches/3.5.6/module-alloc-size-check.patch index a792ac60a..a792ac60a 100644 --- a/target/linux/patches/3.5.4/module-alloc-size-check.patch +++ b/target/linux/patches/3.5.6/module-alloc-size-check.patch diff --git a/target/linux/patches/3.5.4/mtd-rootfs.patch b/target/linux/patches/3.5.6/mtd-rootfs.patch index 775d5fc80..775d5fc80 100644 --- a/target/linux/patches/3.5.4/mtd-rootfs.patch +++ b/target/linux/patches/3.5.6/mtd-rootfs.patch diff --git a/target/linux/patches/3.5.4/non-static.patch b/target/linux/patches/3.5.6/non-static.patch index a967703d0..a967703d0 100644 --- a/target/linux/patches/3.5.4/non-static.patch +++ b/target/linux/patches/3.5.6/non-static.patch diff --git a/target/linux/patches/3.5.4/startup.patch b/target/linux/patches/3.5.6/startup.patch index 68e8987b0..68e8987b0 100644 --- a/target/linux/patches/3.5.4/startup.patch +++ b/target/linux/patches/3.5.6/startup.patch diff --git a/target/linux/patches/3.5.4/usb-defaults-off.patch b/target/linux/patches/3.5.6/usb-defaults-off.patch index 54dff2bd4..54dff2bd4 100644 --- a/target/linux/patches/3.5.4/usb-defaults-off.patch +++ b/target/linux/patches/3.5.6/usb-defaults-off.patch diff --git a/target/linux/patches/3.5.4/uuid.patch b/target/linux/patches/3.5.6/uuid.patch index ca23accdf..ca23accdf 100644 --- a/target/linux/patches/3.5.4/uuid.patch +++ b/target/linux/patches/3.5.6/uuid.patch diff --git a/target/linux/patches/3.5.4/vga-cons-default-off.patch b/target/linux/patches/3.5.6/vga-cons-default-off.patch index 178aeeeb9..178aeeeb9 100644 --- a/target/linux/patches/3.5.4/vga-cons-default-off.patch +++ b/target/linux/patches/3.5.6/vga-cons-default-off.patch diff --git a/target/linux/patches/3.5.4/wlan-cf.patch b/target/linux/patches/3.5.6/wlan-cf.patch index fc20759e2..fc20759e2 100644 --- a/target/linux/patches/3.5.4/wlan-cf.patch +++ b/target/linux/patches/3.5.6/wlan-cf.patch diff --git a/target/linux/patches/3.5.4/zlib-inflate.patch b/target/linux/patches/3.5.6/zlib-inflate.patch index 58e1f6d21..58e1f6d21 100644 --- a/target/linux/patches/3.5.4/zlib-inflate.patch +++ b/target/linux/patches/3.5.6/zlib-inflate.patch diff --git a/target/linux/patches/3.6.1/brcm.patch b/target/linux/patches/3.6.1/brcm.patch new file mode 100644 index 000000000..a94b2302d --- /dev/null +++ b/target/linux/patches/3.6.1/brcm.patch @@ -0,0 +1,467 @@ +diff -Nur linux-3.5.orig//arch/mips/bcm47xx/Makefile linux-3.5/arch/mips/bcm47xx/Makefile +--- linux-3.5.orig//arch/mips/bcm47xx/Makefile 2012-07-21 22:58:29.000000000 +0200 ++++ linux-3.5/arch/mips/bcm47xx/Makefile 2012-07-31 11:01:24.000000000 +0200 +@@ -3,5 +3,4 @@ + # under Linux. + # + +-obj-y += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o sprom.o +-obj-$(CONFIG_BCM47XX_SSB) += wgt634u.o ++obj-y += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o sprom.o platform.o +diff -Nur linux-3.5.orig//arch/mips/bcm47xx/platform.c linux-3.5/arch/mips/bcm47xx/platform.c +--- linux-3.5.orig//arch/mips/bcm47xx/platform.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.5/arch/mips/bcm47xx/platform.c 2012-07-31 23:56:35.000000000 +0200 +@@ -0,0 +1,146 @@ ++/* ++ * This file is subject to the terms and conditions of the GNU General Public ++ * License. See the file "COPYING" in the main directory of this archive ++ * for more details. ++ * ++ * Copyright (C) 2010, 2011 Waldemar Brodkorb <wbx@openadk.org> ++ * Copyright © 2007, 2011 Thorsten Glaser <tg@freewrt.org> ++ */ ++ ++#include <linux/platform_device.h> ++#include <linux/module.h> ++#include <linux/mtd/physmap.h> ++#include <linux/ssb/ssb.h> ++ ++#include <asm/mach-bcm47xx/bcm47xx.h> ++#include <asm/mach-bcm47xx/nvram.h> ++ ++#define CFGFS_FLASH_SIZE (128 * 1024) ++ ++static struct mtd_partition bcm47xx_partitions[] = { ++#define SLOT_CFE 0 ++ { ++ .name = "cfe", ++ .offset = 0, ++ .size = BCM47XX_OVERRIDE_CFESIZE, ++ .mask_flags = MTD_WRITEABLE /* force read-only */ ++ }, ++#define SLOT_LINUX 1 ++ { ++ .name = "linux", ++ .offset = 0, ++ .size = 0, ++ }, ++#define SLOT_ROOTFS 2 ++ { ++ .name = "rootfs", ++ .offset = 0, ++ .size = 0, ++ }, ++#define SLOT_CFGFS 3 ++ { ++ .name = "cfgfs", ++ .offset = 0, ++ .size = 0, ++ }, ++#define SLOT_NVRAM 4 ++ { ++ .name = "nvram", ++ .offset = 0, ++ .size = 0, ++ }, ++}; ++ ++static struct physmap_flash_data bcm47xx_flash_data = { ++ .parts = bcm47xx_partitions, ++ .nr_parts = ARRAY_SIZE(bcm47xx_partitions) ++}; ++ ++static struct resource bcm47xx_flash_resource = { ++ .flags = IORESOURCE_MEM, ++}; ++ ++static struct platform_device bcm47xx_flash = { ++ .name = "physmap-flash", ++ .id = 0, ++ .dev = { .platform_data = &bcm47xx_flash_data, }, ++ .resource = &bcm47xx_flash_resource, ++ .num_resources = 1, ++}; ++ ++static struct platform_device *bcm47xx_devices[] __initdata = { ++ &bcm47xx_flash, ++}; ++ ++struct bcm47xx_trx_header { ++#define BCM47XX_TRX_MAGIC 0x30524448 ++ u32 magic; ++ u32 len; ++ u32 crc32; ++ u32 flag_version; ++ u32 offsets[3]; ++}; ++ ++#define UPTODOWN(slot, psize) do { \ ++ posn -= psize; left -= psize; \ ++ bcm47xx_partitions[slot].offset = posn; \ ++ bcm47xx_partitions[slot].size = psize; \ ++} while (/* CONSTCOND */ 0) ++ ++static int __init bcm47xx_register_devices(void) ++{ ++ u32 flash_size; ++ size_t left, posn; ++ struct ssb_mipscore *mcore = &bcm47xx_bus.ssb.mipscore; ++ struct bcm47xx_trx_header *trx_hdr; ++ ++ trx_hdr = (void *)KSEG1ADDR(mcore->flash_window + BCM47XX_OVERRIDE_CFESIZE); ++ ++ /* devices might have 2, 4 or 8 MB flash size */ ++#ifdef BCM47XX_OVERRIDE_FLASHSIZE ++ flash_size = BCM47XX_OVERRIDE_FLASHSIZE; ++ mcore->flash_window_size = flash_size; ++#define BCM47XX_OVERRODE_FLASHSIZE " (overridden)" ++#else ++ flash_size = mcore->flash_window_size; ++#define BCM47XX_OVERRODE_FLASHSIZE "" ++#endif ++ printk(KERN_INFO "FLASH SIZE%s: %x\n", BCM47XX_OVERRODE_FLASHSIZE, ++ flash_size); ++ ++ left = flash_size - BCM47XX_OVERRIDE_CFESIZE; ++ posn = flash_size; ++ UPTODOWN(SLOT_NVRAM, BCM47XX_OVERRIDE_NVRAMSIZE); ++ UPTODOWN(SLOT_CFGFS, CFGFS_FLASH_SIZE); ++ bcm47xx_partitions[SLOT_LINUX].offset = BCM47XX_OVERRIDE_CFESIZE; ++ bcm47xx_partitions[SLOT_LINUX].size = left; ++ ++ if (trx_hdr->magic == BCM47XX_TRX_MAGIC) { ++ bcm47xx_partitions[SLOT_ROOTFS].offset = ++ bcm47xx_partitions[SLOT_LINUX].offset + ++ trx_hdr->offsets[1]; ++ bcm47xx_partitions[SLOT_ROOTFS].size = ++ bcm47xx_partitions[SLOT_LINUX].size - ++ trx_hdr->offsets[1]; ++ } else ++ printk("bcm47xx/platform: no TRX header found\n"); ++ ++ printk(KERN_INFO "=== Flash map dump ===\n"); ++ for (posn = 0; posn < bcm47xx_flash_data.nr_parts; ++posn) ++ printk(KERN_INFO " #%u %08X @%08X '%s'\n", ++ (unsigned int)posn, ++ (unsigned int)bcm47xx_partitions[posn].size, ++ (unsigned int)bcm47xx_partitions[posn].offset, ++ bcm47xx_partitions[posn].name); ++ printk(KERN_INFO "=== Hope this works, have a nice day\n"); ++ ++ bcm47xx_flash_data.width = mcore->flash_buswidth; ++ bcm47xx_flash_resource.start = mcore->flash_window; ++ bcm47xx_flash_resource.end = mcore->flash_window ++ + mcore->flash_window_size ++ - 1; ++ return platform_add_devices(bcm47xx_devices, ++ ARRAY_SIZE(bcm47xx_devices)); ++} ++ ++device_initcall(bcm47xx_register_devices); +Binary files linux-3.5.orig//arch/mips/bcm47xx/.wgt634u.c.swp and linux-3.5/arch/mips/bcm47xx/.wgt634u.c.swp differ +diff -Nur linux-3.5.orig//arch/mips/boot/compressed/decompress.c linux-3.5/arch/mips/boot/compressed/decompress.c +--- linux-3.5.orig//arch/mips/boot/compressed/decompress.c 2012-07-21 22:58:29.000000000 +0200 ++++ linux-3.5/arch/mips/boot/compressed/decompress.c 2012-07-31 11:00:54.000000000 +0200 +@@ -43,7 +43,7 @@ + /* activate the code for pre-boot environment */ + #define STATIC static + +-#ifdef CONFIG_KERNEL_GZIP ++#if defined(CONFIG_KERNEL_GZIP) || defined(CONFIG_KERNEL_XZ) + void *memcpy(void *dest, const void *src, size_t n) + { + int i; +@@ -54,6 +54,8 @@ + d[i] = s[i]; + return dest; + } ++#endif ++#ifdef CONFIG_KERNEL_GZIP + #include "../../../../lib/decompress_inflate.c" + #endif + +@@ -78,6 +80,10 @@ + #include "../../../../lib/decompress_unlzo.c" + #endif + ++#ifdef CONFIG_KERNEL_XZ ++#include "../../../../lib/decompress_unxz.c" ++#endif ++ + void decompress_kernel(unsigned long boot_heap_start) + { + unsigned long zimage_start, zimage_size; +diff -Nur linux-3.5.orig//arch/mips/boot/compressed/Makefile linux-3.5/arch/mips/boot/compressed/Makefile +--- linux-3.5.orig//arch/mips/boot/compressed/Makefile 2012-07-21 22:58:29.000000000 +0200 ++++ linux-3.5/arch/mips/boot/compressed/Makefile 2012-07-31 11:00:54.000000000 +0200 +@@ -44,6 +44,7 @@ + tool_$(CONFIG_KERNEL_BZIP2) = bzip2 + tool_$(CONFIG_KERNEL_LZMA) = lzma + tool_$(CONFIG_KERNEL_LZO) = lzo ++tool_$(CONFIG_KERNEL_XZ) = xzkern + + targets += vmlinux.bin.z + $(obj)/vmlinux.bin.z: $(obj)/vmlinux.bin FORCE +@@ -58,8 +59,13 @@ + # Calculate the load address of the compressed kernel image + hostprogs-y := calc_vmlinuz_load_addr + ++ifdef CONFIG_BCM47XX ++# XXX just after CFE, just pray the address is static ++VMLINUZ_LOAD_ADDRESS = 0xffffffff80900000 ++else + VMLINUZ_LOAD_ADDRESS = $(shell $(obj)/calc_vmlinuz_load_addr \ + $(obj)/vmlinux.bin $(VMLINUX_LOAD_ADDRESS)) ++endif + + vmlinuzobjs-y += $(obj)/piggy.o + +@@ -105,4 +111,12 @@ + vmlinuz.srec: vmlinuz + $(call cmd,objcopy) + +-clean-files := $(objtree)/vmlinuz $(objtree)/vmlinuz.{32,ecoff,bin,srec} ++AFLAGS_selfreloc.o := -DVMLINUZ_LOAD_ADDRESS=$(VMLINUZ_LOAD_ADDRESS) ++CPPFLAGS_selfreloc.lds := $(KBUILD_CFLAGS) ++ ++arch/mips/boot/compressed/selfreloc.o: arch/mips/boot/compressed/selfreloc.S vmlinuz.bin FORCE ++ ++vmlinuz.elf: arch/mips/boot/compressed/selfreloc.o arch/mips/boot/compressed/selfreloc.lds FORCE ++ $(LD) $(LDFLAGS) -T arch/mips/boot/compressed/selfreloc.lds arch/mips/boot/compressed/selfreloc.o -o $@ ++ ++clean-files := $(objtree)/vmlinuz $(objtree)/vmlinuz.{32,ecoff,bin,srec,elf} $(objtree)/arch/mips/boot/compressed/selfreloc.{o,lds} |