📄 uclinux-dist-20040408-lpc-chy-cmj.patch
字号:
+#define CAN3ICR 0xE004C00C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3IER 0xE004C010 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3BTR 0xE004C014 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3EWL 0xE004C01C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3SR 0xE004C020 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3RFS 0xE004C024 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3RDA 0xE004C028 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3RDB 0xE004C02C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3TFI1 0xE004C030 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3TID1 0xE004C034 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3TDA1 0xE004C038 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3TDB1 0xE004C03C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3TFI2 0xE004C040 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3TID2 0xE004C044 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3TDA2 0xE004C048 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3TDB2 0xE004C04C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3TFI3 0xE004C050 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3TID3 0xE004C054 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3TDA3 0xE004C058 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN3TDB3 0xE004C05C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+ +#define CAN4MOD 0xE0050000 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4CMR 0xE0050004 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4GSR 0xE0050008 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4ICR 0xE005000C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4IER 0xE0050010 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4BTR 0xE0050014 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4EWL 0xE005001C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4SR 0xE0050020 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4RFS 0xE0050024 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4RDA 0xE0050028 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4RDB 0xE005002C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4TFI1 0xE0050030 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4TID1 0xE0050034 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4TDA1 0xE0050038 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4TDB1 0xE005003C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4TFI2 0xE0050040 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4TID2 0xE0050044 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4TDA2 0xE0050048 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4TDB2 0xE005004C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4TFI3 0xE0050050 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4TID3 0xE0050054 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4TDA3 0xE0050058 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN4TDB3 0xE005005C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+ +#define CAN5MOD 0xE0054000 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5CMR 0xE0054004 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5GSR 0xE0054008 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5ICR 0xE005400C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5IER 0xE0054010 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5BTR 0xE0054014 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5EWL 0xE005401C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5SR 0xE0054020 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5RFS 0xE0054024 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5RDA 0xE0054028 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5RDB 0xE005402C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5TFI1 0xE0054030 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5TID1 0xE0054034 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5TDA1 0xE0054038 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5TDB1 0xE005403C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5TFI2 0xE0054040 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5TID2 0xE0054044 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5TDA2 0xE0054048 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5TDB2 0xE005404C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5TFI3 0xE0054050 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5TID3 0xE0054054 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5TDA3 0xE0054058 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CAN5TDB3 0xE005405C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+ +#define CAN6MOD 0xE0058000 /* lpc2292\lpc2294 only */+#define CAN6CMR 0xE0058004 /* lpc2292\lpc2294 only */+#define CAN6GSR 0xE0058008 /* lpc2292\lpc2294 only */+#define CAN6ICR 0xE005800C /* lpc2292\lpc2294 only */+#define CAN6IER 0xE0058010 /* lpc2292\lpc2294 only */+#define CAN6BTR 0xE0058014 /* lpc2292\lpc2294 only */+#define CAN6EWL 0xE005801C /* lpc2292\lpc2294 only */+#define CAN6SR 0xE0058020 /* lpc2292\lpc2294 only */+#define CAN6RFS 0xE0058024 /* lpc2292\lpc2294 only */+#define CAN6RDA 0xE0058028 /* lpc2292\lpc2294 only */+#define CAN6RDB 0xE005802C /* lpc2292\lpc2294 only */+#define CAN6TFI1 0xE0058030 /* lpc2292\lpc2294 only */+#define CAN6TID1 0xE0058034 /* lpc2292\lpc2294 only */+#define CAN6TDA1 0xE0058038 /* lpc2292\lpc2294 only */+#define CAN6TDB1 0xE005803C /* lpc2292\lpc2294 only */+#define CAN6TFI2 0xE0058040 /* lpc2292\lpc2294 only */+#define CAN6TID2 0xE0058044 /* lpc2292\lpc2294 only */+#define CAN6TDA2 0xE0058048 /* lpc2292\lpc2294 only */+#define CAN6TDB2 0xE005804C /* lpc2292\lpc2294 only */+#define CAN6TFI3 0xE0058050 /* lpc2292\lpc2294 only */+#define CAN6TID3 0xE0058054 /* lpc2292\lpc2294 only */+#define CAN6TDA3 0xE0058058 /* lpc2292\lpc2294 only */+#define CAN6TDB3 0xE005805C /* lpc2292\lpc2294 only */+ +#define CANTxSR 0xE0040000 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CANRxSR 0xE0040004 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CANMSR 0xE0040008 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+ +#define CANAFMR 0xE003C000 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CANSFF_sa 0xE003C004 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CANSFF_GRP_sa 0xE003C008 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CANEFF_sa 0xE003C00C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CANEFF_GRP_sa 0xE003C010 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CANENDofTable 0xE003C014 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CANLUTerrAd 0xE003C018 /* lpc2119\lpc2129\lpc2292\lpc2294 only */+#define CANLUTerr 0xE003C01C /* lpc2119\lpc2129\lpc2292\lpc2294 only */+ + +/* Timer 0 */ +/* 定时器0的特殊寄存器 */ +#define T0IR 0xE0004000+#define T0TCR 0xE0004004+#define T0TC 0xE0004008+#define T0PR 0xE000400C+#define T0PC 0xE0004010+#define T0MCR 0xE0004014+#define T0MR0 0xE0004018+#define T0MR1 0xE000401C+#define T0MR2 0xE0004020+#define T0MR3 0xE0004024+#define T0CCR 0xE0004028+#define T0CR0 0xE000402C+#define T0CR1 0xE0004030+#define T0CR2 0xE0004034+#define T0CR3 0xE0004038+#define T0EMR 0xE000403C+ +/* Timer 1 */ +/* 定时器1的特殊寄存器 */ +#define T1IR 0xE0008000+#define T1TCR 0xE0008004+#define T1TC 0xE0008008+#define T1PR 0xE000800C+#define T1PC 0xE0008010+#define T1MCR 0xE0008014+#define T1MR0 0xE0008018+#define T1MR1 0xE000801C+#define T1MR2 0xE0008020+#define T1MR3 0xE0008024+#define T1CCR 0xE0008028+#define T1CR0 0xE000802C+#define T1CR1 0xE0008030+#define T1CR2 0xE0008034+#define T1CR3 0xE0008038+#define T1EMR 0xE000803C+ +/* Pulse Width Modulator (PWM) */ +/* 脉宽调制器的特殊寄存器 */ +#define PWMIR 0xE0014000+#define PWMTCR 0xE0014004+#define PWMTC 0xE0014008+#define PWMPR 0xE001400C+#define PWMPC 0xE0014010+#define PWMMCR 0xE0014014+#define PWMMR0 0xE0014018+#define PWMMR1 0xE001401C+#define PWMMR2 0xE0014020+#define PWMMR3 0xE0014024+#define PWMMR4 0xE0014040+#define PWMMR5 0xE0014044+#define PWMMR6 0xE0014048+#define PWMPCR 0xE001404C+#define PWMLER 0xE0014050+ +/* A/D CONVERTER */ +/* A/D转换器 */ +#define ADCR 0xE0034000 /* no in lpc210x*/+#define ADDR 0xE0034004 /* no in lpc210x*/+ +/* Real Time Clock */ +/* 实时时钟的特殊寄存器 */ +#define ILR 0xE0024000+#define CTC 0xE0024004+#define CCR 0xE0024008+#define CIIR 0xE002400C+#define AMR 0xE0024010+#define CTIME0 0xE0024014+#define CTIME1 0xE0024018+#define CTIME2 0xE002401C+#define SEC 0xE0024020+#define MIN 0xE0024024+#define HOUR 0xE0024028+#define DOM 0xE002402C+#define DOW 0xE0024030+#define DOY 0xE0024034+#define MONTH 0xE0024038+#define YEAR 0xE002403C+#define ALSEC 0xE0024060+#define ALMIN 0xE0024064+#define ALHOUR 0xE0024068+#define ALDOM 0xE002406C+#define ALDOW 0xE0024070+#define ALDOY 0xE0024074+#define ALMON 0xE0024078+#define ALYEAR 0xE002407C+#define PREINT 0xE0024080+#define PREFRAC 0xE0024084+ +/* Watchdog */ +/* 看门狗的特殊寄存器 */ +#define WDMOD 0xE0000000+#define WDTC 0xE0000004+#define WDFEED 0xE0000008+#define WDTV 0xE000000C++/* Define firmware Functions */+/* 定义固件函数 */+#define rm_init_entry() ((void (*)())(0x7fffff91))()+#define rm_undef_handler() ((void (*)())(0x7fffffa0))()+#define rm_prefetchabort_handler() ((void (*)())(0x7fffffb0))()+#define rm_dataabort_handler() ((void (*)())(0x7fffffc0))()+#define rm_irqhandler() ((void (*)())(0x7fffffd0))()+#define rm_irqhandler2() ((void (*)())(0x7fffffe0))()+#define iap_entry(a, b) ((void (*)())(0x7ffffff1))(a, b)+++#ifndef __ASSEMBLER__+++struct lpc_timers+{+ + unsigned long ir; // + unsigned long tcr; // + unsigned long tc; // + unsigned long pr; // + unsigned long pc; // + unsigned long mcr; // + unsigned long mr0; // + unsigned long mr1; // + unsigned long mr2; // + unsigned long mr3; // + unsigned long ccr; // + unsigned long cr0; // + unsigned long cr1; // + unsigned long cr2; // + unsigned long cr3; // + unsigned long emr; // +};+#endif+++/* TC control register */+#define TC_SYNC (1)++/* TC mode register */+#define TC2XC2S(x) (x & 0x3)+#define TC1XC1S(x) (x<<2 & 0xc)+#define TC0XC0S(x) (x<<4 & 0x30)+#define TCNXCNS(timer,v) ((v) << (timer<<1))++/* TC channel control */+#define TC_CLKEN (1) +#define TC_CLKDIS (1<<1) +#define TC_SWTRG (1<<2) ++/* TC interrupts enable/disable/mask and status registers */+#define TC_MTIOB (1<<18)+#define TC_MTIOA (1<<17)+#define TC_CLKSTA (1<<16)++#define TC_ETRGS (1<<7)+#define TC_LDRBS (1<<6)+#define TC_LDRAS (1<<5)+#define TC_CPCS (1<<4)+#define TC_CPBS (1<<3)+#define TC_CPAS (1<<2)+#define TC_LOVRS (1<<1)+#define TC_COVFS (1)++/*+ * USART registers+ */++#define LPC_UART_CNT 2+#define LPC_UART0_BASE 0xe000c000+#define LPC_UART1_BASE 0xe0010000++/* US control register */+#define US_SENDA (1<<12)+#define US_STTO (1<<11)+#define US_STPBRK (1<<10)+#define US_STTBRK (1<<9)+#define US_RSTSTA (1<<8)+#define US_TXDIS (1<<7)+#define US_TXEN (1<<6)+#define US_RXDIS (1<<5)+#define US_RXEN (1<<4)+#define US_RSTTX (1<<3)+#define US_RSTRX (1<<2)++/* US mode register */+#define US_CLK0 (1<<18)+#define US_MODE9 (1<<17)+#define US_CHMODE(x)(x<<14 & 0xc000)+#define US_NBSTOP(x)(x<<12 & 0x3000)+#define US_PAR(x) (x<<9 & 0xe00)+#define US_SYNC (1<<8)+#define US_CHRL(x) (x<<6 & 0xc0)+#define US_USCLKS(x)(x<<4 & 0x30)++/* US interrupts enable/disable/mask and status register */+#define US_DMSI (1<<10)+#define US_TXEMPTY (1<<9)+#define US_TIMEOUT (1<<8)+#define US_PARE (1<<7)+#define US_FRAME (1<<6)+#define US_OVRE (1<<5)+#define US_ENDTX (1<<4)+#define US_ENDRX (1<<3)+#define US_RXBRK (1<<2)+#define US_TXRDY (1<<1)+#define US_RXRDY (1)++#define US_ALL_INTS (US_DMSI|US_TXEMPTY|US_TIMEOUT|US_PARE|US_FRAME|US_OVRE|US_ENDTX|US_ENDRX|US_RXBRK|US_TXRDY|US_RXRDY)++#ifndef __ASSEMBLER__+#if 0+static inline void lpc_uart_init(int baudrate)+{++ //unsigned long reg = Fpclk / 16 /9600; /*9600*/+ unsigned int reg;+ reg = 72; /*default 9600*/+ + + PINSEL0 |= 0x5; /*connect TXD0, RXD0*/+ U0LCR = 0x83; /*DLAB = 1, 8N1*/++ U0DLL = reg; + U0DLM = 0;++ U0LCR = 0x3; /*DLAB = 0*/+}++static inline void lpc_uart_putc(unsigned char c)+{+ U0THR = c;+ while((U0LSR & 0x40) == 0);+ /* If \n, also do \r */+ if (c == '\n')+ lpc_uart_putc ('\r');+}+#endif+#endif++#endif /* _ASM_ARCH_HARDWARE_H */++diff -Naur old/uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-lpc/ide.h uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-lpc/ide.h--- old/uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-lpc/ide.h 1970-01-01 08:00:00.000000000 +0800+++ uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-lpc/ide.h 2005-06-06 10:47:07.000000000 +0800@@ -0,0 +1,45 @@+/*+ * linux/include/asm-arm/arch-sa1100/ide.h+ *+ * Copyright (c) 1998 Hugo Fiennes & Nicolas Pitre+ *+ * 18-aug-2000: Cleanup by Erik Mouw (J.A.K.Mouw@its.tudelft.nl)+ * Get rid of the special ide_init_hwif_ports() functions+ * and make a generalised function that can be used by all+ * architectures.+ */++#include <linux/config.h>+#include <asm/irq.h>+#include <asm/hardware.h>+#include <asm/mach-types.h>+++/*+ * Set up a hw structure for a specified data port, control port and IRQ.+ * This should follow whatever the default interface uses.+ */+static __inline__ void+ide_init_hwif_ports(hw_regs_t *hw, int data_port, int ctrl_port, int *irq)+{+#ifdef CONFIG_REVISIT+#error Not sure what to do for ide_init_hwif_ports+#endif+}+++++/*+ * This registers the standard ports for this architecture with the IDE+ * driver.+ */+static __inline__ void+ide_init_default_hwifs(void)+{+#ifdef CONFIG_REVISIT+#error Not sure what to do for ide_init_default_hwifs+#endif+}++diff -Naur old/uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-lpc/io.h uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-lpc/io.h--- old/uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-lpc/io.h 1970-01-01 08:00:00.000000000 +0800+++ uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-lpc/io.h 2005-06-01 16:29:51.000000000 +0800@@ -0,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -