bump storcenter kernel to 2.6.15.7, improved config, much
authorAndrew Wilcox <andy@protium.com>
Wed, 16 Jan 2008 01:32:39 +0000 (01:32 +0000)
committerAndrew Wilcox <andy@protium.com>
Wed, 16 Jan 2008 01:32:39 +0000 (01:32 +0000)
smaller kernel patch.

conf/machine/storcenter.conf
packages/linux/linux-storcenter/defconfig-2.6.15.7 [new file with mode: 0644]
packages/linux/linux-storcenter/kernel.patch-2.6.15.7 [new file with mode: 0644]
packages/linux/linux-storcenter_2.6.15.7.bb [new file with mode: 0644]

index 519c565..5b69bbd 100644 (file)
@@ -1,23 +1,27 @@
 TARGET_ARCH = "powerpc"
-TARGET_OS = "linux"
 TARGET_FPU = "hard"
-PACKAGE_EXTRA_ARCHS = "ppc ppc603e"
-
-INHERIT += "storcenter-image"
+PACKAGE_EXTRA_ARCHS = "ppc603e"
 
 # terminal specs - console, but no other ports
-SERIAL_CONSOLE="115200 console"
+SERIAL_CONSOLE="115200 ttyS0"
 USE_VT="0"
 
-MODUTILS=26
-MACHINE_FEATURES= "kernel26 usbhost pci ext2 uboot"
+# uboot switches
+UBOOT_MACHINE="Sandpoint8240_config"
+
+# plug in other tasks - not "really" used unless we are using task-boot
+MACHINE_FEATURES= "kernel26 usbhost pci ext2"
 PREFERRED_PROVIDER_virtual/kernel = "linux-storcenter"
+PREFERRED_VERSION_udev = "115"
 
-# We want udev support in the image
-udevdir = "/dev"
+# the StorCenter Control Daemon provides cmdline fan and light control
+MACHINE_EXTRA_RDEPENDS = "sccd"
 
-EXTRA_IMAGECMD = "--big-endian"
-ERASEBLOCK_SIZE = "0x10000"
 IMAGE_FSTYPES = "jffs2"
+KERNEL_IMAGETYPE ?= uImage
+EXTRA_IMAGECMD_jffs2 += "--pad --big-endian --eraseblock=0x10000"
+# must be in HEX
+FLASH_KERNEL_SIZE=0x170000
+FLASH_ROOT_SIZE=0x590000
 
 require conf/machine/include/tune-ppc603e.inc
diff --git a/packages/linux/linux-storcenter/defconfig-2.6.15.7 b/packages/linux/linux-storcenter/defconfig-2.6.15.7
new file mode 100644 (file)
index 0000000..de5e5b8
--- /dev/null
@@ -0,0 +1,1176 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.15.7
+# Tue Jan 15 08:24:59 2008
+#
+CONFIG_MMU=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_PPC=y
+CONFIG_PPC32=y
+CONFIG_GENERIC_NVRAM=y
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+# CONFIG_IKCONFIG is not set
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_EMBEDDED=y
+# CONFIG_KALLSYMS is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_OBSOLETE_MODPARM=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Block layer
+#
+CONFIG_LBD=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+# CONFIG_IOSCHED_AS is not set
+CONFIG_IOSCHED_DEADLINE=y
+# CONFIG_IOSCHED_CFQ is not set
+# CONFIG_DEFAULT_AS is not set
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+
+#
+# Processor
+#
+CONFIG_6xx=y
+# CONFIG_40x is not set
+# CONFIG_44x is not set
+# CONFIG_POWER3 is not set
+# CONFIG_POWER4 is not set
+# CONFIG_8xx is not set
+# CONFIG_E200 is not set
+# CONFIG_E500 is not set
+CONFIG_PPC_FPU=y
+# CONFIG_ALTIVEC is not set
+# CONFIG_TAU is not set
+# CONFIG_KEXEC is not set
+# CONFIG_CPU_FREQ is not set
+# CONFIG_WANT_EARLY_SERIAL is not set
+CONFIG_PPC_GEN550=y
+CONFIG_PPC_STD_MMU=y
+
+#
+# Platform options
+#
+# CONFIG_PPC_MULTIPLATFORM is not set
+# CONFIG_APUS is not set
+# CONFIG_KATANA is not set
+# CONFIG_WILLOW is not set
+# CONFIG_CPCI690 is not set
+# CONFIG_POWERPMC250 is not set
+# CONFIG_CHESTNUT is not set
+# CONFIG_SPRUCE is not set
+# CONFIG_HDPU is not set
+# CONFIG_EV64260 is not set
+# CONFIG_LOPEC is not set
+# CONFIG_MVME5100 is not set
+# CONFIG_PPLUS is not set
+# CONFIG_PRPMC750 is not set
+# CONFIG_PRPMC800 is not set
+# CONFIG_SANDPOINT is not set
+# CONFIG_RADSTONE_PPC7D is not set
+# CONFIG_PAL4 is not set
+# CONFIG_GEMINI is not set
+# CONFIG_EST8260 is not set
+# CONFIG_SBC82xx is not set
+CONFIG_IOMEGA8241=y
+# CONFIG_SBS8260 is not set
+# CONFIG_RPX8260 is not set
+# CONFIG_TQM8260 is not set
+# CONFIG_ADS8272 is not set
+# CONFIG_PQ2FADS is not set
+# CONFIG_LITE5200 is not set
+# CONFIG_MPC834x_SYS is not set
+# CONFIG_EV64360 is not set
+CONFIG_MPC10X_BRIDGE=y
+CONFIG_MPC10X_OPENPIC=y
+# CONFIG_MPC10X_STORE_GATHERING is not set
+# CONFIG_SMP is not set
+# CONFIG_HIGHMEM is not set
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=y
+CONFIG_CMDLINE_BOOL=y
+CONFIG_CMDLINE="console=ttyS0,115200"
+# CONFIG_PM is not set
+# CONFIG_SOFTWARE_SUSPEND is not set
+CONFIG_SECCOMP=y
+CONFIG_ISA_DMA_API=y
+
+#
+# Bus options
+#
+CONFIG_GENERIC_ISA_DMA=y
+# CONFIG_PPC_I8259 is not set
+CONFIG_PPC_INDIRECT_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_LEGACY_PROC is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Advanced setup
+#
+# CONFIG_ADVANCED_OPTIONS is not set
+
+#
+# Default settings for advanced configuration options are used
+#
+CONFIG_HIGHMEM_START=0xfe000000
+CONFIG_LOWMEM_SIZE=0x30000000
+CONFIG_KERNEL_START=0xc0000000
+CONFIG_TASK_SIZE=0x80000000
+CONFIG_BOOT_LOAD=0x00800000
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=m
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_BIC=y
+# CONFIG_IPV6 is not set
+# CONFIG_NETFILTER is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_IEEE80211 is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+# CONFIG_CONNECTOR is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLOCK=y
+CONFIG_FTL=y
+CONFIG_NFTL=y
+CONFIG_NFTL_RW=y
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_CFI_INTELEXT is not set
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_AMDSTD_RETRY=0
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_START=0xFF800000
+CONFIG_MTD_PHYSMAP_LEN=0x00800000
+CONFIG_MTD_PHYSMAP_BANKWIDTH=1
+# CONFIG_MTD_PLATRAM is not set
+CONFIG_MTD_IOMEGA8241=y
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLKMTD is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+# CONFIG_MTD_NAND is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+# CONFIG_BLK_DEV_RAM is not set
+CONFIG_BLK_DEV_RAM_COUNT=16
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=y
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
+CONFIG_IDEDISK_MULTI_MODE=y
+# CONFIG_BLK_DEV_IDECD is not set
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_BLK_DEV_IDESCSI is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=y
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_IDEPCI_SHARE_IRQ is not set
+CONFIG_BLK_DEV_OFFBOARD=y
+# CONFIG_BLK_DEV_GENERIC is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+# CONFIG_BLK_DEV_SL82C105 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+# CONFIG_IDEDMA_PCI_AUTO is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_BLK_DEV_IT821X is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+CONFIG_BLK_DEV_VIA82CXXX=y
+# CONFIG_IDE_ARM is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_IDEDMA_AUTO is not set
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=y
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=y
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_MEGARAID_SAS is not set
+# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+CONFIG_SCSI_QLA2XXX=y
+# CONFIG_SCSI_QLA21XX is not set
+# CONFIG_SCSI_QLA22XX is not set
+# CONFIG_SCSI_QLA2300 is not set
+# CONFIG_SCSI_QLA2322 is not set
+# CONFIG_SCSI_QLA6312 is not set
+# CONFIG_SCSI_QLA24XX is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=y
+CONFIG_MD_LINEAR=y
+CONFIG_MD_RAID0=y
+CONFIG_MD_RAID1=y
+CONFIG_MD_RAID10=y
+CONFIG_MD_RAID5=y
+# CONFIG_MD_RAID6 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_MD_FAULTY is not set
+# CONFIG_BLK_DEV_DM is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+# CONFIG_FUSION_SPI is not set
+# CONFIG_FUSION_FC is not set
+# CONFIG_FUSION_SAS is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+
+#
+# Macintosh device drivers
+#
+# CONFIG_WINDFARM is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=m
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# PHY device support
+#
+
+#
+# Ethernet (10 or 100Mbit)
+#
+# CONFIG_NET_ETHERNET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+CONFIG_R8169=y
+# CONFIG_R8169_NAPI is not set
+# CONFIG_SIS190 is not set
+# CONFIG_SKGE is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+# CONFIG_CHELSIO_T1 is not set
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NET_FC is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+# CONFIG_INPUT is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=2
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+# CONFIG_SERIAL_8250_SHARE_IRQ is not set
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_RSA is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_NVRAM is not set
+CONFIG_GEN_RTC=y
+# CONFIG_GEN_RTC_X is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+CONFIG_8241EMI=y
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+# CONFIG_TELCLOCK is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_I810 is not set
+# CONFIG_I2C_PIIX4 is not set
+CONFIG_I2C_MPC=y
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_PROSAVAGE is not set
+# CONFIG_I2C_SAVAGE4 is not set
+# CONFIG_SCx200_ACB is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+# CONFIG_I2C_VOODOO3 is not set
+# CONFIG_I2C_PCA_ISA is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+CONFIG_SENSORS_DS1337=y
+# CONFIG_SENSORS_DS1374 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_RTC8564 is not set
+# CONFIG_SENSORS_M41T00 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_RTC_X1205_I2C is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Hardware Monitoring support
+#
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ASB100 is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_FSCHER is not set
+# CONFIG_SENSORS_FSCPOS is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia Capabilities Port drivers
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_EHCI_SPLIT_ISO is not set
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+# CONFIG_USB_ISP116X_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+CONFIG_USB_PRINTER=y
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=y
+CONFIG_USB_STORAGE_DPCM=y
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+
+#
+# USB Input Devices
+#
+# CONFIG_USB_HID is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB Multimedia devices
+#
+# CONFIG_USB_DABUSB is not set
+
+#
+# Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_MON is not set
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGETKIT is not set
+# CONFIG_USB_PHIDGETSERVO is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TEST is not set
+
+#
+# USB DSL modem support
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# InfiniBand support
+#
+# CONFIG_INFINIBAND is not set
+
+#
+# SN Devices
+#
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+# CONFIG_XFS_RT is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=y
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_RELAYFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+# CONFIG_NFS_FS is not set
+# CONFIG_NFSD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+# CONFIG_9P_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=y
+
+#
+# Library routines
+#
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+CONFIG_CRC32=y
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_SERIAL_TEXT_DEBUG=y
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+# CONFIG_CRYPTO is not set
+
+#
+# Hardware crypto devices
+#
diff --git a/packages/linux/linux-storcenter/kernel.patch-2.6.15.7 b/packages/linux/linux-storcenter/kernel.patch-2.6.15.7
new file mode 100644 (file)
index 0000000..030ef64
--- /dev/null
@@ -0,0 +1,1181 @@
+--- linux-2.6.15.orig/arch/ppc/platforms/iomega8241.c  1969-12-31 16:00:00.000000000 -0800
++++ linux-2.6.15/arch/ppc/platforms/iomega8241.c       2008-01-07 16:56:45.628534603 -0800
+@@ -0,0 +1,603 @@
++/*
++ * arch/ppc/platforms/iomega8241.c
++ *
++ * The Iomega StorCenter Network Hard Drive platform is based on the
++ * original sandpoint test platform.  That GNU copyright information
++ * is reproduced below:
++ * 
++ * Board setup routines for the Motorola SPS Sandpoint Test Platform.
++ *
++ * Author: Mark A. Greer
++ *     mgreer@mvista.com
++ *
++ * 2000-2003 (c) MontaVista Software, Inc.  This file is licensed under
++ * the terms of the GNU General Public License version 2.  This program
++ * is licensed "as is" without any warranty of any kind, whether express
++ * or implied.
++ */
++
++/*
++ * Iomega StorCenter Network Hard Drive.
++ * 
++ * Maintainer (Iomega Port): Anthony Russello
++ *   russello@iomega.com
++ * Much of the below code was taken from the original sandpoint.c/.h port
++ * done my Mark A. Greer (see above copyright information).  It was adapted
++ * to support a custom board.
++ */
++
++#include <linux/config.h>
++#include <linux/stddef.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/errno.h>
++#include <linux/reboot.h>
++#include <linux/pci.h>
++#include <linux/kdev_t.h>
++#include <linux/major.h>
++#include <linux/initrd.h>
++#include <linux/console.h>
++#include <linux/delay.h>
++#include <linux/irq.h>
++#include <linux/ide.h>
++#include <linux/seq_file.h>
++#include <linux/root_dev.h>
++#include <linux/serial.h>
++#include <linux/tty.h>        /* for linux/serial_core.h */
++#include <linux/serial_8250.h>
++
++#include <asm/system.h>
++#include <asm/pgtable.h>
++#include <asm/page.h>
++#include <asm/time.h>
++#include <asm/dma.h>
++#include <asm/io.h>
++#include <asm/machdep.h>
++#include <asm/prom.h>
++#include <asm/smp.h>
++#include <asm/vga.h>
++#include <asm/open_pic.h>
++#include <asm/todc.h>
++#include <asm/bootinfo.h>
++#include <asm/mpc10x.h>
++#include <asm/pci-bridge.h>
++#include <asm/kgdb.h>
++
++#include "iomega8241.h"
++
++/* Real Time Clock */
++extern spinlock_t rtc_lock;
++extern int ds1337_do_command(int id, int cmd, void *arg);
++#define DS1337_GET_DATE         0
++#define DS1337_SET_DATE         1
++
++unsigned char __res[sizeof(bd_t)];
++
++static void iomega8241_halt(void);
++
++/*
++ * Define all of the IRQ senses and polarities.  
++ */
++static u_char iomega8241_openpic_initsenses[] __initdata = {
++      (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* 0: AN983B */
++      (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* 1: IDE VIA DS6410 */
++      (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* 2: USB */
++      (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* 3: USB */
++      (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* 4: USB */
++      (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* 5: UART0 */
++      (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* 6: UART1 */
++};
++
++/*
++ * Define all of the PCI IRQ Mappings
++ */
++static inline int
++iomega8241_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin)
++{
++      static char pci_irq_table[][4] =
++      /*
++       *      PCI IDSEL/INTPIN->INTLINE
++       *         A   B   C   D
++       */
++      {
++              {  1,  1,  0,  0 },     
++              {  2,  3,  4,  1 },     
++              {  0,  0,  4,  4 },     
++              {  3,  3,  4,  4 },     
++              {  3,  3,  4,  4 },     
++      };
++
++      const long min_idsel = 13, max_idsel = 17, irqs_per_slot = 4;
++      return PCI_IRQ_TABLE_LOOKUP;
++}
++
++static int                     
++iomega8241_exclude_device(u_char bus, u_char devfn)
++{
++      if ((bus == 0) && (PCI_SLOT(devfn) == IOMEGA8241_HOST_BRIDGE_IDSEL))
++              return PCIBIOS_DEVICE_NOT_FOUND;
++      else
++              return PCIBIOS_SUCCESSFUL;
++}
++
++static void __init
++iomega8241_find_bridges(void)
++{
++      struct pci_controller   *hose;
++
++      hose = pcibios_alloc_controller();
++
++      if (!hose)
++              return;
++
++      hose->first_busno = 0;
++      hose->last_busno = 0x1;
++
++      if (mpc10x_bridge_init(hose,
++                             MPC10X_MEM_MAP_B,
++                             MPC10X_MEM_MAP_B,
++                             MPC10X_MAPB_EUMB_BASE) == 0) {
++                                         
++              ppc_md.pci_exclude_device = iomega8241_exclude_device;
++              hose->last_busno = pciauto_bus_scan(hose, hose->first_busno);
++              ppc_md.pcibios_fixup = NULL;
++              ppc_md.pcibios_fixup_bus = NULL;
++              ppc_md.pci_swizzle = common_swizzle;
++              ppc_md.pci_map_irq = iomega8241_map_irq;        
++      }
++      else {
++              if (ppc_md.progress)
++                      ppc_md.progress("Bridge init failed", 0x100);
++              printk("Host bridge init failed\n");
++      }
++      return;
++}
++
++
++static ulong
++get_bus_frequency(void)
++{
++      bd_t *bp = (bd_t *)__res;
++      ulong freq;
++      if (133333332 == bp->bi_busfreq)
++              freq = 132000000;
++      if (99999999 == bp->bi_busfreq)
++              freq = 100000000;
++      return(freq);
++}
++
++
++static void
++iomega8241_early_serial_map(void) 
++{
++#if defined(CONFIG_SERIAL_8250) 
++      struct plat_serial8250_port *pdata;
++      bd_t *binfo = (bd_t *) __res;
++
++        pdata = (struct plat_serial8250_port *) ppc_sys_get_pdata(MPC10X_UART0);
++      pdata[0].uartclk = get_bus_frequency();
++      pdata[0].membase = (unsigned char __iomem *) IOMEGA8241_SERIAL_0;
++
++        pdata = (struct plat_serial8250_port *) ppc_sys_get_pdata(MPC10X_UART1);
++      pdata[0].uartclk = get_bus_frequency();
++      pdata[0].membase = (unsigned char __iomem *) IOMEGA8241_SERIAL_1;
++#endif
++}
++
++static void __init
++iomega8241_setup_arch(void)
++{
++      int i = 0;
++
++      loops_per_jiffy = 100000000 / HZ;
++
++#ifdef CONFIG_BLK_DEV_INITRD
++      if (initrd_start)
++              ROOT_DEV = Root_RAM0;
++      else
++#endif
++#ifdef        CONFIG_ROOT_NFS
++              ROOT_DEV = Root_NFS;
++#else
++              ROOT_DEV = Root_HDA1;
++#endif
++
++      /* Lookup PCI host bridges */
++      iomega8241_find_bridges();
++
++      iomega8241_early_serial_map();
++
++      printk(KERN_INFO "Iomega StorCenter Network Hard Drive\n");
++      printk(KERN_INFO "Linux Kernel by Protium Computing\n");
++
++      /* DINK32 12.3 and below do not correctly enable any caches.
++       * We will do this now with good known values.  Future versions
++       * of DINK32 are supposed to get this correct.
++       */
++      if (cpu_has_feature(CPU_FTR_SPEC7450))
++              /* 745x is different.  We only want to pass along enable. */
++              _set_L2CR(L2CR_L2E);
++      else if (cpu_has_feature(CPU_FTR_L2CR))
++              /* All modules have 1MB of L2.  We also assume that an
++               * L2 divisor of 3 will work.
++               */
++              _set_L2CR(L2CR_L2E | L2CR_L2SIZ_1MB | L2CR_L2CLK_DIV3
++                              | L2CR_L2RAM_PIPE | L2CR_L2OH_1_0 | L2CR_L2DF);
++#if 0
++      /* Untested right now. */
++      if (cpu_has_feature(CPU_FTR_L3CR)) {
++              /* Magic value. */
++              _set_L3CR(0x8f032000);
++      }
++#endif
++}
++
++#define       IOMEGA8241_87308_CFG_ADDR               0x15c
++#define       IOMEGA8241_87308_CFG_DATA               0x15d
++
++#define       IOMEGA8241_87308_CFG_INB(addr, byte) {                          \
++      outb((addr), IOMEGA8241_87308_CFG_ADDR);                                \
++      (byte) = inb(IOMEGA8241_87308_CFG_DATA);                                \
++}
++
++#define       IOMEGA8241_87308_CFG_OUTB(addr, byte) {                         \
++      outb((addr), IOMEGA8241_87308_CFG_ADDR);                                \
++      outb((byte), IOMEGA8241_87308_CFG_DATA);                                \
++}
++
++#define IOMEGA8241_87308_SELECT_DEV(dev_num) {                                \
++      IOMEGA8241_87308_CFG_OUTB(0x07, (dev_num));                     \
++}
++
++#define       IOMEGA8241_87308_DEV_ENABLE(dev_num) {                          \
++      IOMEGA8241_87308_SELECT_DEV(dev_num);                           \
++      IOMEGA8241_87308_CFG_OUTB(0x30, 0x01);                          \
++}
++
++static int __init
++iomega8241_request_io(void)
++{
++      request_region(0x00,0x20,"dma1");
++      request_region(0x20,0x20,"pic1");
++      request_region(0x40,0x20,"timer");
++      request_region(0x80,0x10,"dma page reg");
++      request_region(0xa0,0x20,"pic2");
++      request_region(0xc0,0x20,"dma2");
++
++      return 0;
++}
++
++arch_initcall(iomega8241_request_io);
++
++/*
++ * Interrupt setup and service.  Interrrupts on the Sandpoint come
++ * from the four PCI slots plus the 8259 in the Winbond Super I/O (SIO).
++ * The 8259 is cascaded from EPIC IRQ0, IRQ1-4 map to PCI slots 1-4,
++ * IDE is on EPIC 7 and 8.
++ */
++static void __init
++iomega8241_init_IRQ(void)
++{
++      OpenPIC_InitSenses = iomega8241_openpic_initsenses;
++      OpenPIC_NumInitSenses = sizeof(iomega8241_openpic_initsenses);
++
++      /*
++       * We need to tell openpic_set_sources where things actually are.
++       * mpc10x_common will set up OpenPIC_Addr at ioremap(EUMB phys base +
++       * EPIC offset (0x40000)); The EPIC IRQ register address map - 
++       * Interrupt Source Configuration Registers gives these numbers as
++       * offsets starting at 0x50200, we need to adjust accordingly
++       */
++      mpc10x_set_openpic();
++}
++
++static int
++iomega8241_get_irq(struct pt_regs *regs)
++{
++      int irq;
++      
++      irq = openpic_irq();
++      if (irq == OPENPIC_VEC_SPURIOUS)
++              irq = -1;
++      
++      return irq;
++}
++
++static u32
++iomega8241_irq_canonicalize(u32 irq)
++{
++      return irq;
++}
++
++static unsigned long __init
++iomega8241_find_end_of_memory(void)
++{
++      bd_t *bp = (bd_t *)__res;
++
++      if (bp->bi_memsize)
++              return bp->bi_memsize;
++
++      return 64*1024*1024;
++}
++
++static void __init
++iomega8241_map_io(void)
++{
++      /* changes suggested by Freescale: */
++      io_block_mapping(0xfc000000, 0xfc000000, 0x04000000, _PAGE_IO);
++}
++
++static void
++iomega8241_restart(char *cmd)
++{
++      local_irq_disable();
++
++      /* Set exception prefix high - to the firmware */
++      _nmask_and_or_msr(0, MSR_IP);
++
++      for(;;);        /* Spin until reset happens */
++}
++
++static void
++iomega8241_power_off(void)
++{
++      local_irq_disable();
++      for(;;);        /* No way to shut power off with software */
++      /* NOTREACHED */
++}
++
++static void
++iomega8241_halt(void)
++{
++      iomega8241_power_off();
++      /* NOTREACHED */
++}
++
++static int
++iomega8241_show_cpuinfo(struct seq_file *m)
++{
++      seq_printf(m, "vendor\t\t: Iomega Corporation\n");
++      seq_printf(m, "machine\t\t: Iomega StorCenter Network Hard Drive\n");
++
++      return 0;
++}
++
++#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
++/*
++ * IDE support.
++ */
++static int            iomega8241_ide_ports_known = 0;
++static unsigned long  iomega8241_ide_regbase[MAX_HWIFS];
++static unsigned long  iomega8241_ide_ctl_regbase[MAX_HWIFS];
++static unsigned long  iomega8241_idedma_regbase;
++
++static void
++iomega8241_ide_probe(void)
++{
++      struct pci_dev *pdev = pci_get_device(PCI_VENDOR_ID_VIA,
++                      PCI_DEVICE_ID_VIA_6410, NULL);
++
++      if (pdev) {
++              iomega8241_ide_regbase[0]=pdev->resource[0].start;
++              iomega8241_ide_regbase[1]=pdev->resource[2].start;
++              iomega8241_ide_ctl_regbase[0]=pdev->resource[1].start;
++              iomega8241_ide_ctl_regbase[1]=pdev->resource[3].start;
++              iomega8241_idedma_regbase=pdev->resource[4].start;
++              
++              printk("Found: VIA VT6410 based IDE\n");
++      }
++
++      iomega8241_ide_ports_known = 1;
++}
++
++static int
++iomega8241_ide_default_irq(unsigned long base)
++{
++      if (iomega8241_ide_ports_known == 0)
++              iomega8241_ide_probe();
++
++      if (base == iomega8241_ide_regbase[0])
++              return IDE_INTRUPT;
++      else if (base == iomega8241_ide_regbase[1])
++              return IDE_INTRUPT;
++      else
++              return 0;
++}
++
++static unsigned long
++iomega8241_ide_default_io_base(int index)
++{
++      if (iomega8241_ide_ports_known == 0)
++              iomega8241_ide_probe();
++
++      return iomega8241_ide_regbase[index];
++}
++
++static void __init
++iomega8241_ide_init_hwif_ports(hw_regs_t *hw, unsigned long data_port,
++              unsigned long ctrl_port, int *irq)
++{
++      unsigned long reg = data_port;
++      uint    alt_status_base;
++      int     i;
++
++      for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
++              hw->io_ports[i] = reg++;
++      }
++
++      if (data_port == iomega8241_ide_regbase[0]) {
++              alt_status_base = iomega8241_ide_ctl_regbase[0] + 2;
++              hw->irq = IDE_INTRUPT;
++      } else if (data_port == iomega8241_ide_regbase[1]) {
++              alt_status_base = iomega8241_ide_ctl_regbase[1] + 2;
++              hw->irq = IDE_INTRUPT;
++      } else {
++              alt_status_base = 0;
++              hw->irq = 0;
++      }
++
++      if (ctrl_port) {
++              hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
++      } else {
++              hw->io_ports[IDE_CONTROL_OFFSET] = alt_status_base;
++      }
++
++      if (irq != NULL) {
++              *irq = hw->irq;
++      }
++}
++#endif
++
++/*
++ * Set BAT 3 to map 0xf8000000 to end of physical memory space 1-to-1.
++ */
++static __inline__ void
++iomega8241_set_bat(void)
++{
++      unsigned long bat3u, bat3l;
++
++      __asm__ __volatile__(
++                      " lis %0,0xf800\n       \
++                      ori %1,%0,0x002a\n      \
++                      ori %0,%0,0x0ffe\n      \
++                      mtspr 0x21e,%0\n        \
++                      mtspr 0x21f,%1\n        \
++                      isync\n                 \
++                      sync "
++                      : "=r" (bat3u), "=r" (bat3l));
++}
++
++TODC_ALLOC();
++
++/* Real Time Clock support.
++ * StorCenter has a DS1337 accessed by I2C.
++ */
++static void __init 
++iomega8241_calibrate_decr(void)
++{
++      ulong freq = get_bus_frequency() / 4;
++      printk("time_init: decrementer frequency = %lu.%.6lu MHz\n",
++              freq/1000000, freq%1000000);
++       if (freq == 33000000)
++               freq += 332550;
++
++      tb_ticks_per_jiffy = freq / HZ;
++      tb_to_us = mulhwu_scale_factor(freq, 1000000);
++
++      return;
++}
++
++
++static ulong iomega8241_get_rtc_time(void)
++{
++      struct rtc_time tm;
++      int result;
++
++        spin_lock(&rtc_lock);
++      result = ds1337_do_command(0, DS1337_GET_DATE, &tm);
++        spin_unlock(&rtc_lock);
++
++      if (result == 0)
++              result = mktime(tm.tm_year+1900, tm.tm_mon, tm.tm_mday,
++      tm.tm_hour, tm.tm_min, tm.tm_sec);
++
++      return result;
++}
++
++
++static int iomega8241_set_rtc_time(unsigned long nowtime)
++{
++      struct rtc_time tm;
++      int result;
++
++      to_tm(nowtime, &tm);
++      tm.tm_year -= 1900;
++        spin_lock(&rtc_lock);
++      result = ds1337_do_command(0, DS1337_SET_DATE, &tm);
++        spin_unlock(&rtc_lock);
++
++      return result;
++}
++
++
++static void __init 
++iomega8241_init2(void)
++{
++      ppc_md.set_rtc_time = iomega8241_set_rtc_time;
++      ppc_md.get_rtc_time = iomega8241_get_rtc_time;
++}
++
++
++void __init
++platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
++              unsigned long r6, unsigned long r7)
++{
++      parse_bootinfo(find_bootinfo());
++
++      /* ASSUMPTION:  If both r3 (bd_t pointer) and r6 (cmdline pointer)
++       * are non-zero, then we should use the board info from the bd_t
++       * structure and the cmdline pointed to by r6 instead of the
++       * information from birecs, if any.  Otherwise, use the information
++       * from birecs as discovered by the preceeding call to
++       * parse_bootinfo().  This rule should work with both PPCBoot, which
++       * uses a bd_t board info structure, and the kernel boot wrapper,
++       * which uses birecs.
++       */
++      if (r3 && r6) {
++              /* copy board info structure */
++              memcpy( (void *)__res,(void *)(r3+KERNELBASE), sizeof(bd_t) );
++              /* copy command line */
++              *(char *)(r7+KERNELBASE) = 0;
++              strcpy(cmd_line, (char *)(r6+KERNELBASE));
++      }
++
++#ifdef CONFIG_BLK_DEV_INITRD
++      /* take care of initrd if we have one */
++      if (r4) {
++              initrd_start = r4 + KERNELBASE;
++              initrd_end = r5 + KERNELBASE;
++      }
++#endif /* CONFIG_BLK_DEV_INITRD */
++
++      /* Map in board regs, etc. */
++      iomega8241_set_bat();
++
++      isa_io_base = MPC10X_MAPB_ISA_IO_BASE;
++      isa_mem_base = MPC10X_MAPB_ISA_MEM_BASE;
++      pci_dram_offset = MPC10X_MAPB_DRAM_OFFSET;
++      ISA_DMA_THRESHOLD = 0x00ffffff;
++      DMA_MODE_READ = 0x44;
++      DMA_MODE_WRITE = 0x48;
++
++      ppc_md.setup_arch = iomega8241_setup_arch;
++      ppc_md.show_cpuinfo = iomega8241_show_cpuinfo;
++      ppc_md.irq_canonicalize = iomega8241_irq_canonicalize;
++      ppc_md.init_IRQ = iomega8241_init_IRQ;
++      ppc_md.get_irq = iomega8241_get_irq;
++      ppc_md.init = iomega8241_init2;
++
++      ppc_md.restart = iomega8241_restart;
++      ppc_md.power_off = iomega8241_power_off;
++      ppc_md.halt = iomega8241_halt;
++
++      ppc_md.find_end_of_memory = iomega8241_find_end_of_memory;
++      ppc_md.setup_io_mappings = iomega8241_map_io;
++
++        ppc_md.time_init = NULL;
++      ppc_md.set_rtc_time = NULL;
++      ppc_md.get_rtc_time = NULL;
++      ppc_md.calibrate_decr = iomega8241_calibrate_decr;
++
++/*
++ * extra credit:
++ *
++ *         ppc_md.nvram_read_val = todc_mc146818_read_val;
++ *         ppc_md.nvram_write_val = todc_mc146818_write_val;
++ */
++#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
++      ppc_ide_md.default_irq = iomega8241_ide_default_irq;
++      ppc_ide_md.default_io_base = iomega8241_ide_default_io_base;
++      ppc_ide_md.ide_init_hwif = iomega8241_ide_init_hwif_ports;
++#endif
++
++}
+--- linux-2.6.15.orig/arch/ppc/Kconfig 2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/arch/ppc/Kconfig      2008-01-01 22:12:32.365126129 -0800
+@@ -649,6 +649,15 @@
+         End of Life: -
+         URL: <http://www.windriver.com/>
++config IOMEGA8241
++      bool "IOMEGA8241"
++      ---help---
++        Iomega StorCenter Network Hard Drive
++        Manufacturer: Iomega Corporation
++        Date of Release: May 2005
++        End of Life: -
++        URL: <http://www.iomega.com/>
++
+ config SBS8260
+       bool "SBS8260"
+@@ -801,7 +810,7 @@
+       depends on SANDPOINT || SPRUCE || PPLUS || \
+               PRPMC750 || PRPMC800 || LOPEC || \
+               (EV64260 && !SERIAL_MPSC) || CHESTNUT || RADSTONE_PPC7D || \
+-              83xx
++              83xx || IOMEGA8241
+       default y
+ config FORCE
+@@ -870,13 +879,13 @@
+ config MPC10X_BRIDGE
+       bool
+-      depends on POWERPMC250 || LOPEC || SANDPOINT
++      depends on POWERPMC250 || LOPEC || SANDPOINT || IOMEGA8241
+       select PPC_INDIRECT_PCI
+       default y
+ config MPC10X_OPENPIC
+       bool
+-      depends on POWERPMC250 || LOPEC || SANDPOINT
++      depends on POWERPMC250 || LOPEC || SANDPOINT || IOMEGA8241
+       default y
+ config MPC10X_STORE_GATHERING
+--- linux-2.6.15.orig/arch/ppc/boot/Makefile   2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/arch/ppc/boot/Makefile        2008-01-01 22:12:32.365126129 -0800
+@@ -13,7 +13,7 @@
+ CFLAGS                += -fno-builtin -D__BOOTER__ -Iarch/$(ARCH)/boot/include
+ HOSTCFLAGS    += -Iarch/$(ARCH)/boot/include
+-BOOT_TARGETS  = zImage zImage.initrd znetboot znetboot.initrd
++BOOT_TARGETS  = zImage zImage.initrd znetboot znetboot.initrd uImage
+ bootdir-y                     := simple
+ bootdir-$(CONFIG_PPC_OF)      += openfirmware
+--- linux-2.6.15.orig/arch/ppc/boot/simple/Makefile    2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/arch/ppc/boot/simple/Makefile 2008-01-01 22:12:32.365126129 -0800
+@@ -158,6 +158,10 @@
+          end-$(CONFIG_SANDPOINT)      := sandpoint
+    cacheflag-$(CONFIG_SANDPOINT)      := -include $(clear_L2_L3)
++         end-$(CONFIG_IOMEGA8241)      := iomega8241
++   cacheflag-$(CONFIG_IOMEGA8241)      := -include $(clear_L2_L3)
++
++
+       zimage-$(CONFIG_SPRUCE)         := zImage-TREE
+ zimageinitrd-$(CONFIG_SPRUCE)         := zImage.initrd-TREE
+          end-$(CONFIG_SPRUCE)         := spruce
+--- linux-2.6.15.orig/arch/ppc/platforms/Makefile      2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/arch/ppc/platforms/Makefile   2008-01-01 22:12:32.365126129 -0800
+@@ -42,6 +42,7 @@
+ obj-$(CONFIG_RADSTONE_PPC7D)  += radstone_ppc7d.o
+ obj-$(CONFIG_SANDPOINT)               += sandpoint.o
+ obj-$(CONFIG_SBC82xx)         += sbc82xx.o
++obj-$(CONFIG_IOMEGA8241)      += iomega8241.o
+ obj-$(CONFIG_SPRUCE)          += spruce.o
+ obj-$(CONFIG_LITE5200)                += lite5200.o
+ obj-$(CONFIG_EV64360)         += ev64360.o
+--- linux-2.6.15.orig/arch/ppc/platforms/iomega8241.h  1969-12-31 16:00:00.000000000 -0800
++++ linux-2.6.15/arch/ppc/platforms/iomega8241.h       2008-01-01 22:12:32.365126129 -0800
+@@ -0,0 +1,66 @@
++/*
++ * arch/ppc/platforms/iomega8241.h
++ *
++ * The Iomega StorCenter Network Hard Drive platform is based on the
++ * original sandpoint test platform.  That GNU copyright information
++ * is reproduced below:
++ *
++ * Board setup routines for the Motorola SPS Sandpoint Test Platform.
++ *
++ * Author: Mark A. Greer
++ *     mgreer@mvista.com
++ *
++ * 2000-2003 (c) MontaVista Software, Inc.  This file is licensed under
++ * the terms of the GNU General Public License version 2.  This program
++ * is licensed "as is" without any warranty of any kind, whether express
++ * or implied.
++ */
++
++#ifndef __PPC_PLATFORMS_IOMEGA8241_H
++#define __PPC_PLATFORMS_IOMEGA8241_H
++
++#include <asm/ppcboot.h>
++#include <linux/config.h>
++
++/*
++ * G2 Configuration:
++ * 
++ * DEVICE                             IDSEL                           INTERRUPT NUMBER
++ * AN983B                             AD12                            IRQ0
++ * IDE Via DS6410             AD13                            IRQ1
++ * NEC USB uPD720101  AD14                            IRQ2,3,4
++ */
++
++#define IDE_INTRUPT           1
++
++/*
++ * The sandpoint boards have processor modules that either have an 8240 or
++ * an MPC107 host bridge on them.  These bridges have an IDSEL line that allows
++ * them to respond to PCI transactions as if they were a normal PCI devices.
++ * However, the processor on the processor side of the bridge can not reach
++ * out onto the PCI bus and then select the bridge or bad things will happen
++ * (documented in the 8240 and 107 manuals).
++ * Because of this, we always skip the bridge PCI device when accessing the
++ * PCI bus.  The PCI slot that the bridge occupies is defined by the macro
++ * below.
++ */
++#define IOMEGA8241_HOST_BRIDGE_IDSEL     12
++
++void board_find_bridges(void);
++void iomega8241_fix_uart(void);
++/*
++ * Serial defines.
++ */
++#define IOMEGA8241_SERIAL_0           0xFDF04500
++#define IOMEGA8241_SERIAL_1           0xFDF04600
++
++#define RS_TABLE_SIZE  4
++
++/* Rate for the 1.8432 Mhz clock for the onboard serial chip */
++#define BASE_BAUD                     ( 100000000 / 16 ) /* 100Mhz speed, divided by 16 
++                                                                                              to make the output freqency*/
++#define UART_CLK                      1843200
++
++#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST)
++
++#endif /* __PPC_PLATFORMS_IOMEGA8241_H */
+--- linux-2.6.15.orig/arch/ppc/syslib/Makefile 2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/arch/ppc/syslib/Makefile      2008-01-01 22:12:32.365126129 -0800
+@@ -71,6 +71,7 @@
+ obj-$(CONFIG_PRPMC800)                += open_pic.o pci_auto.o
+ obj-$(CONFIG_RADSTONE_PPC7D)  += pci_auto.o
+ obj-$(CONFIG_SANDPOINT)               += pci_auto.o todc_time.o
++obj-$(CONFIG_IOMEGA8241)              += pci_auto.o
+ obj-$(CONFIG_SBC82xx)         += todc_time.o
+ obj-$(CONFIG_SPRUCE)          += cpc700_pic.o pci_auto.o \
+                                  todc_time.o
+--- linux-2.6.15.orig/arch/ppc/syslib/mpc10x_common.c  2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/arch/ppc/syslib/mpc10x_common.c       2008-01-01 22:12:32.365126129 -0800
+@@ -35,6 +35,10 @@
+ #include <asm/mpc10x.h>
+ #include <asm/ppc_sys.h>
++#ifdef CONFIG_IOMEGA8241
++#define                                NUM_8259_INTERRUPTS 0
++#endif
++
+ #ifdef CONFIG_MPC10X_OPENPIC
+ #ifdef CONFIG_EPIC_SERIAL_MODE
+ #define EPIC_IRQ_BASE (epic_serial_mode ? 16 : 5)
+--- linux-2.6.15.orig/drivers/char/Kconfig     2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/drivers/char/Kconfig  2008-01-01 22:12:32.369126358 -0800
+@@ -999,6 +999,25 @@
+         The mmtimer device allows direct userspace access to the
+         Altix system timer.
++config 8241EMI
++      tristate "EMI fixes for the 8241 processor"
++      depends on IOMEGA8241
++      default y
++      help
++        By changing the ODCR value from 0xAB to 0x95, we are able to reduce
++        the EMI along the PCI and MEMORY buses.
++
++        msb 7   1       Controls the drive strength of DRV_PCI (40ohm)
++        6       0       reserved
++        5-4     01      Controls the drive strength of SDRAM_CLK (40ohm)
++        3-2     01      Controls the drive strength of PCI_CLK and
++                        PCI_CLK_SYNC_OUT (40ohm)
++        1-0     01      Controls the drive strength of SDRAM_CLK and
++                        SDRAM_SYNC_OUT (40ohm)
++
++        See table 4-19 on page 4-22 of the MPC8245 Integrated Processor
++        User's Manual for details on these registers.
++
+ source "drivers/char/tpm/Kconfig"
+ config TELCLOCK
+--- linux-2.6.15.orig/drivers/char/Makefile    2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/drivers/char/Makefile 2008-01-01 22:12:32.369126358 -0800
+@@ -48,6 +48,7 @@
+ obj-$(CONFIG_VIOTAPE)         += viotape.o
+ obj-$(CONFIG_HVCS)            += hvcs.o
+ obj-$(CONFIG_SGI_MBCS)                += mbcs.o
++obj-$(CONFIG_8241EMI)         += emiregs.o
+ obj-$(CONFIG_PRINTER) += lp.o
+ obj-$(CONFIG_TIPAR) += tipar.o
+--- linux-2.6.15.orig/drivers/char/emiregs.c   1969-12-31 16:00:00.000000000 -0800
++++ linux-2.6.15/drivers/char/emiregs.c        2008-01-01 22:12:32.369126358 -0800
+@@ -0,0 +1,68 @@
++#include <linux/init.h>
++#include <linux/module.h>
++
++MODULE_LICENSE ("GPL");
++
++/* 
++      The following CONFIG_READ_BYTE and CONFIG_WRITE_BYTE
++      functions were taken from u-boot
++      
++      By changing the ODCR value from 0xAB to 0x95, we are able to reduce
++      the EMI along the PCI and MEMORY buses.
++
++      msb 7   1       Controls the drive strength of DRV_PCI (40ohm)
++      6       0       reserved
++      5-4     01      Controls the drive strength of SDRAM_CLK (40ohm)
++      3-2     01      Controls the drive strength of PCI_CLK and
++                      PCI_CLK_SYNC_OUT (40ohm)
++      1-0     01      Controls the drive strength of SDRAM_CLK and
++                      SDRAM_SYNC_OUT (40ohm)
++
++      See table 4-19 on page 4-22 of the MPC8245 Integrated Processor
++      User's Manual for details on these registers.
++*/
++#define CONFIG_ADDR 0xfec00000
++#define CONFIG_DATA 0xfee00000
++
++#define CONFIG_READ_BYTE( addr, reg ) \
++  __asm__ ( \
++  " stwbrx %1, 0, %2\n \
++    sync\n \
++    lbz   %0, %4(%3)\n \
++    sync " \
++  : "=r" (reg) \
++  : "r" ((addr) & ~3), "r" (CONFIG_ADDR), \
++    "b" (CONFIG_DATA), "n" ((addr) & 3));
++
++#define CONFIG_WRITE_BYTE( addr, data ) \
++  __asm__ __volatile__( \
++  " stwbrx %1, 0, %0\n \
++    sync\n \
++    stb %3, %4(%2)\n \
++    sync " \
++  : /* no output */ \
++  : "r" (CONFIG_ADDR), "r" ((addr) & ~3), \
++    "b" (CONFIG_DATA), "r" (data), \
++    "n" ((addr) & 3));
++
++
++static int emiregs_init (void)
++      {
++      u_long val, val2;                       
++      CONFIG_READ_BYTE (0x80000073, val);
++      CONFIG_WRITE_BYTE (0x80000073, 0x95);           
++      CONFIG_READ_BYTE (0x80000073, val2);
++
++      printk (KERN_INFO "8241 ODCR: changed from 0x%02lx, to 0x%02lx\n", val, val2);
++              
++      return 0;
++      }
++              
++static void emiregs_exit (void)
++      {
++      printk (KERN_INFO "emiregs module exitting\n");
++      return;
++      }
++              
++module_init (emiregs_init);
++module_exit (emiregs_exit);
+--- linux-2.6.15.orig/drivers/char/rtc.c       2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/drivers/char/rtc.c    2008-01-01 22:12:32.369126358 -0800
+@@ -514,9 +514,16 @@
+       }
+       case RTC_RD_TIME:       /* Read the time/date from RTC  */
+       {
++#ifdef CONFIG_IOMEGA8241
++              unsigned long usi_time;
++              usi_time = ds1337_get_time();
++              to_tm(usi_time,wtime);
++              break;
++#else         
+               memset(&wtime, 0, sizeof(struct rtc_time));
+               rtc_get_rtc_time(&wtime);
+               break;
++#endif /* CONFIG_IOMEGA8241 */
+       }
+       case RTC_SET_TIME:      /* Set the RTC */
+       {
+@@ -558,7 +565,7 @@
+               if ((yrs -= epoch) > 255)    /* They are unsigned */
+                       return -EINVAL;
+-
++#ifndef CONFIG_IOMEGA8241
+               spin_lock_irq(&rtc_lock);
+ #ifdef CONFIG_MACH_DECSTATION
+               real_yrs = yrs;
+@@ -614,6 +621,11 @@
+               spin_unlock_irq(&rtc_lock);
+               return 0;
++#else /* CONFIG_IOMEGA8241 */
++                /* next is the forth API provided by ds1337.c         USI-SS */
++                ds1337_usi_set_time(yrs,mon,day,hrs,min,sec);
++                break;
++#endif /* CONFIG_IOMEGA8241 */
+       }
+ #ifdef RTC_IRQ
+       case RTC_IRQP_READ:     /* Read the periodic IRQ rate.  */
+--- linux-2.6.15.orig/drivers/i2c/busses/i2c-mpc.c     2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/drivers/i2c/busses/i2c-mpc.c  2008-01-01 22:12:32.369126358 -0800
+@@ -285,7 +285,11 @@
+       .algo = &mpc_algo,
+       .class = I2C_CLASS_HWMON,
+       .timeout = 1,
++#ifdef CONFIG_IOMEGA8241
++      .retries = 400
++#else
+       .retries = 1
++#endif /* CONFIG_IOMEGA8241 */
+ };
+ static int fsl_i2c_probe(struct platform_device *pdev)
+--- linux-2.6.15.orig/drivers/ide/pci/via82cxxx.c      2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/drivers/ide/pci/via82cxxx.c   2008-01-02 08:21:42.876113109 -0800
+@@ -305,6 +305,12 @@
+        */
+       pci_read_config_byte(dev, VIA_IDE_ENABLE, &v);
++#ifdef CONFIG_IOMEGA8241
++      if(via_config->id == PCI_DEVICE_ID_VIA_6410) {
++              pci_write_config_byte(dev, VIA_IDE_ENABLE, v | 0x3);
++      }
++#endif
++              
+       /*
+        * Set up FIFO sizes and thresholds.
+@@ -485,7 +492,11 @@
+               .channels       = 2,
+               .autodma        = AUTODMA,
+               .enablebits     = {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
++#ifdef CONFIG_IOMEGA8241
++              .bootable       = NEVER_BOARD,
++#else
+               .bootable       = ON_BOARD,
++#endif
+       }
+ };
+--- linux-2.6.15.orig/drivers/mtd/maps/Kconfig 2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/drivers/mtd/maps/Kconfig      2008-01-01 22:12:32.369126358 -0800
+@@ -639,5 +639,10 @@
+         This selection automatically selects the map_ram driver.
+-endmenu
++config MTD_IOMEGA8241
++      tristate "Map driver for the Iomega 8241 StorCenter board"
++      depends on IOMEGA8241
++      help
++        Map driver for the Iomega StorCenter Network Hard Drive.
++endmenu
+--- linux-2.6.15.orig/drivers/mtd/maps/Makefile        2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/drivers/mtd/maps/Makefile     2008-01-01 22:12:32.369126358 -0800
+@@ -68,6 +68,7 @@
+ obj-$(CONFIG_MTD_WRSBC8260)   += wr_sbc82xx_flash.o
+ obj-$(CONFIG_MTD_DMV182)      += dmv182.o
+ obj-$(CONFIG_MTD_SHARP_SL)    += sharpsl-flash.o
++obj-$(CONFIG_MTD_IOMEGA8241)    += iomega8241_mtd.o
+ obj-$(CONFIG_MTD_PLATRAM)     += plat-ram.o
+ obj-$(CONFIG_MTD_OMAP_NOR)    += omap_nor.o
+ obj-$(CONFIG_MTD_MTX1)                += mtx-1_flash.o
+--- linux-2.6.15.orig/drivers/mtd/maps/iomega8241_mtd.c        1969-12-31 16:00:00.000000000 -0800
++++ linux-2.6.15/drivers/mtd/maps/iomega8241_mtd.c     2008-01-01 22:12:32.369126358 -0800
+@@ -0,0 +1,102 @@
++/*
++ * drivers/mtd/maps/iomega8241_mtd.c
++ *
++ * Iomega Corporation
++ * 
++ * Flash mapping for the Iomega StorCenter Network Hard Drive
++ *
++ * This module is based on the mpc1211.c file created by 
++ * Saito.K & Jeanne <ksaito@interface.co.jp>
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/types.h>
++#include <linux/kernel.h>
++#include <asm/io.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/map.h>
++#include <linux/config.h>
++#include <linux/mtd/partitions.h>
++
++#include <asm/immap_cpm2.h>
++
++static struct mtd_info *iomegamtd;
++static struct mtd_partition *parsed_parts;
++
++struct map_info iomega8241_flash_map = {
++      .name           = "Flash",
++      .phys           = 0xFF800000,
++      .size           = 0x800000,
++      .bankwidth      = 1,
++};
++
++static struct mtd_partition iomega8241_partitions[] = {
++      {
++              .name =         "kernel",
++              /* 1507328 bytes: kernel space */
++              .size =         0x00170000, 
++              .offset =       0,
++      }, {
++              .name =         "filesystem",
++              /* 5832704 bytes: root partition */
++              .size =         0x00590000, 
++              /* start is FF970000 */
++              .offset =       MTDPART_OFS_APPEND, 
++      }, {
++              .name =         "bootloader",
++              /* 262144 bytes for u-boot */
++              .size =         0x00040000, 
++              /* start is FFF00000 */
++              .offset =       MTDPART_OFS_APPEND, 
++      }, {
++              .name =         "sysconfig",
++              /* 786432 bytes: sysconf partition */
++              .size =         0x000C0000, 
++              /* start is FFF40000 */
++              .offset =       MTDPART_OFS_APPEND, 
++      } 
++};
++
++static int __init 
++init_iomega8241_flash(void)                   
++{
++      int nr_parts;
++              
++      iomega8241_flash_map.virt = ioremap(iomega8241_flash_map.phys, iomega8241_flash_map.size);
++
++      simple_map_init(&iomega8241_flash_map);
++
++      printk("Iomega8241: Probing for flash...\n");
++      iomegamtd = do_map_probe("cfi_probe", &iomega8241_flash_map);
++      if (!iomegamtd) {
++              printk(KERN_NOTICE "Flash chips not detected at either possible location.\n");
++              return -ENXIO;
++      }
++      printk("Iomega8241: Flash found at location 0x%x\n", iomega8241_flash_map.phys);
++      iomegamtd->owner = THIS_MODULE;
++
++      parsed_parts = iomega8241_partitions;
++      nr_parts = ARRAY_SIZE(iomega8241_partitions);
++
++      add_mtd_partitions(iomegamtd, parsed_parts, nr_parts);
++      return 0;
++}
++
++static void __exit 
++cleanup_iomega8241_flash(void)
++{
++      if (parsed_parts)
++              del_mtd_partitions(iomegamtd);
++      else
++              del_mtd_device(iomegamtd);
++      map_destroy(iomegamtd);
++}
++
++module_init(init_iomega8241_flash);
++module_exit(cleanup_iomega8241_flash);
++
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Anthony Russello <russello@iomega.com>");
++MODULE_DESCRIPTION("Flash mapping for the Iomega StorCenter Network Hard Drive");
+--- linux-2.6.15.orig/drivers/net/wireless/prism54/islpci_dev.c        2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/drivers/net/wireless/prism54/islpci_dev.c     2008-01-01 22:12:32.369126358 -0800
+@@ -874,6 +874,7 @@
+       /* select the firmware file depending on the device id */
+       switch (pdev->device) {
++      case 0x3873:
+       case 0x3877:
+               strcpy(priv->firmware, ISL3877_IMAGE_FILE);
+               break;
+--- linux-2.6.15.orig/drivers/net/wireless/prism54/islpci_hotplug.c    2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/drivers/net/wireless/prism54/islpci_hotplug.c 2008-01-01 22:12:32.373126589 -0800
+@@ -70,6 +70,13 @@
+        PCI_ANY_ID, PCI_ANY_ID,
+        0, 0, 0
+       },
++      /* Intersil PRISM NetGate 2511 MP PLUS 100mW */
++      {
++       0x1260, 0x3873,
++       PCI_ANY_ID, PCI_ANY_ID,
++       0, 0, 0
++      },
++      
+       /* End of list */
+       {0,0,0,0,0,0,0}
+--- linux-2.6.15.orig/drivers/pci/probe.c      2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/drivers/pci/probe.c   2008-01-01 22:12:32.373126589 -0800
+@@ -596,6 +596,20 @@
+       pci_read_config_dword(dev, PCI_CLASS_REVISION, &class);
+       class >>= 8;                                /* upper 3 bytes */
+       dev->class = class;
++#ifdef CONFIG_IOMEGA8241      
++      /*
++       * The VIA VT6410 used on the Iomega StorCenter Network Hard Drive reports
++       * with a class of 0x01040 (PCI_CLASS_STORAGE_RAID).
++       *
++       * The following correction allows it to be used as a standard PCI IDE
++       * controller (0x0101)
++       */
++      if((dev->vendor==PCI_VENDOR_ID_VIA)&&(dev->device==PCI_DEVICE_ID_VIA_6410)) {
++              dev->class=0x01018f;
++              printk("PCI: Adjustments for the VIA VT6410 controller have been made\n");
++      }
++#endif /* CONFIG_IOMEGA8241 */
++
+       class >>= 8;
+       pr_debug("PCI: Found %s [%04x/%04x] %06x %02x\n", pci_name(dev),
+--- linux-2.6.15.orig/include/asm-ppc/mpc10x.h 2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/include/asm-ppc/mpc10x.h      2008-01-01 22:12:32.373126589 -0800
+@@ -76,7 +76,11 @@
+ #define       MPC10X_MAPB_PCI_INTACK_ADDR     0xfef00000
+ #define       MPC10X_MAPB_PCI_IO_START        0x00000000
++#ifdef CONFIG_IOMEGA8241
++#define       MPC10X_MAPB_PCI_IO_END      0xFFFF
++#else
+ #define       MPC10X_MAPB_PCI_IO_END         (0x00c00000 - 1)
++#endif /* CONFIG_IOMEGA8241 */
+ #define       MPC10X_MAPB_PCI_MEM_START       0x80000000
+ #define       MPC10X_MAPB_PCI_MEM_END        (0xc0000000 - 1)
+@@ -157,7 +161,12 @@
+  */
+ extern unsigned long                  ioremap_base;
+ #define       MPC10X_MAPA_EUMB_BASE           (ioremap_base - MPC10X_EUMB_SIZE)
++
++#ifdef CONFIG_IOMEGA8241
++#define        MPC10X_MAPB_EUMB_BASE           0xFDF00000
++#else
+ #define       MPC10X_MAPB_EUMB_BASE           MPC10X_MAPA_EUMB_BASE
++#endif
+ enum ppc_sys_devices {
+       MPC10X_IIC1,
+--- linux-2.6.15.orig/include/asm-ppc/serial.h 2006-01-02 19:21:10.000000000 -0800
++++ linux-2.6.15/include/asm-ppc/serial.h      2008-01-01 22:12:32.373126589 -0800
+@@ -38,6 +38,8 @@
+ #include <asm/mpc85xx.h>
+ #elif defined(CONFIG_RADSTONE_PPC7D)
+ #include <platforms/radstone_ppc7d.h>
++#elif defined(CONFIG_IOMEGA8241)
++#include <platforms/iomega8241.h>
+ #else
+ /*
diff --git a/packages/linux/linux-storcenter_2.6.15.7.bb b/packages/linux/linux-storcenter_2.6.15.7.bb
new file mode 100644 (file)
index 0000000..4895b21
--- /dev/null
@@ -0,0 +1,36 @@
+DESCRIPTION = "Linux Kernel for the Iomega storcenter platform"
+SECTION = "kernel"
+LICENSE = "GPL"
+DEPENDS = "u-boot-utils-native"
+PR = "r1"
+
+COMPATIBLE_MACHINE = "storcenter"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
+       file://kernel.patch-${PV};patch=1 \
+       file://defconfig-${PV} "
+
+S = "${WORKDIR}/linux-${PV}"
+
+inherit kernel
+
+export ARCH = "ppc" 
+
+KERNEL_IMAGETYPE = "uImage"
+KERNEL_OUTPUT = "arch/${ARCH}/boot/images/${KERNEL_IMAGETYPE}"
+
+do_configure() {
+       install -m 644 ${WORKDIR}/defconfig-${PV} ${S}/.config
+       make ARCH=${ARCH} oldconfig
+}
+
+do_deploy() {
+        install -d ${DEPLOY_DIR_IMAGE}
+        install -m 0644 ${KERNEL_OUTPUT} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}
+}
+
+do_deploy[dirs] = "${S}"
+
+addtask deploy before do_build after do_compile
+
+