diff -uNr cnxt-boot-ldr/Makefile cnxt-boot-ldr.fixes/Makefile
--- cnxt-boot-ldr/Makefile	2005-07-25 21:03:23.000000000 +0200
+++ cnxt-boot-ldr.fixes/Makefile	2006-08-20 15:54:52.000000000 +0200
@@ -14,7 +14,7 @@
 OBJCOPY = arm-elf-objcopy

 CFLAGS = -Wall -Wstrict-prototypes  -O2  -fno-strength-reduce \
-	-fno-strict-aliasing -mapcs-32 -mshort-load-bytes -mcpu=arm9tdmi -g \
+	-fno-strict-aliasing -mapcs-32 -mcpu=arm9tdmi -g \
 	-DACTION_TEC
 
 TEXTADDR = 0xf00000
diff -uNr cnxt-boot-ldr/boot-ldr.S cnxt-boot-ldr.fixes/boot-ldr.S
--- cnxt-boot-ldr/boot-ldr.S	2005-07-25 20:26:13.000000000 +0200
+++ cnxt-boot-ldr.fixes/boot-ldr.S	2006-08-20 15:54:52.000000000 +0200
@@ -13,7 +13,6 @@
 
 #define	_ASMLANGUAGE
 #include <linux/config.h>
-#include <asm/assembler.h>
 #include <asm/hardware.h>
 #include <asm/mach-types.h>
 #include "init_values.h"
@@ -162,7 +162,7 @@
 
 	MOV	r0, #0	
 	MOV	r1, #0x400			@;	Copy 1k bytes	
-   	LDR	r2, =ASB_RAM_ADRS
+   	LDR	r2, =ASB_RAM_ADR
 	 
 	LDR	pc, L$_HiPosn1
 HiPosn1:	
diff -uNr cnxt-boot-ldr/checksum.S cnxt-boot-ldr.fixes/checksum.S
--- cnxt-boot-ldr/checksum.S	2003-10-08 19:42:58.000000000 +0200
+++ cnxt-boot-ldr.fixes/checksum.S	2006-08-20 15:54:52.000000000 +0200
@@ -1,5 +1,4 @@
 #include <linux/linkage.h>
-#include <asm/proc/assembler.h>
 #define ARM32
 /*#include "armregisters.s"*/
 /*#include "armatmos.s"*/
diff -uNr cnxt-boot-ldr/cnxtflash.h cnxt-boot-ldr.fixes/cnxtflash.h
--- cnxt-boot-ldr/cnxtflash.h	2005-07-17 15:44:42.000000000 +0200
+++ cnxt-boot-ldr.fixes/cnxtflash.h	2006-08-20 15:54:52.000000000 +0200
@@ -152,6 +152,6 @@
 #endif
 
 //#include <linux/cnxtflash.h>
-#include <asm/arch/cnxtflash.h>
+#include "kernel_cnxtflash.h"
 
 #endif
diff -uNr cnxt-boot-ldr/delay.S cnxt-boot-ldr.fixes/delay.S
--- cnxt-boot-ldr/delay.S	2003-10-08 19:42:58.000000000 +0200
+++ cnxt-boot-ldr.fixes/delay.S	2006-08-20 15:54:52.000000000 +0200
@@ -8,7 +8,6 @@
  * published by the Free Software Foundation.
  */
 #include <linux/linkage.h>
-#include <asm/assembler.h>
 		.text
 
 LC0:		.word	SYMBOL_NAME(loops_per_jiffy)
@@ -26,7 +26,7 @@
 		mov	r2, r2, lsr #11
 		mul	r0, r1, r2
 		movs	r0, r0, lsr #6
-		RETINSTR(moveq,pc,lr)
+		moveq	pc,lr
 
 /*
  * loops = (r0 * 0x10c6 * 100 * loops_per_jiffy) / 2^32
@@ -54,4 +54,4 @@
 		subs	r0, r0, #1
 #endif
 		bhi	SYMBOL_NAME(__delay)
-		RETINSTR(mov,pc,lr)
+		mov	pc,lr
diff -uNr cnxt-boot-ldr/emac/cnxtEmac.c cnxt-boot-ldr.fixes/emac/cnxtEmac.c
--- cnxt-boot-ldr/emac/cnxtEmac.c	2003-10-08 19:42:58.000000000 +0200
+++ cnxt-boot-ldr.fixes/emac/cnxtEmac.c	2006-08-20 15:54:52.000000000 +0200
@@ -31,7 +31,7 @@
 #include <asm/memory.h>
 #include <linux/etherdevice.h>
 #include <asm/system.h>
-#include <asm/irq.h>
+#include "../irqs.h"
 #include "cnxtEmac.h"
 
 /* Standard interface flags. */
diff -uNr cnxt-boot-ldr/emac/phytypes.h cnxt-boot-ldr.fixes/emac/phytypes.h
--- cnxt-boot-ldr/emac/phytypes.h	2005-07-17 15:51:50.000000000 +0200
+++ cnxt-boot-ldr.fixes/emac/phytypes.h	2006-08-20 15:54:52.000000000 +0200
@@ -120,7 +120,7 @@
 /* #include <linux/delay.h> */
 #include <asm/delay.h>
 #include <asm/io.h>
-#include <asm/arch/bsptypes.h>
+#include "../bsptypes.h"
 
 #if !defined(_TYPDEF_H_) 
 	#if 0
diff -uNr cnxt-boot-ldr/misc.c cnxt-boot-ldr.fixes/misc.c
--- cnxt-boot-ldr/misc.c	2005-07-25 20:30:00.000000000 +0200
+++ cnxt-boot-ldr.fixes/misc.c	2006-08-20 15:54:52.000000000 +0200
@@ -8,7 +8,6 @@
  */
 
 #include <asm/segment.h>
-#include <asm/arch/uncompress.h>
 #include <asm/proc/uncompress.h>
 #include <linux/types.h>
 
diff -uNr cnxt-boot-ldr/OsDefs.h cnxt-boot-ldr.fixes/OsDefs.h
--- cnxt-boot-ldr/OsDefs.h	1970-01-01 01:00:00.000000000 +0100
+++ cnxt-boot-ldr.fixes/OsDefs.h	2006-08-20 15:55:05.000000000 +0200
@@ -0,0 +1,137 @@
+/****************************************************************************
+*
+*	Name:			OsDefs.h
+*
+*	Description:	
+*
+*	Copyright:		(c) 2002 Conexant Systems Inc.
+*
+*****************************************************************************
+
+  This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+  This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+more details.
+
+  You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc., 59
+Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+****************************************************************************
+*  $Author:   davidsdj  $
+*  $Revision:   1.2  $
+*  $Modtime:   Apr 01 2003 09:39:58  $
+****************************************************************************/
+
+#ifndef _OSDEFS_H_
+#define _OSDEFS_H_
+
+extern int		errno;
+typedef long int				STATUS;
+
+#ifdef INT
+#undef INT
+#endif
+
+typedef int						INT;
+typedef unsigned int			UINT;
+typedef unsigned char			UCHAR;
+typedef unsigned short			USHORT;
+typedef unsigned long			ULONG;
+typedef unsigned long *			PULONG;
+typedef void					VOID;
+typedef void *					PVOID;
+
+typedef unsigned short			WORD;
+typedef unsigned long			DWORD;
+typedef unsigned char			BYTE;
+typedef signed char				CHAR;
+typedef signed short int		SHORT;
+typedef signed long int			LONG;
+typedef long long int			LONGLONG;
+typedef unsigned long long int	ULONGLONG;
+typedef long long int			LARGE_INTEGER;
+typedef unsigned char *			PUCHAR;
+
+typedef UINT					BOOL;
+typedef UINT					BOOLEAN;
+typedef BOOLEAN *				PBOOLEAN;
+
+typedef void *					PFILE_OBJECT;
+
+typedef struct					sk_buff SK_BUFF_T;
+typedef struct					sk_buff_head SK_BUFF_QUEUE_T;
+typedef	struct					atm_vcc ATM_VCC_T;
+
+
+#define KdPrint( x )		printk x
+
+#define TRUE				1
+#define FALSE				0
+
+// #define LONG_MIN	(-LONG_MAX - 1L)
+#ifndef INT_MIN
+#define INT_MIN				(-INT_MAX - 1)
+#endif
+
+
+#define IN
+#define OUT
+#define INOUT
+#define I_O
+#define GLOBAL
+
+#define ASSERT( X )
+#define ASSERTMSG( X, Y )
+
+enum ConnectStatus
+{
+    MediaNotConnected,
+    MediaConnected
+};
+
+#define TRAP()					asm("int3")
+
+/////////////////////////////////////////////////////////////////////
+// Error Codes
+/////////////////////////////////////////////////////////////////////
+#define EFAIL				1024
+#define ERR_NOFLOAT			-2048
+#define ERR_FORMAT			-2049
+#define ERR_SHUTDOWN		-2050
+
+#define	EALREADYLOADED		(-STATUS_IMAGE_ALREADY_LOADED)				/* device already loaded */
+#define	EINVALIDTYPE		(-STATUS_BAD_MASTER_BOOT_RECORD)			/* invalid record type */
+#define	ETIMEOUT			(-STATUS_IO_TIMEOUT)						/* command timeout */
+#define	ENOTREADY			(-STATUS_DEVICE_NOT_READY)					/* device not ready */
+#define	EBADLENGTH			(-STATUS_INVALID_BLOCK_LENGTH)				/* invalid length */
+#define EDEVICEFAIL			(-STATUS_IO_DEVICE_ERROR)					/* requested IO failed */
+#define ENOINTERRUPT		(-STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT)	/* requested interrupt unavailable */
+#define ESVCINVAL			(-STATUS_INVALID_DEVICE_REQUEST)			/* invalid service */
+#define COMMAND_PENDING		(-STATUS_PENDING)							/* command is pending */
+#define STATUS_UNSUPPORTED	(-STATUS_NOT_SUPPORTED)						/* command is not supported */
+
+#define STATUS_SUCCESS							((STATUS)0x00000000L)	
+#define STATUS_TIMEOUT							((STATUS)0x00000102L)	
+#define STATUS_PENDING							((STATUS)0x00000103L)	
+#define STATUS_UNSUCCESSFUL						((STATUS)0xC0000001L)
+#define STATUS_FAILURE							((STATUS)0xC0000001L)
+#define STATUS_NOT_IMPLEMENTED						((STATUS)0xC0000002L)
+#define STATUS_INVALID_PARAMETER					((STATUS)0xC000000DL)
+
+#endif //ifndef _OSDEFS_H_
+
+
+
+
+
+
+
+
+
+
diff -uNr cnxt-boot-ldr/bsptypes.h cnxt-boot-ldr.fixes/bsptypes.h
--- cnxt-boot-ldr/bsptypes.h	1970-01-01 01:00:00.000000000 +0100
+++ cnxt-boot-ldr.fixes/bsptypes.h	2006-08-20 15:55:02.000000000 +0200
@@ -0,0 +1,296 @@
+/****************************************************************************
+*
+*	Name:			BSPTYPES.H
+*
+*	Description:	Application Manager Application routines declaration.
+*
+*	Copyright:		(c) 1999 - 2003  Conexant Systems Inc.
+*
+*****************************************************************************
+*  $Author:   belljl  $
+*  $Revision:   1.1  $
+*  $Modtime:   Jun 30 2003 15:58:08  $
+****************************************************************************/
+
+#ifndef BSPTYPES_H
+#define BSPTYPES_H
+
+#include <linux/autoconf.h>
+
+#include "OsDefs.h"
+
+#ifndef IN
+#define IN
+#endif
+
+#ifndef OUT
+#define OUT
+#endif
+
+#ifndef I_O
+#define I_O
+#endif
+
+
+#ifndef INT32
+#define INT32 int
+#endif
+
+
+
+
+
+
+
+enum {LITTLE_ENDIAN, BIG_ENDIAN};
+
+#ifdef LITTLE_ENDIAN_MEMORY
+	#define BYTE_ORIENTATION  LITTLE_ENDIAN
+#else
+	#define BYTE_ORIENTATION  BIG_ENDIAN
+#endif
+
+
+#define BIT0             0x00000001
+#define BIT1             0x00000002
+#define BIT2             0x00000004
+#define BIT3             0x00000008
+#define BIT4             0x00000010
+#define BIT5             0x00000020
+#define BIT6             0x00000040
+#define BIT7             0x00000080
+#define BIT8             0x00000100
+#define BIT9             0x00000200
+#define BIT10            0x00000400
+#define BIT11            0x00000800
+#define BIT12            0x00001000
+#define BIT13            0x00002000
+#define BIT14            0x00004000
+#define BIT15            0x00008000
+#define BIT15            0x00008000
+#define BIT16            0x00010000
+#define BIT17            0x00020000
+#define BIT18            0x00040000
+#define BIT19            0x00080000
+#define BIT20            0x00100000
+#define BIT21            0x00200000
+#define BIT22            0x00400000
+#define BIT23            0x00800000
+#define BIT24            0x01000000
+#define BIT25            0x02000000
+#define BIT26            0x04000000
+#define BIT27            0x08000000
+#define BIT28            0x10000000
+#define BIT29            0x20000000
+#define BIT30            0x40000000
+#define BIT31            0x80000000
+
+
+
+#ifndef UINT32
+#define UINT32 unsigned long
+#endif
+
+#ifndef SINT32
+#define SINT32 signed long
+#endif
+
+#ifndef UINT16
+#define UINT16 unsigned short int
+#endif
+
+#ifndef SINT16
+#define SINT16 signed short int
+#endif
+
+#ifndef INT16
+#define INT16 short int
+#endif
+
+#ifndef UINT8
+#define UINT8 unsigned char
+#endif
+
+#ifndef INT8
+#define INT8 unsigned char
+#endif
+
+#ifndef SINT8
+#define SINT8 signed char
+#endif
+
+#define uint32_ONE 0x80000000L
+#define uint16_ONE 0x8000
+
+#define sint32_MAX 0x7FFFFFFFL
+#define sint16_MAX 0x7FFF
+
+#define uint32_MAX 0xFFFFFFFFUL
+#define uint16_MAX 0xFFFFU
+
+#define sint32_MIN 0x00000001L
+#define sint16_MIN 0x0001
+
+typedef void (* JOB_TYPE)(void);
+
+typedef struct
+{
+   SINT16 real,imag;
+}SINT16CMPLX;
+
+typedef struct
+{
+   SINT32 real,imag;
+}SINT32CMPLX;
+
+#ifndef NULL
+#define NULL 0
+#endif
+
+#ifndef FUNCPTR
+//#define FUNCPTR UINT32
+typedef int	(*FUNCPTR)(void);
+#endif
+
+#define FALSE              0
+#define TRUE               1
+
+typedef void * HBM_CHANNEL;
+typedef char * PCHAR;
+
+#define IVEC_TO_INUM(intVec)   ((int) (intVec))
+#define INUM_TO_IVEC(intNum)   ((void *) (intNum))
+
+typedef struct tagHWSTATESTRUCT {
+	UINT32 eDeviceType;
+  	UINT32 HWPowerMode;
+	UINT32 eUSBCurrState;
+	UINT32 eUSBPrevState;
+	#if CONFIG_CNXT_ADSL || CONFIG_CNXT_ADSL_MODULE || CONFIG_CNXT_GSHDSL || CONFIG_CNXT_GSHDSL_MODULE
+		UINT32 eADSLLineState;
+		UINT32 eADSLRequestLineState;
+		UINT32 dwADSLDownRate;
+		UINT32 dwADSLUpRate;
+		UINT32 dwLineStatus;
+	#endif
+	UINT32 bSRAMState;
+	UINT32 bSDRAMState;
+	UINT32 bFLASHState;
+	UINT32 bEEPROMState;
+	UINT32 eUARTState;
+	void   *g_pUARTChan;
+	UINT32 bSelfTestState;
+	UINT32 dwMACAddressLow;
+	UINT32 dwMACAddressHigh;
+
+	// stuff for the performance CP panel
+	#if CONFIG_CNXT_ADSL || CONFIG_CNXT_ADSL_MODULE || CONFIG_CNXT_GSHDSL || CONFIG_CNXT_GSHDSL_MODULE
+		UINT32	Transmit_State;
+		UINT32	Receive_State;
+		UINT32	Process_State;
+		UINT32	Up_SNR_Margin_Cur;
+		UINT32	Up_SNR_Margin_Min;
+		UINT32	Up_SNR_Margin_MinBin;
+		UINT32	Down_SNR_Margin_Cur;
+		UINT32	Down_SNR_Margin_Min;
+		UINT32	Down_SNR_Margin_Min_Bin;
+		UINT32	Up_Attn;
+		UINT32	Down_Attn;
+		UINT32	Tx_Power;
+		UINT32	Up_Bits_Per_Frame;
+		UINT32	Down_Bits_Per_Frame;
+		UINT32	Startup_Attempts;
+		UINT32	Up_CRC_Errors;
+		UINT32	Down_CRC_Errors;
+		UINT32	Up_FEC_Errors;
+		UINT32	Down_FEC_Errors;
+		UINT32	Up_HEC_Errors;
+		UINT32	Down_HEC_Errors;
+		UINT32	Retrain_Attempts;
+	#endif
+
+   UINT32   p_GRP0_INPUT_ENABLE_Image;
+   UINT32   p_GRP1_INPUT_ENABLE_Image;
+   UINT32   p_GRP2_INPUT_ENABLE_Image;
+
+} HWSTATESTRUCT, *PHWSTATESTRUCT;
+
+
+typedef struct tagRXBUFFERSTRUCT
+{
+  volatile UINT32 *pdwRxStart;
+  volatile UINT32 *pdwRxEnd;
+  volatile UINT32 *pdwRxPtr;
+  volatile UINT8 *pcData; 
+  UINT32 		BuffSize;
+} RXBUFFERSTRUCT, *PRXBUFFERSTRUCT;
+
+
+typedef struct tagEPINFOSTRUCT
+{
+  UINT32 bTxEnable;
+  UINT32 bTxSendMode;
+  UINT32 bTXWA;
+  UINT32 TxIRQCount;
+  UINT32 TxUnderrun; 
+  UINT32 TxPacket;
+  UINT32 TxTotalPending;   /* Total Pending count waiting to be sent to USB */
+  UINT32 TxPendingInc;     /* Pending count on attempt to dynamically add to DMA Tx link */
+  UINT32 TxRejectCnt;
+  volatile UINT32 *pTxHead;
+  volatile UINT32 *pTxTail;
+  volatile UINT32 *pTxCurr;
+  UINT32 TxBufferSize;
+  UINT32 bRxEnable;
+  UINT32 RxIRQCount;
+  UINT32 RxIRQThresh;
+  UINT32 RxTimeOut;
+  UINT32 RxPacket;
+  UINT32 RxTotalPending;   /* Total Pending count waiting to be sent from USB */
+  UINT32 RxBadPacket;
+  UINT32 RxOverrun;
+} EPINFOSTRUCT, *PEPINFOSTRUCT;
+
+
+typedef enum
+{
+   DEVICE_P5200X10,
+   DEVICE_P5200X180,
+   DEVICE_P5300,
+   DEVICE_RUSHMORE,
+   DEVICE_RUSHMORE_X45,
+   DEVICE_RUSHMORE_X50,
+   #ifdef DEVICE_YELLOWSTONE
+   DEVICE_OLDFAITHFUL
+   #endif
+} eDeviceType;
+
+
+typedef enum
+{
+   NO_UART,                /* No UART support */
+   HW_UART,                /* HW 16550 UART   */
+   VIRTUAL_UART            /* VIRTUAL UART over USB endpoint 3 */
+} eUARTType;
+
+#if USB_SYNC_EP_INT_STAT
+extern UINT32  USB_IDAT_VALUE;
+#endif
+
+extern UINT32  USB_IDAT_IMAGE;
+
+extern HWSTATESTRUCT HWSTATE;
+
+
+#define NELEMENTS(array) \
+        (sizeof(array) / sizeof((array)[0]))
+
+#ifndef STATUS
+#define STATUS long int
+#endif
+
+#define ERROR (-1)
+#define OK     0
+
+
+#endif	//BSPTYPES_H
diff -uNr cnxt-boot-ldr/irqs.h cnxt-boot-ldr.fixes/irqs.h
--- cnxt-boot-ldr/irqs.h	1970-01-01 01:00:00.000000000 +0100
+++ cnxt-boot-ldr.fixes/irqs.h	2006-08-20 15:55:08.000000000 +0200
@@ -0,0 +1,112 @@
+/****************************************************************************
+*
+*	Name:			irqs.h
+*
+*	Description:	
+*
+*	Copyright:		(c) 2002 Conexant Systems Inc.
+*
+*****************************************************************************
+
+  This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+  This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+more details.
+
+  You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc., 59
+Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+****************************************************************************
+*  $Author:   davidsdj  $
+*  $Revision:   1.0  $
+*  $Modtime:   Mar 19 2003 12:28:32  $
+****************************************************************************/
+
+#ifndef __ASM_ARCH_IRQS_H__
+#define __ASM_ARCH_IRQS_H__
+
+#define CNXT_INT_LVL_TIMER_1            0       /* Timer 0 interrupt */
+#define CNXT_INT_LVL_TIMER_2            1       /* Timer 1 interrupt */
+#define CNXT_INT_LVL_TIMER_3            2       /* Timer 2 interrupt */
+#define CNXT_INT_LVL_TIMER_4            3       /* Timer 3 interrupt */
+#define CNXT_INT_LVL_USB                4       /* USB interrupt */
+#define CNXT_INT_LVL_RSVD1              5       /* Reserved */
+#define CNXT_INT_LVL_HOST               6       /* External Host interrupt */
+#define CNXT_INT_LVL_HOST_ERR           7       /* Host Bus error detect */
+#define CNXT_INT_LVL_DMA8               8       /* M2M */
+#define CNXT_INT_LVL_RSVD2              9       /* Reserved */
+#define CNXT_INT_LVL_DMA6              10       /* DSL Rx */
+#define CNXT_INT_LVL_DMA5              11       /* DSL Tx */
+#define CNXT_INT_LVL_DMA4              12       /* Ethernet 2 Receive */
+#define CNXT_INT_LVL_DMA3              13       /* Ethernet 2 Transmit */
+#define CNXT_INT_LVL_DMA2              14       /* Ethernet 1 Receive */
+#define CNXT_INT_LVL_DMA1              15       /* Ethernet 1 Transmit */
+#define CNXT_INT_LVL_RSVD3             16       /* Reserved */
+#define CNXT_INT_LVL_RSVD4             17       /* Reserved */
+#define CNXT_INT_LVL_DMA_ERR           18       /* DMA Errort */
+#define CNXT_INT_LVL_E1_ERR            19       /* EMAC 1 error */
+#define CNXT_INT_LVL_E2_ERR            20       /* EMAC 2 error */
+#define CNXT_INT_LVL_DSL               21       /* DSL intr*/
+#define CNXT_INT_LVL_RSVD5             22       /* Reserved */
+#define CNXT_INT_LVL_RSVD6             23       /* Reserved */
+#define CNXT_INT_LVL_GPIO              24       /* GPIO interrupts */
+#define CNXT_INT_LVL_RSVD7             25       /* Reserved */
+#define CNXT_INT_LVL_COMMTX            26       /* ARM9 Comms Xmit */
+#define CNXT_INT_LVL_COMMRX            27       /* ARM9 Comms Rcv */
+#define CNXT_INT_LVL_SW1               28       /* Software interrupt 1 */
+#define CNXT_INT_LVL_SW2               29       /* Software interrupt 2 */
+#define CNXT_INT_LVL_SW3               30       /* Software interrupt 3 */
+#define CNXT_INT_LVL_SW4               31       /* Software interrupt 4 */
+
+#define CNXT_INT_MASK_TIMER_1        1
+#define CNXT_INT_MASK_TIMER_2        (1 << 1)
+#define CNXT_INT_MASK_TIMER_3        (1 << 2)
+#define CNXT_INT_MASK_TIMER_4        (1 << 3)
+#define CNXT_INT_MASK_USB            (1 << 4)
+#define CNXT_INT_MASK_RSVD1          (1 << 5)
+#define CNXT_INT_MASK_HOST           (1 << 6)
+#define CNXT_INT_MASK_HOST_ERR       (1 << 7)
+#define CNXT_INT_MASK_DMA8           (1 << 8)
+#define CNXT_INT_MASK_RSVD2          (1 << 9)
+#define CNXT_INT_MASK_DMA6           (1 << 10)
+#define CNXT_INT_MASK_DMA5           (1 << 11)
+#define CNXT_INT_MASK_DMA4           (1 << 12)
+#define CNXT_INT_MASK_DMA3           (1 << 13)
+#define CNXT_INT_MASK_DMA2           (1 << 14)
+#define CNXT_INT_MASK_DMA1           (1 << 15)
+#define CNXT_INT_MASK_RSVD3          (1 << 16)
+#define CNXT_INT_MASK_RSVD4          (1 << 17)
+#define CNXT_INT_MASK_DMA_ERR        (1 << 18)
+#define CNXT_INT_MASK_E1_ERR         (1 << 19)
+#define CNXT_INT_MASK_E2_ERR         (1 << 20)
+#define CNXT_INT_MASK_DSL            (1 << 21)
+#define CNXT_INT_MASK_RSVD5          (1 << 22)
+#define CNXT_INT_MASK_RSVD6          (1 << 23)
+#define CNXT_INT_MASK_GPIO           (1 << 24)
+#define CNXT_INT_MASK_RSVD7          (1 << 25)
+#define CNXT_INT_MASK_COMMTX         (1 << 26)
+#define CNXT_INT_MASK_COMMRX         (1 << 27)
+#define CNXT_INT_MASK_SW1            (1 << 28)
+#define CNXT_INT_MASK_SW2            (1 << 29)
+#define CNXT_INT_MASK_SW3            (1 << 30)
+#define CNXT_INT_MASK_SW4            (1 << 31)
+
+#define NR_IRQS           32
+
+/* alias */
+#define IRQ_TIMER         CNXT_INT_LVL_TIMER_1
+
+/* flags for request_irq() */
+#define IRQ_FLG_LOCK      (0x0001)  /* handler is not replaceable   */
+#define IRQ_FLG_REPLACE   (0x0002)  /* replace existing handler     */
+#define IRQ_FLG_FAST      (0x0004)
+#define IRQ_FLG_SLOW      (0x0008)
+#define IRQ_FLG_STD       (0x8000)  /* internally used              */
+
+#endif /* __ASM_ARCH_IRQS_H__ */
diff -uNr cnxt-boot-ldr/kernel_cnxtflash.h cnxt-boot-ldr.fixes/kernel_cnxtflash.h
--- cnxt-boot-ldr/kernel_cnxtflash.h	1970-01-01 01:00:00.000000000 +0100
+++ cnxt-boot-ldr.fixes/kernel_cnxtflash.h	2006-08-20 15:55:10.000000000 +0200
@@ -0,0 +1,131 @@
+/****************************************************************************
+ *
+ *  Name:		cnxtflash.h
+ *
+ *  Description:	Flash programmer header file
+ *
+ *  Copyright (c) 1999-2002 Conexant Systems, Inc.
+ *
+ *	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.
+ *
+ *
+ ***************************************************************************/
+#ifndef _FLASH_H_
+#define _FLASH_H_
+
+#define CNXT_FLASH_MAX_NAME_LEN	20
+
+typedef enum CNXT_FLASH_SEGMENTS 
+{
+	CNXT_FLASH_SEGMENT_1 = 0,
+	CNXT_FLASH_SEGMENT_2 = 1,
+	CNXT_FLASH_SEGMENT_3 = 2,
+	CNXT_FLASH_SEGMENT_4 = 3,
+	CNXT_FLASH_SEGMENT_5 = 4,
+	CNXT_FLASH_SEGMENT_6 = 5,
+	CNXT_FLASH_SEGMENT_7 = 6,
+	CNXT_FLASH_SEGMENT_8 = 7,
+	CNXT_FLASH_SEGMENT_9 = 8,
+	CNXT_FLASH_SEGMENT_10 = 9,
+	CNXT_FLASH_SEGMENT_11 = 10,
+	CNXT_FLASH_SEGMENT_12 = 11,
+	CNXT_FLASH_SEGMENT_13 = 12,
+	CNXT_FLASH_SEGMENT_14 = 13,
+	CNXT_FLASH_SEGMENT_15 = 14,
+	CNXT_FLASH_SEGMENT_16 = 15
+
+} CNXT_FLASH_SEGMENT_E;
+
+typedef enum CNXT_FLASH_OWNERS
+{
+	CNXT_FLASH_OWNER_1 = 0,
+	CNXT_FLASH_OWNER_2 = 1,
+	CNXT_FLASH_OWNER_3 = 2,
+	CNXT_FLASH_OWNER_4 = 3,
+	CNXT_FLASH_OWNER_5 = 4,
+	CNXT_FLASH_OWNER_6 = 5,
+	CNXT_FLASH_OWNER_7 = 6,
+	CNXT_FLASH_OWNER_8 = 7,
+	CNXT_FLASH_OWNER_9 = 8,
+	CNXT_FLASH_OWNER_10 = 9,
+	CNXT_FLASH_OWNER_11 = 10,
+	CNXT_FLASH_OWNER_12 = 11,
+	CNXT_FLASH_OWNER_13 = 12,
+	CNXT_FLASH_OWNER_14 = 13,
+	CNXT_FLASH_OWNER_15 = 14,
+	CNXT_FLASH_UNUSED = 15
+} CNXT_FLASH_OWNER_E;
+
+typedef enum CNXT_FLASH_STATUS
+{
+	CNXT_FLASH_SUCCESS,
+	CNXT_FLASH_DATA_ERROR,
+	CNXT_FLASH_OWNER_ERROR,
+#ifdef CONFIG_BD_TIBURON
+	CNXT_FLASH_DATA_CRC_ERROR,
+	CNXT_FLASH_DATA_SIZE_ERROR
+#endif
+} CNXT_FLASH_STATUS_E;
+
+typedef struct CNXT_FLASH_SEGMENT
+{
+	CNXT_FLASH_SEGMENT_E 	segmentNumber;		
+	DWORD			segmentSize;
+	DWORD			startFlashAddress;
+	DWORD			startDataAddress;
+	CNXT_FLASH_OWNER_E	owner;	
+	DWORD			version;
+	DWORD			reserved1;
+	DWORD			reserved2;
+	DWORD			dataLength;
+	DWORD 			headerCRC;
+	DWORD			dataCRC;
+} CNXT_FLASH_SEGMENT_T, *PCNXT_FLASH_SEGMENT_T;
+
+CNXT_FLASH_STATUS_E CnxtFlashOpen( CNXT_FLASH_SEGMENT_E segment );
+
+BOOL CnxtFlashReadRequest( 
+	CNXT_FLASH_SEGMENT_E segment, 
+	UINT16 * psdramStartAddr, 
+	UINT32 size 
+);
+
+BOOL CnxtFlashWriteRequest( 
+	CNXT_FLASH_SEGMENT_E segment, 
+	UINT16 * psdramStartAddr, 
+	UINT32 size 
+);
+
+
+#define CNXT_BSP_FLASH_SEGMENT	CNXT_FLASH_SEGMENT_1
+
+#if CONFIG_CNXT_ADSL || CONFIG_CNXT_ADSL_MODULE
+#define CNXT_ADSL_FLASH_SEGMENT		CNXT_FLASH_SEGMENT_2
+#elif CONFIG_CNXT_GSHDSL || CONFIG_CNXT_GSHDSL_MODULE
+#define CNXT_DSL_FLASH_SEGMENT	CNXT_FLASH_SEGMENT_2
+#endif
+
+#if CONFIG_CNXT_VOIP || CONFIG_CNXT_VOIP_MODULE
+#define CNXT_VOIP_FLASH_SEGMENT		CNXT_FLASH_SEGMENT_3
+#endif
+
+#define CNXT_TESLA_FLASH_SEGMENT	CNXT_FLASH_SEGMENT_4
+
+#if CONFIG_CNXT_WLAN || CONFIG_CNXT_MODULE
+#define CNXT_WLAN_FLASH_SEGMENT		CNXT_FLASH_SEGMENT_5
+#endif
+
+#define CNXT_BSPBOOT_FLASH_SEGMENT	CNXT_FLASH_SEGMENT_6
+
+#if CONFIG_CNXT_GSHDSL || CONFIG_CNXT_GSHDSL_MODULE
+#define CNXT_GSHDSL_FLASH_SEGMENT	CNXT_FLASH_SEGMENT_7
+#endif
+
+#endif 
+
+
+
+
+
