diff --git a/debian/changelog b/debian/changelog index 1130ac0b6..890116d88 100644 --- a/debian/changelog +++ b/debian/changelog @@ -36,6 +36,7 @@ linux-2.6 (2.6.35-1~experimental.3) UNRELEASED; urgency=low [ Aurelien Jarno ] * Fix netfilter CONFIG_COMPAT support. * [sh4] set VIRTUALIZATION. + * [mips] Add an octeon flavour. [ maximilian attems] * Add stable 2.6.35.3 and 2.6.35.4. diff --git a/debian/config/mips/config.octeon b/debian/config/mips/config.octeon new file mode 100644 index 000000000..79129a1e9 --- /dev/null +++ b/debian/config/mips/config.octeon @@ -0,0 +1,123 @@ +## +## file: arch/mips/Kconfig +## +CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD=y +# CONFIG_32BIT is not set +CONFIG_64BIT=y +CONFIG_SMP=y +CONFIG_MIPS32_COMPAT=y +CONFIG_MIPS32_O32=y +CONFIG_MIPS32_N32=y +CONFIG_PCI=y + +## +## file: arch/mips/cavium-octeon/Kconfig +## +CONFIG_CAVIUM_OCTEON_SPECIFIC_OPTIONS=y +# CONFIG_CAVIUM_OCTEON_2ND_KERNEL is not set +CONFIG_CAVIUM_OCTEON_HW_FIX_UNALIGNED=y +CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE=1 +CONFIG_CAVIUM_OCTEON_LOCK_L2=y +CONFIG_CAVIUM_OCTEON_LOCK_L2_TLB=y +CONFIG_CAVIUM_OCTEON_LOCK_L2_EXCEPTION=y +CONFIG_CAVIUM_OCTEON_LOCK_L2_LOW_LEVEL_INTERRUPT=y +CONFIG_CAVIUM_OCTEON_LOCK_L2_INTERRUPT=y +CONFIG_CAVIUM_OCTEON_LOCK_L2_MEMCPY=y + +## +## file: drivers/ata/Kconfig +## +CONFIG_ATA=y +CONFIG_ATA_SFF=y +CONFIG_PATA_OCTEON_CF=y + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C=y + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_OCTEON=y + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y + +## +## file: drivers/mtd/Kconfig +## +CONFIG_MTD=y +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y + +## +## file: drivers/mtd/chips/Kconfig +## +CONFIG_MTD_CFI=y +CONFIG_MTD_CFI_AMDSTD=y + +## +## file: drivers/mtd/maps/Kconfig +## +CONFIG_MTD_PHYSMAP=y + +## +## file: drivers/net/octeon/Kconfig +## +CONFIG_OCTEON_MGMT_ETHERNET=m + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_DS1307=y + +## +## file: drivers/serial/Kconfig +## +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=2 +CONFIG_SERIAL_8250_RUNTIME_UARTS=2 + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y + +## +## file: drivers/scsi/megaraid/Kconfig.megaraid +## +CONFIG_MEGARAID_SAS=y + +## +## file: drivers/staging/octeon/Kconfig +## +CONFIG_OCTEON_ETHERNET=m + +## +## file: mm/Kconfig +## +CONFIG_SPARSEMEM_MANUAL=y + +## +## file: fs/ext2/Kconfig +## +CONFIG_EXT2_FS=y + +## +## file: fs/ext3/Kconfig +## +CONFIG_EXT3_FS=y + diff --git a/debian/config/mips/defines b/debian/config/mips/defines index 194a50119..5d62cef5c 100644 --- a/debian/config/mips/defines +++ b/debian/config/mips/defines @@ -6,6 +6,7 @@ flavours: sb1a-bcm91480b 4kc-malta 5kc-malta + octeon kernel-arch: mips [image] @@ -34,3 +35,7 @@ hardware-long: MIPS Malta boards [5kc-malta_description] hardware: MIPS Malta (64-bit) hardware-long: MIPS Malta boards (64-bit) + +[octeon_description] +hardware: Octeon +hardware-long: Cavium Networks Octeon diff --git a/debian/patches/bugfix/mips/octeon-gcc-4.4.patch b/debian/patches/bugfix/mips/octeon-gcc-4.4.patch new file mode 100644 index 000000000..ed04fbdce --- /dev/null +++ b/debian/patches/bugfix/mips/octeon-gcc-4.4.patch @@ -0,0 +1,44 @@ +commit 5c8974538afd97990d3730ef6fea731a34ef1f85 +Author: Florian Fainelli +Date: Thu Jul 29 00:13:07 2010 +0200 + + MIPS: Octeon: Workaround link failures with gcc-4.4.x 32-bits toolchains + + When building with a gcc-4.4.x toolchain that is configured to produce + 32-bits executables by default, we will produce __lshrti3 in sched_clock() + which is never resolved so the kernel fails to link. Unconditionally use + the inline assembly version as suggested by David Daney, which works around + the issue. + + Signed-off-by: Florian Fainelli + To: linux-mips@linux-mips.org + Patchwork: https://patchwork.linux-mips.org/patch/1514/ + Acked-by: David Daney + Signed-off-by: Ralf Baechle + +diff --git a/arch/mips/cavium-octeon/csrc-octeon.c b/arch/mips/cavium-octeon/csrc-octeon.c +index 0bf4bbe..36400d2 100644 +--- a/arch/mips/cavium-octeon/csrc-octeon.c ++++ b/arch/mips/cavium-octeon/csrc-octeon.c +@@ -53,7 +53,6 @@ static struct clocksource clocksource_mips = { + unsigned long long notrace sched_clock(void) + { + /* 64-bit arithmatic can overflow, so use 128-bit. */ +-#if (__GNUC__ < 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ <= 3)) + u64 t1, t2, t3; + unsigned long long rv; + u64 mult = clocksource_mips.mult; +@@ -73,13 +72,6 @@ unsigned long long notrace sched_clock(void) + : [cnt] "r" (cnt), [mult] "r" (mult), [shift] "r" (shift) + : "hi", "lo"); + return rv; +-#else +- /* GCC > 4.3 do it the easy way. */ +- unsigned int __attribute__((mode(TI))) t; +- t = read_c0_cvmcount(); +- t = t * clocksource_mips.mult; +- return (unsigned long long)(t >> clocksource_mips.shift); +-#endif + } + + void __init plat_time_init(void) diff --git a/debian/patches/series/1~experimental.3 b/debian/patches/series/1~experimental.3 index 67c130f4a..a05ec0b29 100644 --- a/debian/patches/series/1~experimental.3 +++ b/debian/patches/series/1~experimental.3 @@ -3,3 +3,4 @@ - bugfix/all/mm-fix-up-some-user-visible-effects-of-the-stack-gua.patch + bugfix/all/stable/2.6.35.3.patch + bugfix/all/stable/2.6.35.4.patch ++ bugfix/mips/octeon-gcc-4.4.patch