⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linux-2.6.28-sitsang.patch

📁 将linux-2.6.28版本的内核移植到arm公司的sitsang板上
💻 PATCH
📖 第 1 页 / 共 5 页
字号:
+		break;++	case led_amber_on:+		break;++	case led_amber_off:+		break;++	case led_red_on:+		if (led_state & LED_STATE_CLAIMED)+			hw_led_state &= ~SITSANG_SYS_BUSY_LED;+		break;++	case led_red_off:+		if (led_state & LED_STATE_CLAIMED)+			hw_led_state |= SITSANG_SYS_BUSY_LED;+		break;++	default:+		break;+	}++	if  (led_state & LED_STATE_ENABLED)+	{+		switch (hw_led_state) {+		case 0: // all on+			SITSANG_HEARTBEAT_LED_ON;+			SITSANG_SYS_BUSY_LED_ON;+			break;+		case 1: // turn off heartbeat, status on:+			SITSANG_HEARTBEAT_LED_OFF;+			SITSANG_SYS_BUSY_LED_ON;+			break;+		case 2: // status off, heartbeat on:+			SITSANG_HEARTBEAT_LED_ON;+			SITSANG_SYS_BUSY_LED_OFF;+			break;+		case 3: // turn them both off...+			SITSANG_HEARTBEAT_LED_OFF;+			SITSANG_SYS_BUSY_LED_OFF;+			break;+		default:+			break;+		}+	}+	local_irq_restore(flags);+}+diff -purN linux-2.6.28/arch/arm/mach-pxa/Makefile linux-2.6.28-sitsang/arch/arm/mach-pxa/Makefile--- linux-2.6.28/arch/arm/mach-pxa/Makefile	2008-12-25 07:26:37.000000000 +0800+++ linux-2.6.28-sitsang/arch/arm/mach-pxa/Makefile	2008-12-26 17:00:45.000000000 +0800@@ -29,6 +29,7 @@ obj-$(CONFIG_CPU_PXA930)	+= pxa930.o obj-$(CONFIG_ARCH_GUMSTIX)	+= gumstix.o obj-$(CONFIG_MACH_AM200EPD)	+= am200epd.o obj-$(CONFIG_ARCH_LUBBOCK)	+= lubbock.o+obj-$(CONFIG_ARCH_SITSANG)	+= sitsang.o  obj-$(CONFIG_MACH_LOGICPD_PXA270) += lpd270.o obj-$(CONFIG_MACH_MAINSTONE)	+= mainstone.o obj-$(CONFIG_MACH_MP900C)	+= mp900.o@@ -72,6 +73,7 @@ obj-$(CONFIG_PXA_EZX)           += ezx.o # Support for blinky lights led-y := leds.o led-$(CONFIG_ARCH_LUBBOCK)	+= leds-lubbock.o+led-$(CONFIG_ARCH_SITSANG)	+= leds-sitsang.o led-$(CONFIG_MACH_MAINSTONE)	+= leds-mainstone.o led-$(CONFIG_ARCH_PXA_IDP)	+= leds-idp.o diff -purN linux-2.6.28/arch/arm/mach-pxa/sitsang.c linux-2.6.28-sitsang/arch/arm/mach-pxa/sitsang.c--- linux-2.6.28/arch/arm/mach-pxa/sitsang.c	1970-01-01 08:00:00.000000000 +0800+++ linux-2.6.28-sitsang/arch/arm/mach-pxa/sitsang.c	2008-12-25 21:20:27.000000000 +0800@@ -0,0 +1,225 @@+#include <linux/module.h>+#include <linux/kernel.h>+#include <linux/init.h>+#include <linux/platform_device.h>+#include <linux/sysdev.h>+#include <linux/major.h>+#include <linux/fb.h>+#include <linux/interrupt.h>+#include <linux/mtd/mtd.h>+#include <linux/mtd/partitions.h>++#include <asm/setup.h>+#include <asm/memory.h>+#include <asm/mach-types.h>+#include <mach/hardware.h>+#include <asm/irq.h>+#include <asm/sizes.h>++#include <asm/mach/arch.h>+#include <asm/mach/map.h>+#include <asm/mach/irq.h>+#include <asm/mach/flash.h>++#include <mach/sitsang.h>+#include <mach/pxa-regs.h>+#include <mach/pxa2xx-regs.h>+#include <mach/mfp-pxa25x.h>+#include <mach/pxafb.h>++//#include<video/lcdctrl.h>++#include "generic.h"+#include "clock.h"+#include "devices.h"++static unsigned long sitsang_irq_en_mask;++static unsigned long sitsang_pin_config[] __initdata = {+	/* BTUART */+	GPIO42_BTUART_RXD,+	GPIO43_BTUART_TXD,+	GPIO44_BTUART_CTS,+	GPIO45_BTUART_RTS,+	+	/* setup FFART mode values */+	GPIO39_FFUART_TXD,+	GPIO40_FFUART_DTR,+	GPIO41_FFUART_RTS,+	+	GPIO34_FFUART_RXD,+	GPIO35_FFUART_CTS,+	GPIO36_FFUART_DCD,+	GPIO37_FFUART_DSR,+	GPIO38_FFUART_RI,++	/* wakeup */+//	GPIO1_GPIO | WAKEUP_ON_EDGE_RISE,+};++static void sitsang_mask_irq(unsigned int irq)+{+	int sitsang_irq = (irq - SITSANG_IRQ(0));++/*	switch(irq){*/+	switch(sitsang_irq) {+                case 0:+			sitsang_irq_en_mask &= ~(SITSANG_BIMR_USB_HC1_OC_IRQ);+                        SITSANG_BIMR_RW &= ~(SITSANG_BIMR_USB_HC1_OC_IRQ);+                        SITSANG_BIPR_RW &= ~(SITSANG_BIPR_USB_HC1_OC_IRQ);+                        break;+                case 1:+			sitsang_irq_en_mask &= ~(SITSANG_BIMR_USB_HC2_OC_IRQ);+                        SITSANG_BIMR_RW &= ~(SITSANG_BIMR_USB_HC2_OC_IRQ);+                        SITSANG_BIPR_RW &= ~(SITSANG_BIPR_USB_HC2_OC_IRQ);+                        break;+                case 2:+			sitsang_irq_en_mask &= ~(SITSANG_BIMR_BATT_CHARGED_IRQ);+                        SITSANG_BIMR_RW &= ~(SITSANG_BIMR_BATT_CHARGED_IRQ);+                        SITSANG_BIPR_RW &= ~(SITSANG_BIPR_BATT_CHARGED_IRQ);+                        break;+        }+		+}++static void sitsang_unmask_irq(unsigned int irq)+{+	int sitsang_irq = (irq - SITSANG_IRQ(0));+	sitsang_irq_en_mask |= (1 << sitsang_irq);++	switch(sitsang_irq){+	      case 0:+		     sitsang_irq_en_mask |= (SITSANG_BIMR_USB_HC1_OC_IRQ);+	             SITSANG_BIMR_RW |= (SITSANG_BIMR_USB_HC1_OC_IRQ);+	             break;+	      case 1:+		     sitsang_irq_en_mask |= (SITSANG_BIMR_USB_HC2_OC_IRQ);+	             SITSANG_BIMR_RW |= (SITSANG_BIMR_USB_HC2_OC_IRQ);+	             break;+	      case 2:+		     sitsang_irq_en_mask |= (SITSANG_BIMR_BATT_CHARGED_IRQ);+	             SITSANG_BIMR_RW |= (SITSANG_BIMR_BATT_CHARGED_IRQ);+	             break;+	}+		+}++static struct irq_chip sitsang_irq_chip = {+	.name	=	"FPGA",+	.ack	=	sitsang_mask_irq,+	.mask	=	sitsang_mask_irq,+	.unmask	=	sitsang_unmask_irq,+};++static void sitsang_irq_handler(unsigned int irq, struct irq_desc *desc)+{+	unsigned long pending = SITSANG_BIPR_RW  & sitsang_irq_en_mask;+	do {+		GEDR(0) = GPIO_bit(0);+		if (likely(pending)) {+			irq = SITSANG_IRQ(0) + __ffs(pending);+			desc = irq_desc + irq;+			desc_handle_irq(irq, desc);+		}+		pending = SITSANG_BIPR_RW  & sitsang_irq_en_mask;+	} while (pending);+}++static void __init sitsang_init_irq(void)+{+	int irq;+	pxa25x_init_irq();++	/* setup extra irqs */+	for (irq = SITSANG_IRQ(0); irq <= SITSANG_IRQ(SITSANG_IRQ_COUNT-1); irq++) {+		set_irq_chip(irq, &sitsang_irq_chip);+		set_irq_handler(irq, handle_level_irq);+		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);+	}++	set_irq_chained_handler(IRQ_GPIO(0), sitsang_irq_handler);+	set_irq_type(IRQ_GPIO(0), IRQ_TYPE_EDGE_FALLING);+}++static struct resource flash_resources[] = {+	[0] = {+		.start	= 0x00000000,+		.end	= SZ_64M - 1,+		.flags	= IORESOURCE_MEM,+	},+};+++static struct flash_platform_data sitsang_flash_data[1] = {+	{+		.map_name	= "cfi_probe",+		.parts		= NULL,+		.nr_parts	= 0,+	}+};++static struct platform_device sitsang_flash_device[1] = {+	{+		.name		= "pxa2xx-flash",+		.id		= 0,+		.dev = {+			.platform_data = &sitsang_flash_data[0],+		},+		.resource = &flash_resources[0],+		.num_resources = 1,+	},+};++static struct platform_device *devices[] __initdata = {+	&sitsang_flash_device[0],+};+++++static void __init sitsang_init(void)+{+	pxa2xx_mfp_config(ARRAY_AND_SIZE(sitsang_pin_config));+	//set_pxa_fb_info(&sharp_lm8v31);+	sitsang_flash_data[0].width = (BOOT_DEF & 1) ? 2 : 4;+	sitsang_flash_data[0].name = " flash";+	(void) platform_add_devices(devices, ARRAY_SIZE(devices));+}++static struct map_desc sitsang_io_desc[] __initdata = {+	{ 		SITSANG_FPGA_VIRT,+		   	__phys_to_pfn(SITSANG_FPGA_PHYS), +			0x00100000, +			MT_DEVICE+   	}, +	/* CPLD */+};++static void __init sitsang_map_io(void)+{+   	pxa_map_io();+	iotable_init(sitsang_io_desc, ARRAY_SIZE(sitsang_io_desc));++	PWER  = 0x00000002;+	PFER  = 0x00000000;+	PRER  = 0x00000002;+	PGSR0 = 0x00008000;+	PGSR1 = 0x003F0202;+	PGSR2 = 0x0001C000;+	PCFR |= PCFR_OPDE;++	+	/* enable PCR for FFUART */+	SITSANG_PCR_RW |= (SITSANG_PCR_BTUART_ON | \+			SITSANG_PCR_RS232_ON | SITSANG_PCR_PER_ON);+}++MACHINE_START(SITSANG, "Intel Sitsang Development Platform")+	/* MAINTAINER ("Intel Inc.") */+	.phys_io	=	0x40000000,+	.io_pg_offst	=	((io_p2v(0x40000000))>>18)&0xfffc,+	.map_io		=	sitsang_map_io,+	.init_irq	=	sitsang_init_irq,+	.timer		=	&pxa_timer,+	.init_machine	=	sitsang_init,+MACHINE_ENDdiff -purN linux-2.6.28/.config linux-2.6.28-sitsang/.config--- linux-2.6.28/.config	1970-01-01 08:00:00.000000000 +0800+++ linux-2.6.28-sitsang/.config	2008-12-26 17:09:59.000000000 +0800@@ -0,0 +1,1204 @@+#+# Automatically generated make config: don't edit+# Linux kernel version: 2.6.28+# Fri Dec 26 17:09:59 2008+#+CONFIG_ARM=y+CONFIG_SYS_SUPPORTS_APM_EMULATION=y+CONFIG_GENERIC_GPIO=y+CONFIG_GENERIC_TIME=y+CONFIG_GENERIC_CLOCKEVENTS=y+CONFIG_MMU=y+# CONFIG_NO_IOPORT is not set+CONFIG_GENERIC_HARDIRQS=y+CONFIG_STACKTRACE_SUPPORT=y+CONFIG_HAVE_LATENCYTOP_SUPPORT=y+CONFIG_LOCKDEP_SUPPORT=y+CONFIG_TRACE_IRQFLAGS_SUPPORT=y+CONFIG_HARDIRQS_SW_RESEND=y+CONFIG_GENERIC_IRQ_PROBE=y+CONFIG_RWSEM_GENERIC_SPINLOCK=y+# CONFIG_ARCH_HAS_ILOG2_U32 is not set+# CONFIG_ARCH_HAS_ILOG2_U64 is not set+CONFIG_GENERIC_HWEIGHT=y+CONFIG_GENERIC_CALIBRATE_DELAY=y+CONFIG_ARCH_MTD_XIP=y+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y+CONFIG_VECTORS_BASE=0xffff0000+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"++#+# General setup+#+CONFIG_EXPERIMENTAL=y+CONFIG_BROKEN_ON_SMP=y+CONFIG_INIT_ENV_ARG_LIMIT=32+CONFIG_LOCALVERSION=""+CONFIG_LOCALVERSION_AUTO=y+CONFIG_SWAP=y+CONFIG_SYSVIPC=y+CONFIG_SYSVIPC_SYSCTL=y+# CONFIG_POSIX_MQUEUE is not set+# CONFIG_BSD_PROCESS_ACCT is not set+# CONFIG_TASKSTATS is not set+# CONFIG_AUDIT is not set+# CONFIG_IKCONFIG is not set+CONFIG_LOG_BUF_SHIFT=17+# CONFIG_CGROUPS is not set+# CONFIG_GROUP_SCHED is not set+CONFIG_SYSFS_DEPRECATED=y+CONFIG_SYSFS_DEPRECATED_V2=y+# CONFIG_RELAY is not set+CONFIG_NAMESPACES=y+# CONFIG_UTS_NS is not set+# CONFIG_IPC_NS is not set+# CONFIG_USER_NS is not set+# CONFIG_PID_NS is not set+# CONFIG_BLK_DEV_INITRD is not set+CONFIG_CC_OPTIMIZE_FOR_SIZE=y+CONFIG_SYSCTL=y+# CONFIG_EMBEDDED is not set+CONFIG_UID16=y+CONFIG_SYSCTL_SYSCALL=y+CONFIG_KALLSYMS=y+# CONFIG_KALLSYMS_ALL is not set+# CONFIG_KALLSYMS_EXTRA_PASS is not set+CONFIG_HOTPLUG=y+CONFIG_PRINTK=y+CONFIG_BUG=y+CONFIG_ELF_CORE=y+CONFIG_COMPAT_BRK=y+CONFIG_BASE_FULL=y+CONFIG_FUTEX=y+CONFIG_ANON_INODES=y+CONFIG_EPOLL=y+CONFIG_SIGNALFD=y+CONFIG_TIMERFD=y+CONFIG_EVENTFD=y+CONFIG_SHMEM=y+CONFIG_AIO=y+CONFIG_VM_EVENT_COUNTERS=y+CONFIG_SLUB_DEBUG=y+# CONFIG_SLAB is not set+CONFIG_SLUB=y+# CONFIG_SLOB is not set+# CONFIG_PROFILING is not set+# CONFIG_MARKERS is not set+CONFIG_HAVE_OPROFILE=y+# CONFIG_KPROBES is not set+CONFIG_HAVE_KPROBES=y+CONFIG_HAVE_KRETPROBES=y+CONFIG_HAVE_CLK=y+CONFIG_HAVE_GENERIC_DMA_COHERENT=y+CONFIG_SLABINFO=y+CONFIG_RT_MUTEXES=y+# CONFIG_TINY_SHMEM is not set+CONFIG_BASE_SMALL=0+CONFIG_MODULES=y+# CONFIG_MODULE_FORCE_LOAD is not set+# CONFIG_MODULE_UNLOAD is not set+# CONFIG_MODVERSIONS is not set+# CONFIG_MODULE_SRCVERSION_ALL is not set+CONFIG_KMOD=y+CONFIG_BLOCK=y+# CONFIG_LBD is not set+# CONFIG_BLK_DEV_IO_TRACE is not set+# CONFIG_LSF is not set+# CONFIG_BLK_DEV_BSG is not set+# CONFIG_BLK_DEV_INTEGRITY is not set++#+# IO Schedulers+#+CONFIG_IOSCHED_NOOP=y+CONFIG_IOSCHED_AS=y+CONFIG_IOSCHED_DEADLINE=y+CONFIG_IOSCHED_CFQ=y+# CONFIG_DEFAULT_AS is not set+# CONFIG_DEFAULT_DEADLINE is not set+CONFIG_DEFAULT_CFQ=y+# CONFIG_DEFAULT_NOOP is not set+CONFIG_DEFAULT_IOSCHED="cfq"+CONFIG_CLASSIC_RCU=y+# CONFIG_FREEZER is not set++#+# System Type+#+# CONFIG_ARCH_AAEC2000 is not set+# CONFIG_ARCH_INTEGRATOR is not set+# CONFIG_ARCH_REALVIEW is not set+# CONFIG_ARCH_VERSATILE is not set+# CONFIG_ARCH_AT91 is not set+# CONFIG_ARCH_CLPS7500 is not set+# CONFIG_ARCH_CLPS711X is not set+# CONFIG_ARCH_EBSA110 is not set+# CONFIG_ARCH_EP93XX is not set+# CONFIG_ARCH_FOOTBRIDGE is not set+# CONFIG_ARCH_NETX is not set+# CONFIG_ARCH_H720X is not set+# CONFIG_ARCH_IMX is not set+# CONFIG_ARCH_IOP13XX is not set+# CONFIG_ARCH_IOP32X is not set+# CONFIG_ARCH_IOP33X is not set+# CONFIG_ARCH_IXP23XX is not set+# CONFIG_ARCH_IXP2000 is not set+# CONFIG_ARCH_IXP4XX is not set+# CONFIG_ARCH_L7200 is not set+# CONFIG_ARCH_KIRKWOOD is not set+# CONFIG_ARCH_KS8695 is not set+# CONFIG_ARCH_NS9XXX is not set+# CONFIG_ARCH_LOKI is not set+# CONFIG_ARCH_MV78XX0 is not set+# CONFIG_ARCH_MXC is not set+# CONFIG_ARCH_ORION5X is not set+# CONFIG_ARCH_PNX4008 is not set+CONFIG_ARCH_PXA=y+# CONFIG_ARCH_RPC is not set+# CONFIG_ARCH_SA1100 is not set+# CONFIG_ARCH_S3C2410 is not set+# CONFIG_ARCH_SHARK is not set+# CONFIG_ARCH_LH7A40X is not set+# CONFIG_ARCH_DAVINCI is not set+# CONFIG_ARCH_OMAP is not set+# CONFIG_ARCH_MSM is not set++#+# Intel PXA2xx/PXA3xx Implementations+#+# CONFIG_ARCH_GUMSTIX is not set

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -