From c2420f459bde3d91cc8fc4b585e1ba49edb858f0 Mon Sep 17 00:00:00 2001 From: Michael Lauer Date: Fri, 19 May 2006 22:27:54 +0000 Subject: add a machine configuration and a kernel for the Micrel KS8695 board that 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 | 19 + packages/linux/linux-ks8695/.mtn2git_empty | 0 packages/linux/linux-ks8695/defconfig-ks8695 | 1107 ++++++++++++++++++++ packages/linux/linux-ks8695/ks8695-base-r0.patch | 715 +++++++++++++ .../linux/linux-ks8695/ks8695-headers-r0.patch | 980 +++++++++++++++++ packages/linux/linux-ks8695_2.6.16.bb | 36 + 6 files changed, 2857 insertions(+) create mode 100644 conf/machine/ks8695.conf create mode 100644 packages/linux/linux-ks8695/.mtn2git_empty create mode 100644 packages/linux/linux-ks8695/defconfig-ks8695 create mode 100644 packages/linux/linux-ks8695/ks8695-base-r0.patch create mode 100644 packages/linux/linux-ks8695/ks8695-headers-r0.patch create mode 100644 packages/linux/linux-ks8695_2.6.16.bb diff --git a/conf/machine/ks8695.conf b/conf/machine/ks8695.conf new file mode 100644 index 0000000000..a3e7509e29 --- /dev/null +++ b/conf/machine/ks8695.conf @@ -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 index 0000000000..e69de29bb2 diff --git a/packages/linux/linux-ks8695/defconfig-ks8695 b/packages/linux/linux-ks8695/defconfig-ks8695 new file mode 100644 index 0000000000..831a1d1fa8 --- /dev/null +++ b/packages/linux/linux-ks8695/defconfig-ks8695 @@ -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="" +# 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 index 0000000000..98477c7861 --- /dev/null +++ b/packages/linux/linux-ks8695/ks8695-base-r0.patch @@ -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 ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++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 */ ++ .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 ++ * ++ * 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 ++#include ++#include ++#include ++#include ++#include ++ ++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 ++#include ++#include ++#include ++#include ++#include ++ ++/* ++ * 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 ++ * ++ * 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 ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++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 ++ * ++ * 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 ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++/* ++ * 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 index 0000000000..257eb7d1c8 --- /dev/null +++ b/packages/linux/linux-ks8695/ks8695-headers-r0.patch @@ -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 ++ * ++ * 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 ++ ++#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 ++#include ++#include ++ ++/* ++ * 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 ++#include ++ ++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 ++ ++/* ++ * 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 ++ ++ .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 index 0000000000..8c3b694e7e --- /dev/null +++ b/packages/linux/linux-ks8695_2.6.16.bb @@ -0,0 +1,36 @@ +DESCRIPTION = "Linux kernel for Micrel KS8695(P) based devices" +SECTION = "kernel" +LICENSE = "GPL" +MAINTAINER = "Michael 'Mickey' Lauer " +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 -- cgit v1.2.3