add a machine configuration and a kernel for the Micrel KS8695 board that
authorMichael Lauer <mickey@vanille-media.de>
Fri, 19 May 2006 22:27:54 +0000 (22:27 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Fri, 19 May 2006 22:27:54 +0000 (22:27 +0000)
is commonly found in PePlink manga boards and a lot of wireless media streamer boxes
first 2.6.16 bits + defconfig. unfortunately the kernel is too large for my bootloader
and i can't get it more slim, so i have to halt the work in this state. perhaps someone
wants to pick that up.

conf/machine/ks8695.conf [new file with mode: 0644]
packages/linux/linux-ks8695/.mtn2git_empty [new file with mode: 0644]
packages/linux/linux-ks8695/defconfig-ks8695 [new file with mode: 0644]
packages/linux/linux-ks8695/ks8695-base-r0.patch [new file with mode: 0644]
packages/linux/linux-ks8695/ks8695-headers-r0.patch [new file with mode: 0644]
packages/linux/linux-ks8695_2.6.16.bb [new file with mode: 0644]

diff --git a/conf/machine/ks8695.conf b/conf/machine/ks8695.conf
new file mode 100644 (file)
index 0000000..a3e7509
--- /dev/null
@@ -0,0 +1,19 @@
+#@TYPE: Machine
+#@Name: Micrel KS8695(P) Development Platform
+#@DESCRIPTION: Machine configuration for Micrel KS8695(P) Development Platform
+#@SPECS: http://www.micrel.com/_PDF/Ethernet/ks8695.pdf
+#@DEVICES: PePLink MANGA Triple Balance, Telegent TG100
+
+TARGET_ARCH = "arm"
+
+IPKG_ARCHS = "all arm ${MACHINE}"
+PREFERRED_PROVIDER_virtual/kernel = "linux-${MACHINE}"
+
+require conf/machine/include/tune-arm920t.conf
+
+# used by sysvinit_2
+SERIAL_CONSOLE = "115200 ttyS0"
+
+# used by opie-collections.inc
+ROOT_FLASH_SIZE = "8"
+
diff --git a/packages/linux/linux-ks8695/.mtn2git_empty b/packages/linux/linux-ks8695/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/linux/linux-ks8695/defconfig-ks8695 b/packages/linux/linux-ks8695/defconfig-ks8695
new file mode 100644 (file)
index 0000000..831a1d1
--- /dev/null
@@ -0,0 +1,1107 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.16
+# Thu May 18 22:06:07 2006
+#
+CONFIG_ARM=y
+CONFIG_MMU=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_UID16=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_EMBEDDED=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_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_SLAB=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_SLOB is not set
+CONFIG_OBSOLETE_INTERMODULE=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_OBSOLETE_MODPARM=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Block layer
+#
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=m
+CONFIG_IOSCHED_CFQ=m
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+
+#
+# System Type
+#
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_IOP3XX is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+CONFIG_ARCH_KS8695=y
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_AT91RM9200 is not set
+
+#
+# Kendin-Micrel KS8695 Implementation Options
+#
+
+#
+# KS8695 Platforms
+#
+CONFIG_MACH_KS8695=y
+# CONFIG_MACH_DSM320 is not set
+# CONFIG_MACH_CM4002 is not set
+# CONFIG_MACH_CM4008 is not set
+# CONFIG_MACH_CM40xx is not set
+# CONFIG_MACH_LITE300 is not set
+# CONFIG_MACH_SE4200 is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM922T=y
+CONFIG_CPU_32v4=y
+CONFIG_CPU_ABRT_EV4T=y
+CONFIG_CPU_CACHE_V4WT=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+
+#
+# Bus support
+#
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+# CONFIG_PCI_DEBUG is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+CONFIG_PCCARD=y
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_PCMCIA=y
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_PCMCIA_IOCTL=y
+# CONFIG_CARDBUS is not set
+
+#
+# PC-card bridges
+#
+# CONFIG_YENTA is not set
+# CONFIG_PD6729 is not set
+# CONFIG_I82092 is not set
+
+#
+# Kernel Features
+#
+CONFIG_PREEMPT=y
+CONFIG_NO_IDLE_HZ=y
+# CONFIG_AEABI is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE 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=4096
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="<override-oe>"
+# CONFIG_XIP_KERNEL is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_FASTFPE is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_MISC=m
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+CONFIG_PM_LEGACY=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_APM=m
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_NETDEBUG is not set
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+# 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=m
+CONFIG_INET_TCP_DIAG=m
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_BIC=y
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+# CONFIG_IPV6_PRIVACY is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+
+#
+# Core Netfilter Configuration
+#
+# CONFIG_NETFILTER_NETLINK is not set
+# CONFIG_NETFILTER_XTABLES is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+# CONFIG_IP_NF_CT_ACCT is not set
+# CONFIG_IP_NF_CONNTRACK_MARK is not set
+# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
+CONFIG_IP_NF_CT_PROTO_SCTP=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+# CONFIG_IP_NF_NETBIOS_NS is not set
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_AMANDA=m
+# CONFIG_IP_NF_PPTP is not set
+CONFIG_IP_NF_QUEUE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP6_NF_QUEUE is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+
+#
+# TIPC Configuration (EXPERIMENTAL)
+#
+# CONFIG_TIPC 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=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+# CONFIG_IRDA_ULTRA is not set
+
+#
+# IrDA options
+#
+# CONFIG_IRDA_CACHE_LAST_LSAP is not set
+# CONFIG_IRDA_FAST_RR is not set
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+# CONFIG_IRTTY_SIR is not set
+
+#
+# Dongle support
+#
+
+#
+# Old SIR device drivers
+#
+# CONFIG_IRPORT_SIR is not set
+
+#
+# Old Serial dongle support
+#
+
+#
+# FIR device drivers
+#
+CONFIG_TOSHIBA_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_IEEE80211=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER 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=y
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+# CONFIG_MTD_CFI_NOSWAP is not set
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP 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 is not set
+# CONFIG_MTD_CFI_STAA is not set
+# CONFIG_MTD_RAM is not set
+CONFIG_MTD_ROM=y
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_IMPA7 is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# 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_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_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 is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=m
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=m
+# 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 is not set
+# 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_DMX3191D is not set
+# CONFIG_SCSI_FUTURE_DOMAIN 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_QLA_FC 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
+
+#
+# PCMCIA SCSI adapter support
+#
+# CONFIG_PCMCIA_AHA152X is not set
+# CONFIG_PCMCIA_FDOMAIN is not set
+# CONFIG_PCMCIA_NINJA_SCSI is not set
+# CONFIG_PCMCIA_QLOGIC is not set
+# CONFIG_PCMCIA_SYM53C500 is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD 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
+
+#
+# Network device support
+#
+# CONFIG_NETDEVICES is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+
+#
+# PHY device support
+#
+# CONFIG_PHYLIB is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+
+#
+# Tulip family network device support
+#
+# CONFIG_NET_TULIP is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_PCI 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 is not set
+# CONFIG_SIS190 is not set
+# CONFIG_SKGE is not set
+# CONFIG_SKY2 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
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PPP=m
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=m
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+# CONFIG_PPP_MPPE is not set
+# CONFIG_PPPOE 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
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC 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 is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_JSM is not set
+# CONFIG_UNIX98_PTYS is not set
+# 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_RTC 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_DRM is not set
+
+#
+# PCMCIA character devices
+#
+# CONFIG_SYNCLINK_CS is not set
+# CONFIG_CARDMAN_4000 is not set
+# CONFIG_CARDMAN_4040 is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+# CONFIG_TELCLOCK is not set
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Hardware Monitoring support
+#
+# CONFIG_HWMON is not set
+# CONFIG_HWMON_VID 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 is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_PXA2XX is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_ETH is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_INOTIFY is not set
+# CONFIG_QUOTA is not set
+# CONFIG_DNOTIFY is not set
+# 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 is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_SYSFS=y
+# CONFIG_TMPFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_RELAYFS_FS is not set
+# CONFIG_CONFIGFS_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=y
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+CONFIG_JFFS2_RUBIN=y
+# CONFIG_JFFS2_CMODE_NONE is not set
+CONFIG_JFFS2_CMODE_PRIORITY=y
+# CONFIG_JFFS2_CMODE_SIZE 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=m
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V4=y
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+CONFIG_SMB_NLS_DEFAULT=y
+CONFIG_SMB_NLS_REMOTE="cp437"
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_EXPERIMENTAL 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 is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=m
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_KERNEL=y
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_DETECT_SOFTLOCKUP is not set
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_DEBUG_VM is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_FORCED_INLINING is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_WAITQ is not set
+CONFIG_DEBUG_ERRORS=y
+# CONFIG_DEBUG_LL is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+# CONFIG_CRYPTO_TGR192 is not set
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
diff --git a/packages/linux/linux-ks8695/ks8695-base-r0.patch b/packages/linux/linux-ks8695/ks8695-base-r0.patch
new file mode 100644 (file)
index 0000000..98477c7
--- /dev/null
@@ -0,0 +1,715 @@
+This patch adds KS8695 CPU machine support.
+It is pretty much a standard ARM922T core.
+
+This patch inludes the cpu/machine configuration and Makefile changes,
+the architecture, timer, interrupt and PCI support.
+
+
+diff -Naur linux-2.6.16/arch/arm/Kconfig linux-2.6.16.ks8695/arch/arm/Kconfig
+--- linux-2.6.16/arch/arm/Kconfig      2006-03-20 15:53:29.000000000 +1000
++++ linux-2.6.16.ks8695/arch/arm/Kconfig       2006-03-22 09:57:18.000000000 +1000
+@@ -141,6 +141,13 @@
+       help
+         Support for Intel's IXP2400/2800 (XScale) family of processors.
++config ARCH_KS8695
++      bool "Kendin-Micrel KS8695"
++      help
++        The Kendin-Micrel KS8695 "Centaur" family is an ARM920 based
++        System-On-Chip device. It is commonly used on small routers and
++        other small scale embedded devices.
++
+ config ARCH_L7200
+       bool "LinkUp-L7200"
+       select FIQ
+@@ -260,6 +267,8 @@
+ source "arch/arm/mach-ixp2000/Kconfig"
++source "arch/arm/mach-ks8695/Kconfig"
++
+ source "arch/arm/mach-pxa/Kconfig"
+ source "arch/arm/mach-sa1100/Kconfig"
+@@ -331,7 +340,7 @@
+       bool
+ config PCI
+-      bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB
++      bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_KS8695
+       help
+         Find out whether you have a PCI motherboard. PCI is the name of a
+         bus system, i.e. the way the CPU talks to the other stuff inside
+diff -Naur linux-2.6.16/arch/arm/mach-ks8695/arch.c linux-2.6.16.ks8695/arch/arm/mach-ks8695/arch.c
+--- linux-2.6.16/arch/arm/mach-ks8695/arch.c   1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/arch/arm/mach-ks8695/arch.c    2006-03-15 22:42:43.000000000 +1000
+@@ -0,0 +1,124 @@
++/*
++ *  linux/arch/arm/mach-ks8695/arch.c
++ *
++ *  Copyright (C) 2002 Micrel 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
++ */
++
++#include <linux/config.h>
++#include <linux/types.h>
++#include <linux/init.h>
++#include <asm/memory.h>
++#include <asm/hardware.h>
++#include <asm/setup.h>
++#include <asm/mach-types.h>
++#include <asm/mach/arch.h>
++#include <asm/arch/ks8695-regs.h>
++
++extern void ks8695_map_io(void);
++extern void ks8695_init_irq(void);
++extern struct sys_timer ks8695_timer;
++
++#ifdef CONFIG_MACH_KS8695
++MACHINE_START(KS8695, "Micrel-KS8695")
++      /* Micrel Inc. */
++      .phys_ram       = PHYS_OFFSET,
++      .phys_io        = KS8695_IO_BASE,
++      .io_pg_offst    = ((KS8695_IO_VIRT >> 18) & 0xfffc),
++      .map_io         = ks8695_map_io,
++      .init_irq       = ks8695_init_irq,
++      .timer          = &ks8695_timer,
++      .boot_params    = 0x100,
++MACHINE_END
++#endif
++
++#ifdef CONFIG_MACH_DSM320
++MACHINE_START(DSM320, "DLink-DSM320")
++      /* Maintainer: Ben Dooks <ben@simtec.co.uk> */
++      .phys_io        = KS8695_IO_BASE,
++      .io_pg_offst    = ((KS8695_IO_VIRT) >> 18) & 0xfffc,
++      .map_io         = ks8695_map_io,
++      .init_irq       = ks8695_init_irq,
++      .timer          = &ks8695_timer,
++      .boot_params    = 0x100,
++MACHINE_END
++#endif
++
++#ifdef CONFIG_MACH_LITE300
++MACHINE_START(LITE300, "Secure Computing SG300")
++      /* Secure Computing Inc. */
++      .phys_ram       = PHYS_OFFSET,
++      .phys_io        = KS8695_IO_BASE,
++      .io_pg_offst    = ((KS8695_IO_VIRT >> 18) & 0xfffc),
++      .map_io         = ks8695_map_io,
++      .init_irq       = ks8695_init_irq,
++      .timer          = &ks8695_timer,
++      .boot_params    = 0x100,
++MACHINE_END
++#endif
++
++#ifdef CONFIG_MACH_SE4200
++MACHINE_START(SE4200, "Secure Computing SE4200")
++      /* Secure Computing Inc. */
++      .phys_ram       = PHYS_OFFSET,
++      .phys_io        = KS8695_IO_BASE,
++      .io_pg_offst    = ((KS8695_IO_VIRT >> 18) & 0xfffc),
++      .map_io         = ks8695_map_io,
++      .init_irq       = ks8695_init_irq,
++      .timer          = &ks8695_timer,
++      .boot_params    = 0x100,
++MACHINE_END
++#endif
++
++#ifdef CONFIG_MACH_CM4002
++MACHINE_START(CM4002, "OpenGear/CM4002")
++      /* OpenGear Inc. */
++      .phys_ram       = PHYS_OFFSET,
++      .phys_io        = KS8695_IO_BASE,
++      .io_pg_offst    = ((KS8695_IO_VIRT >> 18) & 0xfffc),
++      .map_io         = ks8695_map_io,
++      .init_irq       = ks8695_init_irq,
++      .timer          = &ks8695_timer,
++      .boot_params    = 0x100,
++MACHINE_END
++#endif
++
++#ifdef CONFIG_MACH_CM4008
++MACHINE_START(CM4008, "OpenGear/CM4008")
++      /* OpenGear Inc. */
++      .phys_ram       = PHYS_OFFSET,
++      .phys_io        = KS8695_IO_BASE,
++      .io_pg_offst    = ((KS8695_IO_VIRT >> 18) & 0xfffc),
++      .map_io         = ks8695_map_io,
++      .init_irq       = ks8695_init_irq,
++      .timer          = &ks8695_timer,
++      .boot_params    = 0x100,
++MACHINE_END
++#endif
++
++#ifdef CONFIG_MACH_CM41xx
++MACHINE_START(CM41xx, "OpenGear/CM41xx")
++      /* OpenGear Inc. */
++      .phys_ram       = PHYS_OFFSET,
++      .phys_io        = KS8695_IO_BASE,
++      .io_pg_offst    = ((KS8695_IO_VIRT >> 18) & 0xfffc),
++      .map_io         = ks8695_map_io,
++      .init_irq       = ks8695_init_irq,
++      .timer          = &ks8695_timer,
++      .boot_params    = 0x100,
++MACHINE_END
++#endif
++
+diff -Naur linux-2.6.16/arch/arm/mach-ks8695/irq.c linux-2.6.16.ks8695/arch/arm/mach-ks8695/irq.c
+--- linux-2.6.16/arch/arm/mach-ks8695/irq.c    1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/arch/arm/mach-ks8695/irq.c     2006-03-11 00:01:51.000000000 +1000
+@@ -0,0 +1,71 @@
++/*
++ *  linux/arch/arm/mach-ks8695/irq.c
++ *
++ *  Copyright (C) 2002 Micrel Inc.
++ *  Copyright (C) 2006 Greg Ungerer <gerg@snapgear.com>
++ *
++ * 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
++ */
++
++#include <linux/init.h>
++#include <linux/interrupt.h>
++#include <asm/hardware.h>
++#include <asm/irq.h>
++#include <asm/io.h>
++#include <asm/mach/irq.h>
++
++static void ks8695_irq_mask(unsigned int irq)
++{
++      unsigned long msk;
++      msk = __raw_readl(KS8695_REG(KS8695_INT_ENABLE));
++      msk &= ~(1 << irq);
++      __raw_writel(msk, KS8695_REG(KS8695_INT_ENABLE));
++}
++
++static void ks8695_irq_unmask(unsigned int irq)
++{
++      unsigned long msk;
++      msk = __raw_readl(KS8695_REG(KS8695_INT_ENABLE));
++      msk |= (1 << irq);
++      __raw_writel(msk, KS8695_REG(KS8695_INT_ENABLE));
++}
++
++static int ks8695_irq_set_type(unsigned int irq, unsigned int type)
++{
++      return 0;
++}
++
++struct irqchip ks8695_irq_chip = {
++      .ack            = ks8695_irq_mask,
++      .mask           = ks8695_irq_mask,
++      .unmask         = ks8695_irq_unmask,
++      .set_type       = ks8695_irq_set_type,
++};
++
++void __init ks8695_init_irq(void)
++{
++      unsigned int i;
++
++      /* Disable all interrupts initially. */
++      __raw_writel(0, KS8695_REG(KS8695_INT_CONTL));
++      __raw_writel(0, KS8695_REG(KS8695_INT_ENABLE));
++
++      for (i = 0; (i < NR_IRQS); i++) {
++              set_irq_chip(i, &ks8695_irq_chip);
++              set_irq_handler(i, do_level_IRQ);
++              set_irq_flags(i, IRQF_VALID);
++      }
++}
++
+diff -Naur linux-2.6.16/arch/arm/mach-ks8695/Kconfig linux-2.6.16.ks8695/arch/arm/mach-ks8695/Kconfig
+--- linux-2.6.16/arch/arm/mach-ks8695/Kconfig  1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/arch/arm/mach-ks8695/Kconfig   2006-03-15 22:42:43.000000000 +1000
+@@ -0,0 +1,59 @@
++
++menu "Kendin-Micrel KS8695 Implementation Options"
++
++comment "KS8695 Platforms"
++
++config MACH_KS8695
++      bool "KS8695 development board"
++      help
++        Say 'Y' here if you want your kernel to run on the original
++        Kendin-Micrel KS8695 development board.
++
++config MACH_DSM320
++      bool "DLink DSM320 Media Player"
++      help
++        Say 'Y' here if you want your kernel to run on the DLink DSM320
++        Media Player.
++
++config MACH_CM4002
++      bool "OpenGear CM4002"
++      depends on ARCH_KS8695
++      help
++        Say 'Y' here if you want your kernel to support the OpenGear
++        CM4002 Secure Access Server. See http://www.opengear.com for
++        more details.
++
++config MACH_CM4008
++      bool "OpenGear CM4008"
++      depends on ARCH_KS8695
++      help
++        Say 'Y' here if you want your kernel to support the OpenGear
++        CM4008 Console Server. See http://www.opengear.com for more
++        details.
++
++config MACH_CM40xx
++      bool "OpenGear CM40xx"
++      help
++      depends on ARCH_KS8695
++        Say 'Y' here if you want your kernel to support the OpenGear
++        CM4016 or CM4048 Console Servers. See http://www.opengear.com for
++        more details.
++
++config MACH_LITE300
++      bool "Secure Computing / CyberGuard SG300"
++      depends on ARCH_KS8695
++      help
++        Say 'Y' here if you want your kernel to support the Secure
++        Computing / CyberGuard / SnapGear SG300 VPN Internet Router.
++        See http://www.securecomputing.com for more details.
++
++config MACH_SE4200
++      bool "Secure Computing / CyberGuard SE4200"
++      depends on ARCH_KS8695
++      help
++        Say 'Y' here if you want your kernel to support the Secure
++        Computing / CyberGuard / SnapGear SE4200 Secure Wireless VPN
++        Internet Router. See http://www.securecomputing.com for more
++        details.
++
++endmenu
+diff -Naur linux-2.6.16/arch/arm/mach-ks8695/Makefile linux-2.6.16.ks8695/arch/arm/mach-ks8695/Makefile
+--- linux-2.6.16/arch/arm/mach-ks8695/Makefile 1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/arch/arm/mach-ks8695/Makefile  2006-03-15 22:42:43.000000000 +1000
+@@ -0,0 +1,7 @@
++#
++# Makefile for the KS8695 machines..
++#
++
++obj-y                 := arch.o irq.o mm.o time.o
++obj-$(CONFIG_PCI)       += pci.o
++
+diff -Naur linux-2.6.16/arch/arm/mach-ks8695/Makefile.boot linux-2.6.16.ks8695/arch/arm/mach-ks8695/Makefile.boot
+--- linux-2.6.16/arch/arm/mach-ks8695/Makefile.boot    1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/arch/arm/mach-ks8695/Makefile.boot     2006-02-17 11:57:24.000000000 +1000
+@@ -0,0 +1,3 @@
++   zreladdr-y := 0x00008000
++params_phys-y := 0x00000100
++
+diff -Naur linux-2.6.16/arch/arm/mach-ks8695/mm.c linux-2.6.16.ks8695/arch/arm/mach-ks8695/mm.c
+--- linux-2.6.16/arch/arm/mach-ks8695/mm.c     1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/arch/arm/mach-ks8695/mm.c      2006-03-11 00:01:51.000000000 +1000
+@@ -0,0 +1,50 @@
++/*
++ *  linux/arch/arm/mach-ks8695/mm.c
++ *
++ *  Copyright (C) 1999,2000 Arm Limited
++ *  Copyright (C) 2000 Deep Blue Solutions Ltd
++ *
++ * 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
++ */
++
++#include <linux/mm.h>
++#include <linux/init.h>
++#include <asm/io.h>
++#include <asm/page.h>
++#include <asm/sizes.h>
++#include <asm/mach/map.h>
++
++/*
++ * The only fixed mapping we setup is for the internal register block.
++ * This contains the all the device peripheral registers.
++ *
++ * Logical      Physical        Comment
++ * -----------------------------------------
++ * FF000000   03FF0000        IO registers
++ */
++static struct map_desc ks8695_io_desc[] __initdata = {
++      {
++              .virtual        = KS8695_IO_VIRT,
++              .pfn            = __phys_to_pfn(KS8695_IO_BASE),
++              .length         = SZ_64K,
++              .type           = MT_DEVICE
++      },
++};
++
++void __init ks8695_map_io(void)
++{
++      iotable_init(ks8695_io_desc, ARRAY_SIZE(ks8695_io_desc));
++}
++
+diff -Naur linux-2.6.16/arch/arm/mach-ks8695/pci.c linux-2.6.16.ks8695/arch/arm/mach-ks8695/pci.c
+--- linux-2.6.16/arch/arm/mach-ks8695/pci.c    1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/arch/arm/mach-ks8695/pci.c     2006-03-15 22:42:43.000000000 +1000
+@@ -0,0 +1,218 @@
++/*
++ *  Copyright (c) 2003, Micrel Semiconductors
++ *  Copyright (C) 2006, Greg Ungerer <gerg@snapgear.com>
++ *
++ *  Written 2003 by LIQUN RUAN
++ *
++ * 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
++ */
++
++#include <linux/config.h>
++#include <linux/kernel.h>
++#include <linux/pci.h>
++#include <linux/mm.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++#include <asm/io.h>
++#include <asm/mach/pci.h>
++#include <asm/hardware.h>
++#include <asm/arch/ks8695-regs.h>
++
++
++static u32 pcicmd(unsigned int bus, unsigned int devfn, int where)
++{
++      where &= 0xfffffffc;
++      return (0x80000000 | (bus << 16) | (devfn << 8) | where);
++}
++
++static void local_write_config(unsigned int bus, unsigned int devfn, int where, u32 value)
++{
++      __raw_writel(pcicmd(bus, devfn, where), KS8695_REG(KS8695_PBCA));
++      __raw_writel(value, KS8695_REG(KS8695_PBCD));
++}
++
++
++static int ks8695_pci_read_config(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 *value)
++{
++      u32 v;
++
++
++      __raw_writel(pcicmd(bus->number, devfn, where), KS8695_REG(KS8695_PBCA));
++      v = __raw_readl(KS8695_REG(KS8695_PBCD));
++
++      if (size == 1)
++              *value = (u8) (v >> ((where & 0x3) * 8));
++      else if (size == 2)
++              *value = (u16) (v >> ((where & 0x2) * 8));
++      else
++              *value = v;
++
++      return PCIBIOS_SUCCESSFUL;
++}
++
++static u32 bytemasks[] = {
++      0xffffff00, 0xffff00ff, 0xff0ffff, 0x00ffffff,
++};
++static u32 wordmasks[] = {
++      0xffff0000, 0x00000000, 0x0000ffff,
++};
++
++static int ks8695_pci_write_config(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 value)
++{
++      u32 cmd, v;
++      int nr;
++
++      v = value;
++      cmd = pcicmd(bus->number, devfn, where);
++      __raw_writel(cmd, KS8695_REG(KS8695_PBCA));
++
++      if (size == 1) {
++              nr = where & 0x3;
++              v = __raw_readl(KS8695_REG(KS8695_PBCD));
++              v = (v & bytemasks[nr]) | ((value & 0xff) << (nr * 8));
++      } else if (size == 2) {
++              nr = where & 0x2;
++              v = __raw_readl(KS8695_REG(KS8695_PBCD));
++              v = (v & wordmasks[nr]) | ((value & 0xffff) << (nr * 8));
++      }
++
++      __raw_writel(v, KS8695_REG(KS8695_PBCD));
++
++      return PCIBIOS_SUCCESSFUL;
++}
++
++struct pci_ops ks8695_pci_ops = {
++      .read   = ks8695_pci_read_config,
++      .write  = ks8695_pci_write_config,
++};
++
++static struct pci_bus *ks8695_pci_scan_bus(int nr, struct pci_sys_data *sys)
++{
++      return pci_scan_bus(sys->busnr, &ks8695_pci_ops, sys);
++}
++
++static struct resource pci_mem = {
++      .name   = "PCI memory space",
++      .start  = KS8695P_PCI_MEM_BASE + 0x04000000,
++      .end    = KS8695P_PCI_MEM_BASE + KS8695P_PCI_MEM_SIZE - 1,
++      .flags  = IORESOURCE_MEM,
++};
++
++static struct resource pci_io = {
++      .name   = "PCI IO space",
++      .start  = KS8695P_PCI_IO_BASE,
++      .end    = KS8695P_PCI_IO_BASE + KS8695P_PCI_IO_SIZE - 1,
++      .flags  = IORESOURCE_IO,
++};
++
++static int __init ks8695_pci_setup(int nr, struct pci_sys_data *sys)
++{
++      if (nr > 0)
++              return 0;
++
++      /* Assign and enable processor bridge */
++      local_write_config(0, 0, PCI_BASE_ADDRESS_0, KS8695P_PCI_MEM_BASE);
++      local_write_config(0, 0, PCI_COMMAND,
++              PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY);
++
++      request_resource(&iomem_resource, &pci_mem);
++      request_resource(&ioport_resource, &pci_io);
++
++      sys->resource[0] = &pci_io;
++      sys->resource[1] = &pci_mem;
++      sys->resource[2] = NULL;
++
++      return 1;
++}
++
++/*
++ * EXT0 is used as PCI bus interrupt source.
++ * level detection (active low)
++ */
++static void __init ks8695_pci_configure_interrupt(void)
++{
++      u32 v;
++
++      v = __raw_readl(KS8695_REG(KS8695_GPIO_MODE));
++      v |= 0x00000001;
++      __raw_writel(v, KS8695_REG(KS8695_GPIO_MODE));
++
++      v = __raw_readl(KS8695_REG(KS8695_GPIO_CTRL));
++      v &= 0xfffffff8;
++      v |= 0x8;
++      __raw_writel(v, KS8695_REG(KS8695_GPIO_CTRL));
++
++      v = __raw_readl(KS8695_REG(KS8695_GPIO_MODE));
++      v &= ~0x00000001;
++      __raw_writel(v, KS8695_REG(KS8695_GPIO_MODE));
++}
++
++static void __init ks8695_pci_preinit(void)
++{
++#if defined(CONFIG_MACH_CM4008) || defined(CONFIG_MACH_CM41xx)
++      /* Reset the PCI bus - (GPIO line is hooked up to bus reset) */
++      u32 msk;
++      msk = __raw_readl(KS8695_REG(KS8695_GPIO_MODE));
++      __raw_writel(msk | 0x2, KS8695_REG(KS8695_GPIO_MODE));
++
++      msk = __raw_readl(KS8695_REG(KS8695_GPIO_DATA));
++      __raw_writel(msk & ~0x2, KS8695_REG(KS8695_GPIO_DATA));
++      udelay(1000);
++      __raw_writel(msk | 0x2, KS8695_REG(KS8695_GPIO_DATA));
++      udelay(1000);
++#endif
++
++      /* stage 1 initialization, subid, subdevice = 0x0001 */
++      __raw_writel(0x00010001, KS8695_REG(KS8695_CRCSID));
++
++      /* stage 2 initialization */
++      /* prefetch limits with 16 words, retru enable */
++      __raw_writel(0x40000000, KS8695_REG(KS8695_PBCS));
++
++      /* configure memory mapping */
++      __raw_writel(KS8695P_PCIBG_MEM_BASE, KS8695_REG(KS8695_PMBA));
++      __raw_writel(KS8695P_PCI_MEM_MASK, KS8695_REG(KS8695_PMBAM));
++      __raw_writel(KS8695P_PCI_MEM_BASE, KS8695_REG(KS8695_PMBAT));
++
++      /* configure IO mapping */
++      __raw_writel(KS8695P_PCIBG_IO_BASE, KS8695_REG(KS8695_PIOBA));
++      __raw_writel(KS8695P_PCI_IO_MASK, KS8695_REG(KS8695_PIOBAM));
++      __raw_writel(KS8695P_PCI_IO_BASE, KS8695_REG(KS8695_PIOBAT));
++
++      ks8695_pci_configure_interrupt();
++}
++
++static int __init ks8695_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
++{
++      return 2;
++}
++
++struct hw_pci ks8695_pci __initdata = {
++      .nr_controllers = 1,
++      .preinit        = ks8695_pci_preinit,
++      .swizzle        = pci_std_swizzle,
++      .setup          = ks8695_pci_setup,
++      .scan           = ks8695_pci_scan_bus,
++      .map_irq        = ks8695_pci_map_irq,
++};
++
++static int __init ks8695_pci_init(void)
++{
++      pci_common_init(&ks8695_pci);
++      return 0;
++}
++
++subsys_initcall(ks8695_pci_init);
++
+diff -Naur linux-2.6.16/arch/arm/mach-ks8695/time.c linux-2.6.16.ks8695/arch/arm/mach-ks8695/time.c
+--- linux-2.6.16/arch/arm/mach-ks8695/time.c   1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/arch/arm/mach-ks8695/time.c    2006-03-15 22:42:43.000000000 +1000
+@@ -0,0 +1,79 @@
++/*
++ *  linux/arch/arm/mach-ks8695/time.c
++ *
++ *  Copyright (C) 2002 Micrel Inc.
++ *  Copyright (C) 2006 Greg Ungerer <gerg@snapgear.com>
++ *
++ * 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
++ */
++
++#include <linux/config.h>
++#include <linux/kernel.h>
++#include <linux/interrupt.h>
++#include <linux/init.h>
++#include <linux/time.h>
++#include <asm/system.h>
++#include <asm/hardware.h>
++#include <asm/irq.h>
++#include <asm/io.h>
++#include <asm/mach/time.h>
++
++
++/*
++ * Cannout read back time on KS8695.
++ */
++static unsigned long ks8695_gettimeoffset(void)
++{
++      return 0;
++}
++
++static irqreturn_t ks8695_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
++{
++      write_seqlock(&xtime_lock);
++        __raw_writel(KS8695_INTMASK_TIMERINT1, KS8695_REG(KS8695_INT_STATUS));
++      timer_tick(regs);
++      write_sequnlock(&xtime_lock);
++      return IRQ_HANDLED;
++}
++
++static struct irqaction ks8695_timer_irq = {
++      .name    = "KS8695 Timer Tick",
++      .flags   = SA_INTERRUPT | SA_TIMER,
++      .handler = ks8695_timer_interrupt,
++};
++
++/*
++ * Set up timer interrupt, and return the current time in seconds.
++ */
++static void __init ks8695_timer_init(void)
++{
++      unsigned long tmout = CLOCK_TICK_RATE / HZ;
++
++      /* Initialise to a known state (all timers off) */
++        __raw_writel(0, KS8695_REG(KS8695_TIMER_CTRL));
++
++      /* enable timer 1 as HZ clock */
++        __raw_writel(tmout, KS8695_REG(KS8695_TIMER1));
++        __raw_writel(tmout / 2, KS8695_REG(KS8695_TIMER1_PCOUNT));
++        __raw_writel(0x02, KS8695_REG(KS8695_TIMER_CTRL));
++
++      setup_irq(KS8695_INT_TIMERINT1, &ks8695_timer_irq);
++}
++
++struct sys_timer ks8695_timer = {
++      .init   = ks8695_timer_init,
++      .offset = ks8695_gettimeoffset,
++};
++
+diff -Naur linux-2.6.16/arch/arm/Makefile linux-2.6.16.ks8695/arch/arm/Makefile
+--- linux-2.6.16/arch/arm/Makefile     2006-03-20 15:53:29.000000000 +1000
++++ linux-2.6.16.ks8695/arch/arm/Makefile      2006-03-21 17:07:44.000000000 +1000
+@@ -94,6 +94,7 @@
+  machine-$(CONFIG_ARCH_IOP3XX)           := iop3xx
+  machine-$(CONFIG_ARCH_IXP4XX)           := ixp4xx
+  machine-$(CONFIG_ARCH_IXP2000)    := ixp2000
++ machine-$(CONFIG_ARCH_KS8695)     := ks8695
+  machine-$(CONFIG_ARCH_OMAP1)    := omap1
+  machine-$(CONFIG_ARCH_OMAP2)    := omap2
+   incdir-$(CONFIG_ARCH_OMAP)     := omap
+diff -Naur linux-2.6.16/arch/arm/mm/Kconfig linux-2.6.16.ks8695/arch/arm/mm/Kconfig
+--- linux-2.6.16/arch/arm/mm/Kconfig   2006-03-20 15:53:29.000000000 +1000
++++ linux-2.6.16.ks8695/arch/arm/mm/Kconfig    2006-03-21 17:07:46.000000000 +1000
+@@ -83,8 +83,8 @@
+ # ARM922T
+ config CPU_ARM922T
+       bool "Support ARM922T processor" if ARCH_INTEGRATOR
+-      depends on ARCH_LH7A40X || ARCH_INTEGRATOR
+-      default y if ARCH_LH7A40X
++      depends on ARCH_LH7A40X || ARCH_INTEGRATOR || ARCH_KS8695
++      default y if ARCH_LH7A40X || ARCH_KS8695
+       select CPU_32v4
+       select CPU_ABRT_EV4T
+       select CPU_CACHE_V4WT
+
+-------------------------------------------------------------------
+List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
+FAQ:        http://www.arm.linux.org.uk/mailinglists/faq.php
+Etiquette:  http://www.arm.linux.org.uk/mailinglists/etiquette.php
\ No newline at end of file
diff --git a/packages/linux/linux-ks8695/ks8695-headers-r0.patch b/packages/linux/linux-ks8695/ks8695-headers-r0.patch
new file mode 100644 (file)
index 0000000..257eb7d
--- /dev/null
@@ -0,0 +1,980 @@
+This patch inludes the architecture support headers.
+And also a boot time ID stub for the loader.
+
+
+diff -Naur linux-2.6.16/arch/arm/Kconfig linux-2.6.16.ks8695/arch/arm/Kconfig
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/debug-macro.S linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/debug-macro.S
+--- linux-2.6.16/include/asm-arm/arch-ks8695/debug-macro.S     1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/debug-macro.S      2006-02-17 11:57:24.000000000 +1000
+@@ -0,0 +1,37 @@
++/*
++ * linux/include/asm-arm/arch-ks8695/debug-macro.S
++ *
++ * Debugging macro include header
++ *
++ *  Copyright (C) 1994-1999 Russell King
++ *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
++ *  (C) Copyright 2006 Greg Ungerer <gerg@snapgear.com>
++ *
++ * 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.
++ */
++
++.macro addruart,rx
++      mrc     p15, 0, \rx, c1, c0
++      tst     \rx, #1                 @ MMU enabled?
++      moveq   \rx, #0x03000000        @ 0x03ffe000
++      orreq   \rx, \rx, #0x00ff0000
++      movne   \rx, #0xff000000        @ 0xff00e000
++      orr     \rx, \rx, #0x0000e000
++.endm
++
++.macro senduart,rd,rx
++      str     \rd, [\rx, #0x4]
++.endm
++
++.macro waituart,rd,rx
++1:    ldr     \rd, [\rx, #0x14]
++      and     \rd, \rd, #0x40         @ check TEMT bit
++      teq     \rd, #0x40
++      bne     1b
++.endm
++
++.macro busyuart,rd,rx
++.endm
++
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/dma.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/dma.h
+--- linux-2.6.16/include/asm-arm/arch-ks8695/dma.h     1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/dma.h      2006-02-20 13:39:13.000000000 +1000
+@@ -0,0 +1,26 @@
++/*
++ *  linux/include/asm-arm/arch-ks8695/dma.h
++ *
++ *  Copyright (C) 1997,1998 Russell King
++ *
++ * 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
++ */
++#ifndef __ASM_ARCH_DMA_H
++#define __ASM_ARCH_DMA_H
++
++#define MAX_DMA_CHANNELS      0
++#define MAX_DMA_ADDRESS               0xffffffff
++
++#endif /* __ASM_ARCH_DMA_H */
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/entry-macro.S linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/entry-macro.S
+--- linux-2.6.16/include/asm-arm/arch-ks8695/entry-macro.S     1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/entry-macro.S      2006-02-20 10:39:00.000000000 +1000
+@@ -0,0 +1,28 @@
++/*
++ * include/asm-arm/arch-ks8695/entry-macro.S
++ *
++ * Low-level IRQ helper macros for KS8695 based platforms
++ *
++ * 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.
++ */
++
++.macro        disable_fiq
++.endm
++
++
++.macro        get_irqnr_and_base, irqnr, irqstat, base, tmp
++      ldr     \irqnr, =KS8695_IO_VIRT+KS8695_INT_MASK_STATUS
++      ldr     \irqstat, [\irqnr]              @ get masked status
++
++      mov     \irqnr, #0
++1001: tst     \irqstat, #1
++      bne     1002f
++      add     \irqnr, \irqnr, #1
++      mov     \irqstat, \irqstat, lsr #1
++      cmp     \irqnr, #32
++      bcc     1001b
++1002: @ EQ will be set if we reach
++.endm
++
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/hardware.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/hardware.h
+--- linux-2.6.16/include/asm-arm/arch-ks8695/hardware.h        1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/hardware.h 2006-03-15 00:22:13.000000000 +1000
+@@ -0,0 +1,38 @@
++/*
++ *  linux/include/asm-arm/arch-ks8695/hardware.h
++ *
++ *  This file contains the hardware definitions of the KS8695.
++ *
++ *  Copyright (C) 2002 Micrel 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
++ */
++#ifndef __ASM_ARCH_HARDWARE_H
++#define __ASM_ARCH_HARDWARE_H
++
++/*
++ * Virtual memory mapping of the KS8695 internal register area.
++ * This is a static mapping, set up early in kernel startup.
++ */
++#define       KS8695_IO_VIRT          0xFF000000
++#define       KS8695_REG(x)           (KS8695_IO_VIRT + (x))
++
++#define       pcibios_assign_all_busses()     1
++#define       PCIBIOS_MIN_IO          0x00000100
++#define       PCIBIOS_MIN_MEM         0x00010000
++#define       PCI_MEMORY_VADDR        KS8695P_PCIBG_MEM_BASE
++#define       PCI_IO_VADDR            KS8695P_PCIBG_IO_BASE
++
++#endif /* __ASM_ARCH_HARDWARE_H */
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/io.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/io.h
+--- linux-2.6.16/include/asm-arm/arch-ks8695/io.h      1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/io.h       2006-03-15 00:22:13.000000000 +1000
+@@ -0,0 +1,31 @@
++/*
++ *  linux/include/asm-arm/arch-ks8695/io.h
++ *
++ *  Copyright (C) 1999 ARM Limited
++ *
++ * 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
++ */
++#ifndef __ASM_ARCH_IO_H
++#define __ASM_ARCH_IO_H
++
++#include <asm/hardware.h>
++
++#define IO_SPACE_LIMIT                0xffffffff
++
++#define __io(a)                 (a)
++#define __mem_pci(a)          ((unsigned long) (a))
++#define __mem_isa(a)          ((unsigned long) (a))
++
++#endif /* __ASM_ARCH_IO_H */
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/irqs.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/irqs.h
+--- linux-2.6.16/include/asm-arm/arch-ks8695/irqs.h    1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/irqs.h     2006-03-15 00:22:13.000000000 +1000
+@@ -0,0 +1,98 @@
++/*
++ *  linux/include/asm-arm/arch-ks8695/irqs.h
++ *
++ *  Copyright (C) 1999 ARM Limited
++ *  Copyright (C) 2000 Deep Blue Solutions Ltd.
++ *
++ * 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
++ */
++
++#ifndef __ASM_ARCH_IRQS_H
++#define __ASM_ARCH_IRQS_H 1
++
++/*
++ * IRQ definitions
++ */
++#define KS8695_INT_EXT_INT0                    2
++#define KS8695_INT_EXT_INT1                    3
++#define KS8695_INT_EXT_INT2                    4
++#define KS8695_INT_EXT_INT3                    5
++#define KS8695_INT_TIMERINT0                   6
++#define KS8695_INT_TIMERINT1                   7 
++#define KS8695_INT_UART_TX                     8
++#define KS8695_INT_UART_RX                     9
++#define KS8695_INT_UART_LINE_ERR               10
++#define KS8695_INT_UART_MODEMS                 11
++#define KS8695_INT_LAN_STOP_RX                 12
++#define KS8695_INT_LAN_STOP_TX                 13
++#define KS8695_INT_LAN_BUF_RX_STATUS           14
++#define KS8695_INT_LAN_BUF_TX_STATUS           15
++#define KS8695_INT_LAN_RX_STATUS               16
++#define KS8695_INT_LAN_TX_STATUS               17
++#define KS8695_INT_HPAN_STOP_RX                18
++#define KS8695_INT_HPNA_STOP_TX                19
++#define KS8695_INT_HPNA_BUF_RX_STATUS          20
++#define KS8695_INT_HPNA_BUF_TX_STATUS          21
++#define KS8695_INT_HPNA_RX_STATUS              22
++#define KS8695_INT_HPNA_TX_STATUS              23
++#define KS8695_INT_BUS_ERROR                   24
++#define KS8695_INT_WAN_STOP_RX                 25
++#define KS8695_INT_WAN_STOP_TX                 26
++#define KS8695_INT_WAN_BUF_RX_STATUS           27
++#define KS8695_INT_WAN_BUF_TX_STATUS           28
++#define KS8695_INT_WAN_RX_STATUS               29
++#define KS8695_INT_WAN_TX_STATUS               30
++
++#define KS8695_INT_UART                        KS8695_INT_UART_TX
++
++/*
++ * IRQ bit masks
++ */
++#define KS8695_INTMASK_EXT_INT0                (1 << KS8695_INT_EXT_INT0)
++#define KS8695_INTMASK_EXT_INT1                (1 << KS8695_INT_EXT_INT1)
++#define KS8695_INTMASK_EXT_INT2                (1 << KS8695_INT_EXT_INT2)
++#define KS8695_INTMASK_EXT_INT3                (1 << KS8695_INT_EXT_INT3)
++#define KS8695_INTMASK_TIMERINT0               (1 << KS8695_INT_TIMERINT0)
++#define KS8695_INTMASK_TIMERINT1               (1 << KS8695_INT_TIMERINT1)
++#define KS8695_INTMASK_UART_TX                 (1 << KS8695_INT_UART_TX)
++#define KS8695_INTMASK_UART_RX                 (1 << KS8695_INT_UART_RX)
++#define KS8695_INTMASK_UART_LINE_ERR           (1 << KS8695_INT_UART_LINE_ERR)
++#define KS8695_INTMASK_UART_MODEMS             (1 << KS8695_INT_UART_MODEMS)
++#define KS8695_INTMASK_LAN_STOP_RX             (1 << KS8695_INT_LAN_STOP_RX)
++#define KS8695_INTMASK_LAN_STOP_TX             (1 << KS8695_INT_LAN_STOP_TX)
++#define KS8695_INTMASK_LAN_BUF_RX_STATUS       (1 << KS8695_INT_LAN_BUF_RX_STATUS)
++#define KS8695_INTMASK_LAN_BUF_TX_STATUS       (1 << KS8695_INT_LAN_BUF_TX_STATUS)
++#define KS8695_INTMASK_LAN_RX_STATUS           (1 << KS8695_INT_LAN_RX_STATUS)
++#define KS8695_INTMASK_LAN_TX_STATUS           (1 << KS8695_INT_LAN_RX_STATUS)
++#define KS8695_INTMASK_HPAN_STOP_RX            (1 << KS8695_INT_HPAN_STOP_RX)
++#define KS8695_INTMASK_HPNA_STOP_TX            (1 << KS8695_INT_HPNA_STOP_TX)
++#define KS8695_INTMASK_HPNA_BUF_RX_STATUS      (1 << KS8695_INT_HPNA_BUF_RX_STATUS)
++#define KS8695_INTMAKS_HPNA_BUF_TX_STATUS      (1 << KS8695_INT_HPNA_BUF_TX_STATUS)
++#define KS8695_INTMASK_HPNA_RX_STATUS          (1 << KS8695_INT_HPNA_RX_STATUS)
++#define KS8695_INTMASK_HPNA_TX_STATUS          (1 << KS8695_INT_HPNA_TX_STATUS)
++#define KS8695_INTMASK_BUS_ERROR               (1 << KS8695_INT_BUS_ERROR)
++#define KS8695_INTMASK_WAN_STOP_RX             (1 << KS8695_INT_WAN_STOP_RX)
++#define KS8695_INTMASK_WAN_STOP_TX             (1 << KS8695_INT_WAN_STOP_TX)
++#define KS8695_INTMASK_WAN_BUF_RX_STATUS       (1 << KS8695_INT_WAN_BUF_RX_STATUS)
++#define KS8695_INTMASK_WAN_BUF_TX_STATUS       (1 << KS8695_INT_WAN_BUF_TX_STATUS)
++#define KS8695_INTMASK_WAN_RX_STATUS           (1 << KS8695_INT_WAN_RX_STATUS)
++#define KS8695_INTMASK_WAN_TX_STATUS           (1 << KS8695_INT_WAN_TX_STATUS)
++
++#define KS8695_SC_VALID_INT                    0xFFFFFFFF
++
++
++#define NR_IRQS               (32)
++
++#endif /* __ASM_ARCH_IRQS_H */
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/ks8695-pci.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/ks8695-pci.h
+--- linux-2.6.16/include/asm-arm/arch-ks8695/ks8695-pci.h      1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/ks8695-pci.h       2006-03-22 22:51:21.000000000 +1000
+@@ -0,0 +1,68 @@
++/*
++ * 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
++ */
++#ifndef __ASM_ARCH_PLATFORM_PCI_H
++#define __ASM_ARCH_PLATFORM_PCI_H 1
++
++/* PCI memory related defines */
++#define KS8695P_PCIBG_MEM_BASE      0x60000000  /* memory base for bridge*/  
++#define KS8695P_PCI_MEM_BASE      0x60000000UL/* memory base in PCI space */
++#define KS8695P_PCI_MEM_SIZE      0x20000000UL/* 512M, can be extended */
++#define KS8695P_PCI_MEM_MASK      0xE0000000  /* 512M */
++
++/* PCI IO related defines */
++#define KS8695P_PCIBG_IO_BASE       0x10000000  /* io base for bridge */
++#define KS8695P_PCI_IO_BASE         0x10000000
++#define KS8695P_PCI_IO_SIZE         0x00010000  /* 64K */
++#define KS8695P_PCI_IO_MASK         0xFF800000  /* 64K range */
++
++/* new registers specific to KS8695P */
++/* PCI related */
++#define       KS8695_CRCFID           0x2000
++#define       KS8695_CRCFCS           0x2004
++#define       KS8695_CRCFRV           0x2008
++#define       KS8695_CRCFLT           0x200c
++#define       KS8695_CRCBMA           0x2010
++#define       KS8695_CRCBA0           0x2014
++#define       KS8695_CRCSID           0x202c
++#define       KS8695_CRCFIT           0x203c
++
++/* bridge configuration related registers */
++#define       KS8695_PBCA             0x2100
++#define       KS8695_PBCD             0x2104
++
++/* bridge mode related registers */
++#define       KS8695_PBM              0x2200
++#define       KS8695_PBCS             0x2204
++#define       KS8695_PMBA             0x2208
++#define       KS8695_PMBAC            0x220c
++#define       KS8695_PMBAM            0x2210
++#define       KS8695_PMBAT            0x2214
++#define       KS8695_PIOBA            0x2218
++#define       KS8695_PIOBAC           0x221c
++#define       KS8695_PIOBAM           0x2220
++#define       KS8695_PIOBAT           0x2224
++
++/* bits for registers */
++/* 0x2200 */
++#define       PBM_BRIDGE_MODE         0x80000000
++
++/* 0x2204 */
++#define       PBCS_SW_RESET           0x80000000
++
++/* 0x220c */
++#define       PMBAC_TRANS_ENABLE      0x80000000
++
++#endif /* __ASM_ARCH_PLATFORM_PCI_H */
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/ks8695-regs.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/ks8695-regs.h
+--- linux-2.6.16/include/asm-arm/arch-ks8695/ks8695-regs.h     1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/ks8695-regs.h      2006-03-22 22:51:21.000000000 +1000
+@@ -0,0 +1,341 @@
++/*
++ * 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
++ */
++#ifndef __ASM_ARCH_KS8695_REGS_H
++#define __ASM_ARCH_KS8695_REGS_H 1
++
++/* Physical IO address space of KS8695 internal peripheral registers */
++#define KS8695_IO_BASE                        0x03FF0000
++#define KS8695_IO_SIZE                        0x00010000
++
++#define KS8695_SYSTEN_CONFIG          0x00
++#define KS8695_SYSTEN_BUS_CLOCK               0x04
++
++/* bus clock definitions*/
++#define KS8695_BUS_CLOCK_125MHZ               0x0
++#define KS8695_BUS_CLOCK_100MHZ               0x1
++#define KS8695_BUS_CLOCK_62MHZ                0x2
++#define KS8695_BUS_CLOCK_50MHZ                0x3
++#define KS8695_BUS_CLOCK_41MHZ                0x4
++#define KS8695_BUS_CLOCK_33MHZ                0x5
++#define KS8695_BUS_CLOCK_31MHZ                0x6
++#define KS8695_BUS_CLOCK_25MHZ                0x7
++
++/* i/o control registers offset difinitions */
++#define KS8695_IO_CTRL0                       0x4000
++#define KS8695_IO_CTRL1                       0x4004
++#define KS8695_IO_CTRL2                       0x4008
++#define KS8695_IO_CTRL3                       0x400C
++
++/* memory control registers offset difinitions */
++#define KS8695_MEM_CTRL0              0x4010
++#define KS8695_MEM_CTRL1              0x4014
++#define KS8695_MEM_CTRL2              0x4018
++#define KS8695_MEM_CTRL3              0x401C
++#define KS8695_MEM_GENERAL            0x4020
++#define KS8695_SDRAM_CTRL0            0x4030 
++#define KS8695_SDRAM_CTRL1            0x4034
++#define KS8695_SDRAM_GENERAL          0x4038
++#define KS8695_SDRAM_BUFFER           0x403C
++#define KS8695_SDRAM_REFRESH          0x4040    
++
++/* WAN control registers offset difinitions */
++#define KS8695_WAN_DMA_TX             0x6000
++#define KS8695_WAN_DMA_RX             0x6004
++#define KS8695_WAN_DMA_TX_START               0x6008    
++#define KS8695_WAN_DMA_RX_START               0x600C    
++#define KS8695_WAN_TX_LIST            0x6010
++#define KS8695_WAN_RX_LIST            0x6014
++#define KS8695_WAN_MAC_LOW            0x6018
++#define KS8695_WAN_MAC_HIGH           0x601C
++#define KS8695_WAN_MAC_ELOW           0x6080
++#define KS8695_WAN_MAC_EHIGH          0x6084
++
++/* LAN control registers offset difinitions */
++#define KS8695_LAN_DMA_TX             0x8000
++#define KS8695_LAN_DMA_RX             0x8004
++#define KS8695_LAN_DMA_TX_START               0x8008    
++#define KS8695_LAN_DMA_RX_START               0x800C    
++#define KS8695_LAN_TX_LIST            0x8010
++#define KS8695_LAN_RX_LIST            0x8014
++#define KS8695_LAN_MAC_LOW            0x8018
++#define KS8695_LAN_MAC_HIGH           0x801C
++#define KS8695_LAN_MAC_ELOW           0X8080
++#define KS8695_LAN_MAC_EHIGH          0X8084
++
++/* HPNA control registers offset difinitions */
++#define KS8695_HPNA_DMA_TX            0xA000
++#define KS8695_HPNA_DMA_RX            0xA004
++#define KS8695_HPNA_DMA_TX_START      0xA008    
++#define KS8695_HPNA_DMA_RX_START      0xA00C    
++#define KS8695_HPNA_TX_LIST           0xA010
++#define KS8695_HPNA_RX_LIST           0xA014
++#define KS8695_HPNA_MAC_LOW           0xA018
++#define KS8695_HPNA_MAC_HIGH          0xA01C
++#define KS8695_HPNA_MAC_ELOW          0xA080
++#define KS8695_HPNA_MAC_EHIGH         0xA084
++
++/* UART control registers offset difinitions */
++#define KS8695_UART_RX_BUFFER         0xE000
++#define KS8695_UART_TX_HOLDING                0xE004
++
++#define KS8695_UART_FIFO_CTRL         0xE008
++#define KS8695_UART_FIFO_TRIG01               0x00
++#define KS8695_UART_FIFO_TRIG04               0x80
++#define KS8695_UART_FIFO_TXRST                0x03
++#define KS8695_UART_FIFO_RXRST                0x02
++#define KS8695_UART_FIFO_FEN          0x01
++
++#define KS8695_UART_LINE_CTRL         0xE00C
++#define KS8695_UART_LINEC_BRK         0x40
++#define KS8695_UART_LINEC_EPS         0x10
++#define KS8695_UART_LINEC_PEN         0x08
++#define KS8695_UART_LINEC_STP2                0x04
++#define KS8695_UART_LINEC_WLEN8               0x03
++#define KS8695_UART_LINEC_WLEN7               0x02
++#define KS8695_UART_LINEC_WLEN6               0x01
++#define KS8695_UART_LINEC_WLEN5               0x00
++
++#define KS8695_UART_MODEM_CTRL                0xE010
++#define KS8695_UART_MODEMC_RTS                0x02
++#define KS8695_UART_MODEMC_DTR                0x01
++
++#define KS8695_UART_LINE_STATUS               0xE014
++#define KS8695_UART_LINES_TXFE                0x20
++#define KS8695_UART_LINES_BE          0x10
++#define KS8695_UART_LINES_FE          0x08
++#define KS8695_UART_LINES_PE          0x04
++#define KS8695_UART_LINES_OE          0x02
++#define KS8695_UART_LINES_RXFE                0x01
++#define KS8695_UART_LINES_ANY         (KS8695_UART_LINES_OE | \
++                                       KS8695_UART_LINES_BE | \
++                                       KS8695_UART_LINES_PE | \
++                                       KS8695_UART_LINES_FE)
++
++#define KS8695_UART_MODEM_STATUS      0xE018
++#define KS8695_UART_MODEM_DCD         0x80
++#define KS8695_UART_MODEM_DSR         0x20
++#define KS8695_UART_MODEM_CTS         0x10
++#define KS8695_UART_MODEM_DDCD                0x08
++#define KS8695_UART_MODEM_DDSR                0x02
++#define KS8695_UART_MODEM_DCTS                0x01
++#define KS8695_UART_MODEM_ANY         0xFF
++
++#define KS8695_UART_DIVISOR           0xE01C
++#define KS8695_UART_STATUS            0xE020
++
++/* Interrupt controlller registers offset difinitions */
++#define KS8695_INT_CONTL              0xE200
++#define KS8695_INT_ENABLE             0xE204
++#define KS8695_INT_ENABLE_MODEM               0x0800
++#define KS8695_INT_ENABLE_ERR         0x0400
++#define KS8695_INT_ENABLE_RX          0x0200
++#define KS8695_INT_ENABLE_TX          0x0100
++#define       KS8695_INT_UART_MASK            0x0f00
++
++#define KS8695_INT_STATUS             0xE208
++#define KS8695_INT_WAN_PRIORITY               0xE20C
++#define KS8695_INT_HPNA_PRIORITY      0xE210
++#define KS8695_INT_LAN_PRIORITY               0xE214
++#define KS8695_INT_TIMER_PRIORITY     0xE218
++#define KS8695_INT_UART_PRIORITY      0xE21C
++#define KS8695_INT_EXT_PRIORITY               0xE220
++#define KS8695_INT_CHAN_PRIORITY      0xE224
++#define KS8695_INT_BUSERROR_PRO               0xE228
++#define KS8695_INT_MASK_STATUS                0xE22C
++#define KS8695_FIQ_PEND_PRIORITY      0xE230
++#define KS8695_IRQ_PEND_PRIORITY      0xE234
++
++/* timer registers offset difinitions */
++#define KS8695_TIMER_CTRL             0xE400
++#define KS8695_TIMER1                 0xE404
++#define KS8695_TIMER0                 0xE408
++#define KS8695_TIMER1_PCOUNT          0xE40C
++#define KS8695_TIMER0_PCOUNT          0xE410
++
++/* GPIO registers offset difinitions */
++#define KS8695_GPIO_MODE              0xE600
++#define KS8695_GPIO_CTRL              0xE604
++#define KS8695_GPIO_DATA              0xE608
++
++/* SWITCH registers offset difinitions */
++#define KS8695_SWITCH_CTRL0           0xE800
++#define KS8695_SWITCH_CTRL1           0xE804
++#define KS8695_SWITCH_PORT1           0xE808
++#define KS8695_SWITCH_PORT2           0xE80C
++#define KS8695_SWITCH_PORT3           0xE810
++#define KS8695_SWITCH_PORT4           0xE814
++#define KS8695_SWITCH_PORT5           0xE818
++#define KS8695_SWITCH_LUE_CTRL                0xE824
++#define KS8695_SWITCH_LUE_HIGH                0xE828
++#define KS8695_SWITCH_LUE_LOW         0xE82C
++
++/* some differences between the KS8695(X) and KS8695P */
++#ifdef CONFIG_PCI
++#define KS8695_SWITCH_AUTO0           0xE848
++#define KS8695_SWITCH_AUTO1           0xE84C
++#define KS8695_SWITCH_ADVANCED                0xE860
++#define KS8695_DSCP_HIGH              0xE864
++#define KS8695_DSCP_LOW                       0xE868
++#define KS8695_SWITCH_MAC_HIGH                0xE86C
++#define KS8695_SWITCH_MAC_LOW         0xE870
++#define KS8695_LAN12_POWERMAGR                0xE874
++#define KS8695_LAN34_POWERMAGR                0xE878
++#else
++#define KS8695_SWITCH_AUTO0           0xE81C
++#define KS8695_SWITCH_AUTO1           0xE820
++#define KS8695_SWITCH_ADVANCED                0xE830
++#define KS8695_DSCP_HIGH              0xE834
++#define KS8695_DSCP_LOW                       0xE838
++#define KS8695_SWITCH_MAC_HIGH                0xE83C
++#define KS8695_SWITCH_MAC_LOW         0xE840
++#define KS8695_LAN12_POWERMAGR                0xE84C
++#define KS8695_LAN34_POWERMAGR                0xE850
++#endif
++
++/* miscellaneours registers difinitions */
++#define KS8695_MANAGE_COUNTER         0xE844
++#define KS8695_MANAGE_DATA            0xE848
++
++#define KS8695_DEVICE_ID              0xEA00
++#define KS8695_REVISION_ID            0xEA04
++
++#define KS8695_MISC_CONTROL           0xEA08
++#define KS8695_WAN_CONTROL            0xEA0C
++#define KS8695_WAN_POWERMAGR          0xEA10
++#define KS8695_WAN_PHY_CONTROL                0xEA14
++#define KS8695_WAN_PHY_STATUS         0xEA18
++
++
++/*
++ * The following are all new in the KS8695P.
++ */
++#ifdef CONFIG_PCI
++
++/* most bit definition are same as KS8695, except few new bits */
++#define KS8695_SEC0                   0xE800
++#define KS8695_SEC1                   0xE804
++
++/* new bits */
++#define       KS8695_SEC0_BACKOFF_EN          0x80000000
++#define       KS8695_SEC0_FRAME_LEN_CHECK     0x00020000
++#define       KS8695_SEC0_DMA_HALF_DUPLEX     0x00000010
++
++/* new bits */
++#define       KS8695_SEC1_NO_IEEE_AN          0x00000800
++#define       KS8695_SEC1_TPID_MODE           0x00000400
++#define       KS8695_SEC1_NO_TX_8021X_FLOW_CTRL 0x00000080
++#define       KS8695_SEC1_NO_RX_8021X_FLOW_CTRL 0x00000040
++#define       KS8695_SEC1_HUGE_PACKET         0x00000020
++#define       KS8695_SEC1_8021Q_VLAN_EN       0x00000010
++#define       KS8695_SEC1_MII_10BT            0x00000002
++#define       KS8695_SEC1_NULL_VID            0x00000001
++
++/* Port 1-4 and 5 Configuration Register Set 1 */
++#define KS8695_SEP1C1                 0xE80C
++#define KS8695_SEP2C1                 0xE818
++#define KS8695_SEP3C1                 0xE824
++#define KS8695_SEP4C1                 0xE830
++#define KS8695_SEP5C1                 0xE83C
++
++/* Port 1-4 and 5 Configuration Register Set 2 */
++#define KS8695_SEP1C2                 0xE810
++#define KS8695_SEP2C2                 0xE81C
++#define KS8695_SEP3C2                 0xE828
++#define KS8695_SEP4C2                 0xE834
++#define KS8695_SEP5C2                 0xE840
++
++#define       KS8695_SEPC2_VLAN_FILTER        0x10000000
++#define       KS8695_SEPC2_DISCARD_NON_PVID   0x08000000
++#define       KS8695_SEPC2_FORCE_FLOW_CTRL    0x04000000
++#define       KS8695_SEPC2_BACK_PRESSURE_EN   0x02000000
++
++#define       KS8695_SEPC2_TX_H_RATECTRL_MASK 0x00FFF000
++#define       KS8695_SEPC2_TX_L_RATECTRL_MASK 0x00000FFF
++
++/* Port 1-4 and 5 Configuration Register Set 3 */
++#define KS8695_SEP1C3                 0xE814
++#define KS8695_SEP2C3                 0xE820
++#define KS8695_SEP3C3                 0xE82C
++#define KS8695_SEP4C3                 0xE838
++#define KS8695_SEP5C3                 0xE844
++
++#define       KS8695_SEPC3_RX_H_RATECTRL_MASK 0xFFF00000
++#define       KS8695_SEPC3_RX_L_RATECTRL_MASK 0x000FFF00
++#define       KS8695_SEPC3_RX_DIF_RATECTRL_EN 0x00000080
++#define       KS8695_SEPC3_RX_L_RATECTRL_EN   0x00000040
++#define       KS8695_SEPC3_RX_H_RATECTRL_EN   0x00000020
++#define       KS8695_SEPC3_RX_L_RATEFLOW_EN   0x00000010
++#define       KS8695_SEPC3_RX_H_RATEFLOW_EN   0x00000008
++#define       KS8695_SEPC3_TX_DIF_RATECTRL_EN 0x00000004
++#define       KS8695_SEPC3_TX_L_RATECTRL_EN   0x00000002
++#define       KS8695_SEPC3_TX_H_RATECTRL_EN   0x00000001
++
++/* Port auto negotiation related registers */
++#define KS8695_SEP12AN                        0xE848
++#define KS8695_SEP34AN                        0xE84C
++
++/* Indirect Access Control register */
++#define KS8695_SEIAC                  0xE850
++#define KS8695_SEIADH2                        0xE854
++#define KS8695_SEIADH1                        0xE858
++#define KS8695_SEIADL                 0xE85C
++
++#define       KS8695_SEIAC_READ               0x00001000
++#define       KS8695_SEIAC_WRITE              0x00000000
++#define       KS8695_SEIAC_TAB_STATIC         0x00000000
++#define       KS8695_SEIAC_TAB_VLAN           0x00000400
++#define       KS8695_SEIAC_TAB_DYNAMIC        0x00000800
++#define       KS8695_SEIAC_TAB_MIB            0x00000C00
++#define       KS8695_SEIAC_INDEX_MASK         0x000003FF
++
++/* Advanced Feature Control register */
++#define KS8695_SEAFC                  0xE860
++#define KS8695_SEDSCPH                        0xE864
++#define KS8695_SEDSCPL                        0xE868
++#define KS8695_SEMAH                  0xE86C
++#define KS8695_SEMAL                  0xE870
++
++/* LAN PHY power management related registers */
++#define KS8695_LPPM12                 0xE874
++#define KS8695_LPPM34                 0xE878
++
++/* new bits */
++#define       KS8695_LPPM_PHY_LOOPBACK        0x4000
++#define       KS8695_LPPM_RMT_LOOPBACK        0x2000
++#define       KS8695_LPPM_PHY_ISOLATE         0x1000
++#define       KS8695_LPPM_SOFT_RESET          0x0800
++#define       KS8695_LPPM_FORCE_LINK          0x0400
++
++/* new bits */
++#define       KS8695_LPPM_PHY_LOOPBACK        0x4000
++#define       KS8695_LPPM_RMT_LOOPBACK        0x2000
++#define       KS8695_LPPM_PHY_ISOLATE         0x1000
++#define       KS8695_LPPM_SOFT_RESET          0x0800
++#define       KS8695_LPPM_FORCE_LINK          0x0400
++
++/* Digital Testing Status and Control Registers */
++#define KS8695_SEDTS                  0xE87C
++#define KS8695_SEATCS                 0xE880
++
++/* new bits for WAN PHY Power mangement register */
++#define       KS8695_WPPM_PHY_LOOPBACK        0x00004000
++#define       KS8695_WPPM_RMT_LOOPBACK        0x00002000
++#define       KS8695_WPPM_PHY_ISOLATION       0x00001000
++#define       KS8695_WPPM_FORCE_LINK          0x00000400
++
++#endif /* CONFIG_PCI */
++
++#endif /* __ASM_ARCH_KS8695_REGS_H */
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/memory.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/memory.h
+--- linux-2.6.16/include/asm-arm/arch-ks8695/memory.h  1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/memory.h   2006-03-22 23:45:56.000000000 +1000
+@@ -0,0 +1,44 @@
++/*
++ *  linux/include/asm-arm/arch-ks8695/memory.h
++ *
++ *  Copyright (C) 2002 Micrel 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
++ */
++#ifndef __ASM_ARCH_MEMORY_H
++#define __ASM_ARCH_MEMORY_H
++
++#include <asm/arch/hardware.h>
++#include <asm/arch/ks8695-regs.h>
++#include <asm/arch/ks8695-pci.h>
++
++/*
++ * All the current machines based on this I know of have RAM based at
++ * address 0. Lets deal with any that don't if/when we hit them.
++ */
++#define PHYS_OFFSET   UL(0x00000000)              
++
++/*
++ * Virtual view <-> DMA view memory address translations
++ * virt_to_bus: Used to translate the virtual address to an
++ *              address suitable to be passed to set_dma_addr
++ * bus_to_virt: Used to convert an address for DMA operations
++ *              to an address that the kernel can use.
++ * On KS8695, physical and bus address are same for dram
++ */
++#define __virt_to_bus(x)      ((x) - PAGE_OFFSET  + KS8695P_PCI_MEM_BASE)
++#define __bus_to_virt(x)      ((x) - KS8695P_PCI_MEM_BASE + PAGE_OFFSET)
++
++#endif /* __ASM_ARCH_MEMORY_H */
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/param.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/param.h
+--- linux-2.6.16/include/asm-arm/arch-ks8695/param.h   1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/param.h    2006-02-20 13:39:13.000000000 +1000
+@@ -0,0 +1,20 @@
++/*
++ *  linux/include/asm-arm/arch-ks8695/param.h
++ *
++ *  Copyright (C) 1999 ARM Limited
++ *
++ * 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
++ */
++
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/system.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/system.h
+--- linux-2.6.16/include/asm-arm/arch-ks8695/system.h  1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/system.h   2006-02-21 10:07:50.000000000 +1000
+@@ -0,0 +1,48 @@
++/*
++ *  linux/include/asm-arm/arch-ks8695/system.h
++ *
++ *  Copyright (C) 2002 Micrel 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
++ */
++#ifndef __ASM_ARCH_SYSTEM_H
++#define __ASM_ARCH_SYSTEM_H
++
++#include <asm/io.h>
++#include <asm/arch/ks8695-regs.h>
++
++static void arch_idle(void)
++{
++      /*
++       * This should do all the clock switching
++       * and wait for interrupt tricks
++       */
++      cpu_do_idle();
++}
++
++static inline void arch_reset(char mode)
++{
++      unsigned int val;
++
++      /* To reset, use the watchdog timer */
++      val = __raw_readl(KS8695_REG(KS8695_TIMER_CTRL)) & 0x02;
++      __raw_writel(val, KS8695_REG(KS8695_TIMER_CTRL));
++      val = (10 << 8) | 0xFF;
++      __raw_writel(val, KS8695_REG(KS8695_TIMER0));
++      val = __raw_readl(KS8695_REG(KS8695_TIMER_CTRL)) | 0x01;
++      __raw_writel(val, KS8695_REG(KS8695_TIMER_CTRL));
++}
++
++#endif /* __ASM_ARCH_SYSTEM_H */
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/timex.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/timex.h
+--- linux-2.6.16/include/asm-arm/arch-ks8695/timex.h   1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/timex.h    2006-03-15 22:44:05.000000000 +1000
+@@ -0,0 +1,26 @@
++/*
++ *  linux/include/asm-arm/arch-ks8695/timex.h
++ *
++ *  Copyright (C) 1999 ARM Limited
++ *
++ * 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
++ */
++
++#ifndef __ASM_ARCH_TIMEX_H
++#define __ASM_ARCH_TIMEX_H 1
++
++#define CLOCK_TICK_RATE               (25000000)
++
++#endif /* __ASM_ARCH_TIMEX_H */
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/uncompress.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/uncompress.h
+--- linux-2.6.16/include/asm-arm/arch-ks8695/uncompress.h      1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/uncompress.h       2006-03-15 00:22:13.000000000 +1000
+@@ -0,0 +1,60 @@
++/*
++ *  linux/include/asm-arm/arch-ks8695/uncompress.h
++ *
++ *  Copyright (C) 1999 ARM Limited
++ *
++ * 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
++ */
++
++#include <asm/arch/ks8695-regs.h>
++
++/*
++ * These access routines operate on the physical address space.
++ */
++static inline unsigned int ks8695_getreg(unsigned int r)
++{
++      return *((unsigned int *) (KS8695_IO_BASE + r));
++}
++
++static inline void ks8695_setreg(unsigned int r, unsigned int v)
++{
++      *((unsigned int *) (KS8695_IO_BASE + r)) = v;
++}
++
++static void putc(char c)
++{
++      while ((ks8695_getreg(KS8695_UART_LINE_STATUS) & KS8695_UART_LINES_TXFE) == 0)
++              ;
++
++      ks8695_setreg(KS8695_UART_TX_HOLDING, c);
++}
++
++
++static void putstr(const char *s)
++{
++      while (*s) {
++              putc(*s);
++              if (*s == '\n')
++                      putc('\r');
++              s++;
++      }
++}
++
++/*
++ * nothing to do
++ */
++#define arch_decomp_setup()
++
++#define arch_decomp_wdog()
+diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/vmalloc.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/vmalloc.h
+--- linux-2.6.16/include/asm-arm/arch-ks8695/vmalloc.h 1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/vmalloc.h  2006-02-20 13:39:13.000000000 +1000
+@@ -0,0 +1,26 @@
++/*
++ *  linux/include/asm-arm/arch-ks8695/vmalloc.h
++ *
++ *  Copyright (C) 2000 Russell King.
++ *
++ * 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
++ */
++
++#ifndef       __ASM_ARCH_VMALLOC_H
++#define       __ASM_ARCH_VMALLOC_H 1
++
++#define VMALLOC_END       (PAGE_OFFSET + 0x10000000)
++
++#endif /* __ASM_ARCH_VMALLOC_H */
+diff -Naur linux-2.6.16/arch/arm/boot/compressed/head-ks8695.S linux-2.6.16.ks8695/arch/arm/boot/compressed/head-ks8695.S
+--- linux-2.6.16/arch/arm/boot/compressed/head-ks8695.S        1970-01-01 10:00:00.000000000 +1000
++++ linux-2.6.16.ks8695/arch/arm/boot/compressed/head-ks8695.S 2006-03-20 13:55:24.000000000 +1000
+@@ -0,0 +1,5 @@
++#include <asm/mach-types.h>
++
++      .section        ".start", "ax"
++      mov     r7, #(MACH_TYPE_KS8695 & 0xff)
++      orr     r7, r7, #(MACH_TYPE_KS8695 & 0xff00)
+diff -Naur linux-2.6.16/arch/arm/boot/compressed/Makefile linux-2.6.16.ks8695/arch/arm/boot/compressed/Makefile
+--- linux-2.6.16/arch/arm/boot/compressed/Makefile     2006-03-20 15:53:29.000000000 +1000
++++ linux-2.6.16.ks8695/arch/arm/boot/compressed/Makefile      2006-03-21 17:07:45.000000000 +1000
+@@ -46,6 +46,10 @@
+ OBJS          += head-sharpsl.o
+ endif
++ifeq ($(CONFIG_ARCH_KS8695),y)
++OBJS          += head-ks8695.o
++endif
++
+ ifeq ($(CONFIG_ARCH_AT91RM9200),y)
+ OBJS          += head-at91rm9200.o
+ endif
+
+-------------------------------------------------------------------
+List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
+FAQ:        http://www.arm.linux.org.uk/mailinglists/faq.php
+Etiquette:  http://www.arm.linux.org.uk/mailinglists/etiquette.php
\ No newline at end of file
diff --git a/packages/linux/linux-ks8695_2.6.16.bb b/packages/linux/linux-ks8695_2.6.16.bb
new file mode 100644 (file)
index 0000000..8c3b694
--- /dev/null
@@ -0,0 +1,36 @@
+DESCRIPTION = "Linux kernel for Micrel KS8695(P) based devices"
+SECTION = "kernel"
+LICENSE = "GPL"
+MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>"
+PR = "r0"
+
+SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
+           file://ks8695-headers-r0.patch;patch=1 \
+           file://ks8695-base-r0.patch;patch=1 \
+           file://defconfig-ks8695"
+
+S = "${WORKDIR}/linux-${PV}"
+
+COMPATIBLE_HOST = 'arm.*-linux'
+COMPATIBLE_MACHINE = "ks8695"
+
+inherit kernel
+inherit package
+
+ARCH = "arm"
+KERNEL_IMAGETYPE = "zImage"
+CMDLINE = "ttyS0,115200n8 root=/dev/mtdblock2 init=/linuxrc"
+
+do_configure_prepend() {
+       install -m 0644 ${WORKDIR}/defconfig-${MACHINE} ${S}/.config
+       echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
+}
+
+do_deploy() {
+        install -d ${DEPLOY_DIR_IMAGE}
+        install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}-${DATETIME}.bin
+}
+
+do_deploy[dirs] = "${S}"
+
+addtask deploy before do_build after do_compile