From c923379e8acc41ae2f7ae73da0f81dcf30ba91b7 Mon Sep 17 00:00:00 2001 From: Ulf Samuelsson Date: Sat, 20 Dec 2008 22:19:38 +0000 Subject: Add 2.6.27.7 patches for AVR32 --- .../Atmel/arch-avr32/Config.in.linux.patches | 7 + .../linux-2.6.27.6-100-avr32-atmel.1.patch | 26786 +++++++++++++++++++ ...00-avr32-remove.note.gnu.build-id-section.patch | 27 + ...27.6-201-avr32-atmel_mpopfb-disable-debug.patch | 23 + ...mpopfb-add-signal-to-disable-line-caching.patch | 59 + ....27.6-203-avr32-fix-arch-header-byteorder.patch | 35 + ...4-avr32-ap700x-fix-det_pin-for-nand-flash.patch | 31 + 7 files changed, 26968 insertions(+) create mode 100644 target/device/Atmel/arch-avr32/kernel-patches-2.6.27.6/linux-2.6.27.6-100-avr32-atmel.1.patch create mode 100644 target/device/Atmel/arch-avr32/kernel-patches-2.6.27.6/linux-2.6.27.6-200-avr32-remove.note.gnu.build-id-section.patch create mode 100644 target/device/Atmel/arch-avr32/kernel-patches-2.6.27.6/linux-2.6.27.6-201-avr32-atmel_mpopfb-disable-debug.patch create mode 100644 target/device/Atmel/arch-avr32/kernel-patches-2.6.27.6/linux-2.6.27.6-202-avr32-atmel_mpopfb-add-signal-to-disable-line-caching.patch create mode 100644 target/device/Atmel/arch-avr32/kernel-patches-2.6.27.6/linux-2.6.27.6-203-avr32-fix-arch-header-byteorder.patch create mode 100644 target/device/Atmel/arch-avr32/kernel-patches-2.6.27.6/linux-2.6.27.6-204-avr32-ap700x-fix-det_pin-for-nand-flash.patch (limited to 'target') diff --git a/target/device/Atmel/arch-avr32/Config.in.linux.patches b/target/device/Atmel/arch-avr32/Config.in.linux.patches index 5e5a39ec3..a8bcdbf1b 100644 --- a/target/device/Atmel/arch-avr32/Config.in.linux.patches +++ b/target/device/Atmel/arch-avr32/Config.in.linux.patches @@ -2,6 +2,7 @@ choice prompt "Add AVR32 specific patches" depends on BR2_KERNEL_ARCH_PATCH_ENABLED depends on BR2_avr32 + default BR2_ARCH_AVR32_2_6_27_6 if BR2_LINUX_2_6_27_6 default BR2_ARCH_AVR32_2_6_25_10 if BR2_LINUX_2_6_25 default BR2_ARCH_AVR32_2_6_24 if BR2_LINUX_2_6_24 default BR2_ARCH_AVR32_2_6_23 if BR2_LINUX_2_6_23 @@ -13,6 +14,11 @@ choice help Select a patch to add to the Linux kernel +config BR2_ARCH_AVR32_2_6_27_6 + bool "2.6.27.6" + help + Apply the avr32 linux-2.6.27.6 patches + config BR2_ARCH_AVR32_2_6_25_10 bool "2.6.25.10" help @@ -54,6 +60,7 @@ config BR2_KERNEL_ARCH_PATCH_VERSION string depends on BR2_KERNEL_ARCH_PATCH_ENABLED depends on BR2_avr32 + default "2.6.27.6" if BR2_ARCH_AVR32_2_6_27_6 default "2.6.25.10" if BR2_ARCH_AVR32_2_6_25_10 default "2.6.24" if BR2_ARCH_AVR32_2_6_24 default "2.6.22.10" if BR2_ARCH_AVR32_2_6_22_10 diff --git a/target/device/Atmel/arch-avr32/kernel-patches-2.6.27.6/linux-2.6.27.6-100-avr32-atmel.1.patch b/target/device/Atmel/arch-avr32/kernel-patches-2.6.27.6/linux-2.6.27.6-100-avr32-atmel.1.patch new file mode 100644 index 000000000..11bcdae04 --- /dev/null +++ b/target/device/Atmel/arch-avr32/kernel-patches-2.6.27.6/linux-2.6.27.6-100-avr32-atmel.1.patch @@ -0,0 +1,26786 @@ +diff --git a/arch/arm/mach-at91/include/mach/cpu.h b/arch/arm/mach-at91/include/mach/cpu.h +index dbfd9f7..b2a96fe 100644 +--- a/arch/arm/mach-at91/include/mach/cpu.h ++++ b/arch/arm/mach-at91/include/mach/cpu.h +@@ -99,5 +99,6 @@ static inline unsigned long at91_arch_identify(void) + * definitions may reduce clutter in common drivers. + */ + #define cpu_is_at32ap7000() (0) ++#define cpu_is_at32ap7200() (0) + + #endif +diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig +index 7c239a9..6cef643 100644 +--- a/arch/avr32/Kconfig ++++ b/arch/avr32/Kconfig +@@ -83,6 +83,18 @@ config MMU + config PERFORMANCE_COUNTERS + bool + ++# The old "PIO" portmux/GPIO module used on AT32AP700x ++config PORTMUX_PIO ++ bool ++ ++# The new "GPIO" portmux/GPIO module, version 2 ++config PORTMUX_GPIO_V2 ++ bool ++ ++# Asynchronous Timer clocksource/clockevent driver ++config TIMER_AST ++ bool ++ + config PLATFORM_AT32AP + bool + select SUBARCH_AVR32B +@@ -99,6 +111,7 @@ config PLATFORM_AT32AP + config CPU_AT32AP700X + bool + select PLATFORM_AT32AP ++ select PORTMUX_PIO + config CPU_AT32AP7000 + bool + select CPU_AT32AP700X +@@ -109,6 +122,16 @@ config CPU_AT32AP7002 + bool + select CPU_AT32AP700X + ++# AP7200 derivatives ++config CPU_AT32AP720X ++ bool ++ select PLATFORM_AT32AP ++ select TIMER_AST ++ select PORTMUX_GPIO_V2 ++config CPU_AT32AP7200 ++ bool ++ select CPU_AT32AP720X ++ + choice + prompt "AVR32 board type" + default BOARD_ATSTK1000 +@@ -119,11 +142,19 @@ config BOARD_ATSTK1000 + config BOARD_ATNGW100 + bool "ATNGW100 Network Gateway" + select CPU_AT32AP7000 ++ ++config BOARD_FAVR_32 ++ bool "Favr-32 LCD-board" ++ select CPU_AT32AP7000 ++ ++config BOARD_MIMC200 ++ bool "MIMC200 CPU board" ++ select CPU_AT32AP7000 + endchoice + +-if BOARD_ATSTK1000 + source "arch/avr32/boards/atstk1000/Kconfig" +-endif ++source "arch/avr32/boards/atngw100/Kconfig" ++source "arch/avr32/boards/favr-32/Kconfig" + + choice + prompt "Boot loader type" +@@ -138,14 +169,17 @@ source "arch/avr32/mach-at32ap/Kconfig" + config LOAD_ADDRESS + hex + default 0x10000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y ++ default 0x10000000 if LOADER_U_BOOT=y && CPU_AT32AP720X=y + + config ENTRY_ADDRESS + hex + default 0x90000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y ++ default 0x90000000 if LOADER_U_BOOT=y && CPU_AT32AP720X=y + + config PHYS_OFFSET + hex + default 0x10000000 if CPU_AT32AP700X=y ++ default 0x10000000 if CPU_AT32AP720X=y + + source "kernel/Kconfig.preempt" + +diff --git a/arch/avr32/Makefile b/arch/avr32/Makefile +index c9e1f0b..b088e10 100644 +--- a/arch/avr32/Makefile ++++ b/arch/avr32/Makefile +@@ -33,6 +33,8 @@ head-y += arch/avr32/kernel/head.o + core-y += $(machdirs) + core-$(CONFIG_BOARD_ATSTK1000) += arch/avr32/boards/atstk1000/ + core-$(CONFIG_BOARD_ATNGW100) += arch/avr32/boards/atngw100/ ++core-$(CONFIG_BOARD_FAVR_32) += arch/avr32/boards/favr-32/ ++core-$(CONFIG_BOARD_MIMC200) += arch/avr32/boards/mimc200/ + core-$(CONFIG_LOADER_U_BOOT) += arch/avr32/boot/u-boot/ + core-y += arch/avr32/kernel/ + core-y += arch/avr32/mm/ +diff --git a/arch/avr32/boards/atngw100/Kconfig b/arch/avr32/boards/atngw100/Kconfig +new file mode 100644 +index 0000000..b3f9947 +--- /dev/null ++++ b/arch/avr32/boards/atngw100/Kconfig +@@ -0,0 +1,35 @@ ++# NGW100 customization ++ ++if BOARD_ATNGW100 ++ ++config BOARD_ATNGW100_EVKLCD10X ++ bool "Add support for EVKLCD10X addon board" ++ help ++ This enables support for the EVKLCD100 (QVGA) or EVKLCD101 (VGA) ++ addon board for the NGW100. By enabling this the LCD controller and ++ AC97 controller is added as platform devices. ++ ++ This choice disables the detect pin and the write-protect pin for the ++ MCI platform device, since it conflicts with the LCD platform device. ++ The MCI pins can be reenabled by editing the "add device function" but ++ this may break the setup for other displays that use these pins. ++ ++ Choose 'Y' here if you have a EVKLCD100/101 connected to the NGW100. ++ ++choice ++ prompt "LCD panel resolution on EVKLCD10X" ++ depends on BOARD_ATNGW100_EVKLCD10X ++ default BOARD_ATNGW100_EVKLCD10X_VGA ++ ++config BOARD_ATNGW100_EVKLCD10X_QVGA ++ bool "QVGA (320x240)" ++ ++config BOARD_ATNGW100_EVKLCD10X_VGA ++ bool "VGA (640x480)" ++ ++config BOARD_ATNGW100_EVKLCD10X_POW_QVGA ++ bool "Powertip QVGA (320x240)" ++ ++endchoice ++ ++endif # BOARD_ATNGW100 +diff --git a/arch/avr32/boards/atngw100/Makefile b/arch/avr32/boards/atngw100/Makefile +index c740aa1..6376f53 100644 +--- a/arch/avr32/boards/atngw100/Makefile ++++ b/arch/avr32/boards/atngw100/Makefile +@@ -1 +1,2 @@ +-obj-y += setup.o flash.o ++obj-y += setup.o flash.o ++obj-$(CONFIG_BOARD_ATNGW100_EVKLCD10X) += evklcd10x.o +diff --git a/arch/avr32/boards/atngw100/evklcd10x.c b/arch/avr32/boards/atngw100/evklcd10x.c +new file mode 100644 +index 0000000..8140b22 +--- /dev/null ++++ b/arch/avr32/boards/atngw100/evklcd10x.c +@@ -0,0 +1,155 @@ ++/* ++ * Board-specific setup code for the ATEVKLCD10X addon board to the ATNGW100 ++ * Network Gateway ++ * ++ * Copyright (C) 2008 Atmel Corporation ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 as published by ++ * the Free Software Foundation. ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#include