Index: linux-2.6.15.4/Makefile =================================================================== --- linux-2.6.15.4.orig/Makefile +++ linux-2.6.15.4/Makefile @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 15 -EXTRAVERSION = .4 +EXTRAVERSION = .4-iop1 NAME=Sliding Snow Leopard # *DOCUMENTATION* @@ -190,8 +190,8 @@ SUBARCH := $(shell uname -m | sed -e s/i # Default value for CROSS_COMPILE is not to prefix executables # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile -ARCH ?= $(SUBARCH) -CROSS_COMPILE ?= +ARCH ?= arm +CROSS_COMPILE ?= armv5l-linux- # Architecture as present in compile.h UTS_MACHINE := $(ARCH) Index: linux-2.6.15.4/arch/arm/Kconfig.debug =================================================================== --- linux-2.6.15.4.orig/arch/arm/Kconfig.debug +++ linux-2.6.15.4/arch/arm/Kconfig.debug @@ -2,12 +2,26 @@ menu "Kernel hacking" source "lib/Kconfig.debug" +config XSCALE_BDI2000 + bool "Support for BDI2000 JTAG Debugger" + depends on CPU_XSCALE + default n + help + Support for Abatron BDI2000 JTAG Debugger + +config XSCALE_MACRAIGOR + bool "Support for MaCraigor (Raven) JTAG Debugger" + depends on CPU_XSCALE + default n + help + Support for MaCraigor JTAG Debugger. Tested on Raven. + # RMK wants arm kernels compiled with frame pointers so hardwire this to y. # If you know what you are doing and are willing to live without stack # traces, you can get a slightly smaller kernel by setting this option to # n, but then RMK will have to kill you ;). config FRAME_POINTER - bool + bool "Include Frame Pointers" default y help If you say N here, the resulting kernel will be slightly smaller and Index: linux-2.6.15.4/arch/arm/mach-iop3xx/iop321-pci.c =================================================================== --- linux-2.6.15.4.orig/arch/arm/mach-iop3xx/iop321-pci.c +++ linux-2.6.15.4/arch/arm/mach-iop3xx/iop321-pci.c @@ -198,23 +198,22 @@ struct pci_bus *iop321_scan_bus(int nr, void iop321_init(void) { DBG("PCI: Intel 80321 PCI init code.\n"); - DBG("ATU: IOP321_ATUCMD=0x%04x\n", *IOP321_ATUCMD); - DBG("ATU: IOP321_OMWTVR0=0x%04x, IOP321_OIOWTVR=0x%04x\n", + DBG("\tATU: IOP321_ATUCMD=0x%04x\n", *IOP321_ATUCMD); + DBG("\tATU: IOP321_OMWTVR0=0x%04x, IOP321_OIOWTVR=0x%04x\n", *IOP321_OMWTVR0, *IOP321_OIOWTVR); - DBG("ATU: IOP321_ATUCR=0x%08x\n", *IOP321_ATUCR); - DBG("ATU: IOP321_IABAR0=0x%08x IOP321_IALR0=0x%08x IOP321_IATVR0=%08x\n", - *IOP321_IABAR0, *IOP321_IALR0, *IOP321_IATVR0); - DBG("ATU: IOP321_OMWTVR0=0x%08x\n", *IOP321_OMWTVR0); - DBG("ATU: IOP321_IABAR1=0x%08x IOP321_IALR1=0x%08x\n", - *IOP321_IABAR1, *IOP321_IALR1); - DBG("ATU: IOP321_ERBAR=0x%08x IOP321_ERLR=0x%08x IOP321_ERTVR=%08x\n", - *IOP321_ERBAR, *IOP321_ERLR, *IOP321_ERTVR); - DBG("ATU: IOP321_IABAR2=0x%08x IOP321_IALR2=0x%08x IOP321_IATVR2=%08x\n", - *IOP321_IABAR2, *IOP321_IALR2, *IOP321_IATVR2); - DBG("ATU: IOP321_IABAR3=0x%08x IOP321_IALR3=0x%08x IOP321_IATVR3=%08x\n", - *IOP321_IABAR3, *IOP321_IALR3, *IOP321_IATVR3); + DBG("\tATU: IOP321_ATUCR=0x%08x\n", *IOP321_ATUCR); + DBG("\tATU: IOP321_IABAR0=0x%08x IOP321_IALR0=0x%08x IOP321_IATVR0=%08x\n", *IOP321_IABAR0, *IOP321_IALR0, *IOP321_IATVR0); + DBG("\tATU: IOP321_ERBAR=0x%08x IOP321_ERLR=0x%08x IOP321_ERTVR=%08x\n", *IOP321_ERBAR, *IOP321_ERLR, *IOP321_ERTVR); + DBG("\tATU: IOP321_IABAR2=0x%08x IOP321_IALR2=0x%08x IOP321_IATVR2=%08x\n", *IOP321_IABAR2, *IOP321_IALR2, *IOP321_IATVR2); + DBG("\tATU: IOP321_IABAR3=0x%08x IOP321_IALR3=0x%08x IOP321_IATVR3=%08x\n", *IOP321_IABAR3, *IOP321_IALR3, *IOP321_IATVR3); +#if 0 + hook_fault_code(4, iop321_pci_abort, SIGBUS, "external abort on linefetch"); + hook_fault_code(6, iop321_pci_abort, SIGBUS, "external abort on linefetch"); + hook_fault_code(8, iop321_pci_abort, SIGBUS, "external abort on non-linefetch"); + hook_fault_code(10, iop321_pci_abort, SIGBUS, "external abort on non-linefetch"); +#endif hook_fault_code(16+6, iop321_pci_abort, SIGBUS, "imprecise external abort"); } Index: linux-2.6.15.4/arch/arm/oprofile/common.c =================================================================== --- linux-2.6.15.4.orig/arch/arm/oprofile/common.c +++ linux-2.6.15.4/arch/arm/oprofile/common.c @@ -150,6 +150,7 @@ int __init oprofile_arch_init(struct opr ops->cpu_type = op_arm_model->name; ops->backtrace = arm_backtrace; printk(KERN_INFO "oprofile: using %s\n", spec->name); + ret = 0; } return ret; Index: linux-2.6.15.4/arch/arm/oprofile/op_model_xscale.c =================================================================== --- linux-2.6.15.4.orig/arch/arm/oprofile/op_model_xscale.c +++ linux-2.6.15.4/arch/arm/oprofile/op_model_xscale.c @@ -33,9 +33,6 @@ #define PMU_CNT64 0x008 /* Make CCNT count every 64th cycle */ /* TODO do runtime detection */ -#ifdef CONFIG_ARCH_IOP310 -#define XSCALE_PMU_IRQ IRQ_XS80200_PMU -#endif #ifdef CONFIG_ARCH_IOP321 #define XSCALE_PMU_IRQ IRQ_IOP321_CORE_PMU #endif Index: linux-2.6.15.4/drivers/mtd/maps/Kconfig =================================================================== --- linux-2.6.15.4.orig/drivers/mtd/maps/Kconfig +++ linux-2.6.15.4/drivers/mtd/maps/Kconfig @@ -552,8 +552,8 @@ config MTD_PCI tristate "PCI MTD driver" depends on MTD && PCI && MTD_COMPLEX_MAPPINGS help - Mapping for accessing flash devices on add-in cards like the Intel XScale - IQ80310 card, and the Intel EBSA285 card in blank ROM programming mode + Mapping for accessing flash devices on add-in cards + and the Intel EBSA285 card in blank ROM programming mode (please see the manual for the link settings). If you are not sure, say N. Index: linux-2.6.15.4/drivers/mtd/maps/Makefile =================================================================== --- linux-2.6.15.4.orig/drivers/mtd/maps/Makefile +++ linux-2.6.15.4/drivers/mtd/maps/Makefile @@ -16,7 +16,6 @@ obj-$(CONFIG_MTD_CSTM_MIPS_IXX) += cstm_ obj-$(CONFIG_MTD_DC21285) += dc21285.o obj-$(CONFIG_MTD_DILNETPC) += dilnetpc.o obj-$(CONFIG_MTD_EPXA10DB) += epxa10db-flash.o -obj-$(CONFIG_MTD_IQ80310) += iq80310.o obj-$(CONFIG_MTD_L440GX) += l440gx.o obj-$(CONFIG_MTD_AMD76XROM) += amd76xrom.o obj-$(CONFIG_MTD_ICHXROM) += ichxrom.o Index: linux-2.6.15.4/drivers/scsi/Kconfig =================================================================== --- linux-2.6.15.4.orig/drivers/scsi/Kconfig +++ linux-2.6.15.4/drivers/scsi/Kconfig @@ -586,10 +586,10 @@ config SCSI_SATA_VIA If unsure, say N. config SCSI_SATA_VITESSE - tristate "VITESSE VSC-7174 SATA support" + tristate "VITESSE VSC-7174" depends on SCSI_SATA && PCI help - This option enables support for Vitesse VSC7174 Serial ATA. + This option enables support for Vitesse VSC7174. If unsure, say N. Index: linux-2.6.15.4/include/asm-arm/arch-iop3xx/debug-macro.S =================================================================== --- linux-2.6.15.4.orig/include/asm-arm/arch-iop3xx/debug-macro.S +++ linux-2.6.15.4/include/asm-arm/arch-iop3xx/debug-macro.S @@ -40,7 +40,7 @@ .endm .macro waituart,rd,rx -#if !defined(CONFIG_ARCH_IQ80321) || !defined(CONFIG_ARCH_IQ31244) || !defined(CONFIG_ARCH_IQ80331) +#if !defined(CONFIG_ARCH_IQ80321) || !defined(CONFIG_ARCH_IQ31244) || !defined(CONFIG_ARCH_IQ80331) || !defined(CONFIG_MACH_IQ80332) 1001: ldrb \rd, [\rx, #0x6] tst \rd, #0x10 beq 1001b Index: linux-2.6.15.4/include/asm-arm/arch-iop3xx/hardware.h =================================================================== --- linux-2.6.15.4.orig/include/asm-arm/arch-iop3xx/hardware.h +++ linux-2.6.15.4/include/asm-arm/arch-iop3xx/hardware.h @@ -43,15 +43,29 @@ extern unsigned int processor_id; * Generic chipset bits * */ -#include "iop321.h" -#include "iop331.h" +#if defined(CONFIG_ARCH_IOP321) + #include "iop321.h" +#elif defined(CONFIG_ARCH_IOP331) + #include "iop331.h" +#else + #error "No IOP type selected" +#endif /* * Board specific bits */ -#include "iq80321.h" -#include "iq31244.h" -#include "iq80331.h" -#include "iq80332.h" + + +#if defined(CONFIG_ARCH_IQ80321) + #include "iq80321.h" +#elif defined(CONFIG_ARCH_IQ31244) + #include "iq31244.h" +#elif defined(CONFIG_ARCH_IQ80331) + #include "iq80331.h" +#elif defined(CONFIG_MACH_IQ80332) + #include "iq80332.h" +#else + #error "No board type selected" +#endif #endif /* _ASM_ARCH_HARDWARE_H */ Index: linux-2.6.15.4/include/asm-arm/arch-iop3xx/iop321.h =================================================================== --- linux-2.6.15.4.orig/include/asm-arm/arch-iop3xx/iop321.h +++ linux-2.6.15.4/include/asm-arm/arch-iop3xx/iop321.h @@ -202,6 +202,8 @@ #define IOP321_PBBAR5 (volatile u32 *)IOP321_REG_ADDR(0x000006B0) #define IOP321_PBLR5 (volatile u32 *)IOP321_REG_ADDR(0x000006B4) #define IOP321_PBDSCR (volatile u32 *)IOP321_REG_ADDR(0x000006B8) +#define IOP321_PBI_WIDTH_16 1 +#define IOP321_PBI_WIDTH_8 0 /* Reserved 0x000006BC */ #define IOP321_PMBR0 (volatile u32 *)IOP321_REG_ADDR(0x000006C0) /* Reserved 0x000006C4 through 0x000006DC */ Index: linux-2.6.15.4/include/asm-arm/arch-iop3xx/iop331.h =================================================================== --- linux-2.6.15.4.orig/include/asm-arm/arch-iop3xx/iop331.h +++ linux-2.6.15.4/include/asm-arm/arch-iop3xx/iop331.h @@ -21,8 +21,7 @@ */ #ifndef __ASSEMBLY__ #ifdef CONFIG_ARCH_IOP331 -/*#define iop_is_331() ((processor_id & 0xffffffb0) == 0x69054090) */ -#define iop_is_331() ((processor_id & 0xffffff30) == 0x69054010) +#define iop_is_331() ((processor_id & 0xfffff030) == 0x69054010) #else #define iop_is_331() 0 #endif Index: linux-2.6.15.4/include/asm-arm/arch-iop3xx/iq31244.h =================================================================== --- linux-2.6.15.4.orig/include/asm-arm/arch-iop3xx/iq31244.h +++ linux-2.6.15.4/include/asm-arm/arch-iop3xx/iq31244.h @@ -15,7 +15,10 @@ #define IQ31244_7SEG_1 0xfe840000 /* 7-Segment MSB */ #define IQ31244_7SEG_0 0xfe850000 /* 7-Segment LSB (WO) */ #define IQ31244_ROTARY_SW 0xfe8d0000 /* Rotary Switch */ -#define IQ31244_BATT_STAT 0xfe8f0000 /* Battery Status */ +#define IQ31244_CFLASHBASE 0xfe8f0000 /* Compact Flash Base */ +#define IQ31244_IDE_BASE (IQ31244_CFLASHBASE + 0x800) +#define PBI_CF_IDE_BASE (IQ31244_IDE_BASE) + #ifndef __ASSEMBLY__ extern void iq31244_map_io(void); Index: linux-2.6.15.4/include/asm-arm/arch-iop3xx/uncompress.h =================================================================== --- linux-2.6.15.4.orig/include/asm-arm/arch-iop3xx/uncompress.h +++ linux-2.6.15.4/include/asm-arm/arch-iop3xx/uncompress.h @@ -40,14 +40,15 @@ static void putstr(const char *s) static __inline__ void __arch_decomp_setup(unsigned long arch_id) { - if(machine_is_iq80321()) - uart_base = (volatile UTYPE)IQ80321_UART; - else if(machine_is_iq31244()) - uart_base = (volatile UTYPE)IQ31244_UART; - else if(machine_is_iq80331() || machine_is_iq80332()) - uart_base = (volatile UTYPE)IOP331_UART0_PHYS; - else - uart_base = (volatile UTYPE)0xfe800000; + #if defined(CONFIG_ARCH_IQ80321) + uart_base = (volatile UTYPE)IQ80321_UART; + #elif defined(CONFIG_ARCH_IQ31244) + uart_base = (volatile UTYPE)IQ31244_UART; + #elif defined(CONFIG_ARCH_IOP331) + uart_base = (volatile UTYPE)IOP331_UART0_PHYS; + #else + #error "No Arch type setup" + #endif } /*