public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ARM: OMAP: Add minimal OMAP2430 support
@ 2006-05-17 10:50 Komal Shah
  0 siblings, 0 replies; 18+ messages in thread
From: Komal Shah @ 2006-05-17 10:50 UTC (permalink / raw)
  To: linux-omap-open-source

[-- Attachment #1: Type: text/plain, Size: 235 bytes --]

This patch adds minimal OMAP2430 support.
Based on 2.6.10 Linux kernel available on linux.omap.com from TI.

Signed-off-by: Komal Shah <komal_shah802003@yahoo.com>

-- 
http://www.fastmail.fm - Access your email from home and the web


[-- Attachment #2: min2430.patch --]
[-- Type: application/octet-stream, Size: 31008 bytes --]

diff --git a/arch/arm/configs/omap_sdp2430_2430_defconfig b/arch/arm/configs/omap_sdp2430_2430_defconfig
new file mode 100644
index 0000000..669d1a3
--- /dev/null
+++ b/arch/arm/configs/omap_sdp2430_2430_defconfig
@@ -0,0 +1,736 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.17-rc4-omap1
+# Wed May 17 15:24:17 2006
+#
+CONFIG_ARM=y
+CONFIG_MMU=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_VECTORS_BASE=0xffff0000
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+CONFIG_SYSCTL=y
+# CONFIG_IKCONFIG is not set
+# CONFIG_RELAY 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=y
+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_SLAB=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_SLOB is not set
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_KMOD=y
+
+#
+# Block layer
+#
+# CONFIG_BLK_DEV_IO_TRACE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+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_EP93XX 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_IXP23XX is not set
+# 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=y
+# 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
+
+#
+# TI OMAP Implementations
+#
+# CONFIG_ARCH_OMAP1 is not set
+CONFIG_ARCH_OMAP2=y
+
+#
+# OMAP Feature Selections
+#
+# CONFIG_OMAP_RESET_CLOCKS is not set
+CONFIG_OMAP_BOOT_TAG=y
+# CONFIG_OMAP_BOOT_REASON is not set
+# CONFIG_OMAP_COMPONENT_VERSION is not set
+# CONFIG_OMAP_GPIO_SWITCH is not set
+CONFIG_OMAP_MUX=y
+CONFIG_OMAP_MUX_DEBUG=y
+CONFIG_OMAP_MUX_WARNINGS=y
+# CONFIG_OMAP_STI is not set
+# CONFIG_OMAP_MCBSP is not set
+CONFIG_OMAP_MPU_TIMER=y
+# CONFIG_OMAP_32K_TIMER is not set
+CONFIG_OMAP_LL_DEBUG_UART1=y
+# CONFIG_OMAP_LL_DEBUG_UART2 is not set
+# CONFIG_OMAP_LL_DEBUG_UART3 is not set
+CONFIG_OMAP_SERIAL_WAKE=y
+CONFIG_MACH_OMAP_GENERIC=y
+
+#
+# OMAP Core Type
+#
+CONFIG_ARCH_OMAP24XX=y
+# CONFIG_ARCH_OMAP2420 is not set
+CONFIG_ARCH_OMAP2430=y
+
+#
+# OMAP Board Type
+#
+# CONFIG_MACH_OMAP_H4 is not set
+# CONFIG_MACH_OMAP_APOLLON is not set
+CONFIG_MACH_OMAP_SDP2430=y
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_V6=y
+# CONFIG_CPU_32v6K is not set
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=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
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+
+#
+# Bus support
+#
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_PREEMPT is not set
+# CONFIG_NO_IDLE_HZ is not set
+CONFIG_HZ=100
+# 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=4
+# CONFIG_LEDS is not set
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="root=/dev/ram0 rw console=ttyS0,115200n8 initrd=0x80600000,8M ramdisk_size=8192"
+# 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
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_MISC=y
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
+# CONFIG_PM is not set
+# CONFIG_APM is not set
+
+#
+# Networking
+#
+# CONFIG_NET is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# CONFIG_DEBUG_DRIVER is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_CDROM_PKTCDVD is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# I2O device support
+#
+
+#
+# ISDN subsystem
+#
+
+#
+# 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=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_OMAP_RNG is not set
+# CONFIG_NVRAM is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# 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
+#
+
+#
+# LED devices
+#
+# CONFIG_NEW_LEDS is not set
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+
+#
+# Graphics support
+#
+CONFIG_FB=y
+# CONFIG_FB_CFB_FILLRECT is not set
+# CONFIG_FB_CFB_COPYAREA is not set
+# CONFIG_FB_CFB_IMAGEBLIT is not set
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_FIRMWARE_EDID=y
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_OMAP=y
+# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
+# CONFIG_FB_OMAP_LCD_LPH8923 is not set
+# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_LOGO_LINUX_CLUT224=y
+# CONFIG_BACKLIGHT_LCD_SUPPORT 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_ARCH_HAS_EHCI is not set
+# CONFIG_USB is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_OMAP=y
+
+#
+# Real Time Clock
+#
+CONFIG_RTC_LIB=y
+# CONFIG_RTC_CLASS is not set
+
+#
+# Synchronous Serial Interfaces (SSI)
+#
+# CONFIG_OMAP_TSC2101 is not set
+
+#
+# CBUS support
+#
+# CONFIG_CBUS 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=y
+# CONFIG_EXT3_FS_XATTR is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG 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_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_QUOTA=y
+# CONFIG_QFMT_V1 is not set
+CONFIG_QFMT_V2=y
+CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# 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_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
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# 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=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_DEBUG_VM is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_UNWIND_INFO is not set
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_WAITQ is not set
+# CONFIG_DEBUG_ERRORS is not set
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_ICEDCC is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=y
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index ab144c3..d9d73be 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -9,6 +9,10 @@ config ARCH_OMAP2420
 	bool "OMAP2420 support"
 	depends on ARCH_OMAP24XX
 
+config ARCH_OMAP2430
+	bool "OMAP2430 support"
+	depends on ARCH_OMAP24XX
+
 comment "OMAP Board Type"
 	depends on ARCH_OMAP2
 
@@ -24,3 +28,9 @@ config MACH_OMAP_H4
 config MACH_OMAP_APOLLON
 	bool "OMAP 2420 Apollon board"
 	depends on ARCH_OMAP2 && ARCH_OMAP24XX
+
+config MACH_OMAP_SDP2430
+	bool "OMAP 2430 SDP2430 board"
+	depends on ARCH_OMAP2 && ARCH_OMAP24XX
+
+
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 111eaa6..dc1ded6 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -14,4 +14,5 @@ # Specific board support
 obj-$(CONFIG_MACH_OMAP_GENERIC)		+= board-generic.o
 obj-$(CONFIG_MACH_OMAP_H4)		+= board-h4.o
 obj-$(CONFIG_MACH_OMAP_APOLLON)		+= board-apollon.o
+obj-$(CONFIG_MACH_OMAP_SDP2430)		+= board-sdp2430.o
 
diff --git a/arch/arm/mach-omap2/board-sdp2430.c b/arch/arm/mach-omap2/board-sdp2430.c
new file mode 100644
index 0000000..80483c3
--- /dev/null
+++ b/arch/arm/mach-omap2/board-sdp2430.c
@@ -0,0 +1,73 @@
+/*
+ * linux/arch/arm/mach-omap2/board-sdp2430.c
+ *
+ * Copyright (C) 2006 Komal Shah <komal_shah802003@yahoo.com>
+ * 
+ * Modified from mach-omap2/board-generic.c
+ *
+ * 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.
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/delay.h>
+
+#include <asm/hardware.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+
+#include <asm/arch/gpio.h>
+#include <asm/arch/mux.h>
+#include <asm/arch/usb.h>
+#include <asm/arch/board.h>
+#include <asm/arch/common.h>
+#include "prcm-regs.h"
+
+#include <asm/io.h>
+#include <asm/delay.h>
+
+static void __init omap_sdp2430_init_irq(void)
+{
+	omap2_init_common_hw();
+	omap_init_irq();
+}
+
+static struct omap_uart_config sdp2430_uart_config __initdata = {
+	.enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)),
+};
+
+static struct omap_board_config_kernel sdp2430_config[] = {
+	{ OMAP_TAG_UART,	&sdp2430_uart_config },
+};
+
+static void __init omap_sdp2430_init(void)
+{
+	/*
+	 * Make sure the serial ports are muxed on at this point.
+	 * You have to mux them off in device drivers later on
+	 * if not needed.
+	 */
+	omap_board_config = sdp2430_config;
+	omap_board_config_size = ARRAY_SIZE(sdp2430_config);
+	omap_serial_init();
+}
+
+static void __init omap_sdp2430_map_io(void)
+{
+	omap2_map_common_io();
+}
+
+MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board")
+	/* Maintainer: Komal Shah <komal_shah802003@yahoo.com> */
+	.phys_io	= 0x48000000,
+	.io_pg_offst	= ((0xd8000000) >> 18) & 0xfffc,
+	.boot_params	= 0x80000100,
+	.map_io		= omap_sdp2430_map_io,
+	.init_irq	= omap_sdp2430_init_irq,
+	.init_machine	= omap_sdp2430_init,
+	.timer		= &omap_timer,
+MACHINE_END
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 7618730..8f65d5d 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -18,7 +18,11 @@ #include <linux/init.h>
 
 #include <asm/io.h>
 
+#if defined(CONFIG_ARCH_OMAP2420)
 #define OMAP24XX_TAP_BASE	io_p2v(0x48014000)
+#elif defined(CONFIG_ARCH_OMAP2430)
+#define OMAP24XX_TAP_BASE	io_p2v(0x4900A000)
+#endif
 
 #define OMAP_TAP_IDCODE		0x0204
 #define OMAP_TAP_PROD_ID	0x0208
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 7d57116..0510760 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -44,7 +44,15 @@ static struct map_desc omap2_io_desc[] _
 		.pfn		= __phys_to_pfn(L4_24XX_PHYS),
 		.length		= L4_24XX_SIZE,
 		.type		= MT_DEVICE
-	}
+	},
+#ifdef CONFIG_ARCH_OMAP2430
+	{
+		.virtual	= L4_WK_243X_VIRT,
+		.pfn		= __phys_to_pfn(L4_WK_243X_PHYS),
+		.length		= L4_WK_243X_SIZE,
+		.type		= MT_DEVICE
+	},
+#endif
 };
 
 void __init omap2_map_common_io(void)
diff --git a/arch/arm/mach-omap2/prcm-regs.h b/arch/arm/mach-omap2/prcm-regs.h
index 22ac7be..e848e3e 100644
--- a/arch/arm/mach-omap2/prcm-regs.h
+++ b/arch/arm/mach-omap2/prcm-regs.h
@@ -29,7 +29,11 @@ #define PRCM_FULL_SPEED 2
 
 #ifndef __ASSEMBLER__
 
-#define PRCM_REG32(offset)	__REG32(OMAP24XX_PRCM_BASE + (offset))
+#if defined(CONFIG_ARCH_OMAP2420)
+#define PRCM_REG32(offset)	__REG32(OMAP242X_PRCM_BASE + (offset))
+#elif defined(CONFIG_ARCH_OMAP2430)
+#define PRCM_REG32(offset)	__REG32(OMAP243X_PRCM_BASE + (offset))
+#endif
 
 #define PRCM_REVISION		PRCM_REG32(0x000)
 #define PRCM_SYSCONFIG		PRCM_REG32(0x010)
@@ -263,12 +267,21 @@ #define GPTIMER1_TCAR2		GPT1_REG32(0x044
 #define GPTIMER3_TISR		__REG32(OMAP24XX_L4_IO_BASE + 0x78018)
 
 /* SDRC */
-#define SDRC_DLLA_CTRL		__REG32(OMAP24XX_SDRC_BASE + 0x060)
-#define SDRC_DLLA_STATUS	__REG32(OMAP24XX_SDRC_BASE + 0x064)
-#define SDRC_DLLB_CTRL		__REG32(OMAP24XX_SDRC_BASE + 0x068)
-#define SDRC_DLLB_STATUS	__REG32(OMAP24XX_SDRC_BASE + 0x06C)
-#define SDRC_POWER		__REG32(OMAP24XX_SDRC_BASE + 0x070)
-#define SDRC_MR_0		__REG32(OMAP24XX_SDRC_BASE + 0x084)
+#if defined(CONFIG_ARCH_OMAP2420)
+#define SDRC_DLLA_CTRL		__REG32(OMAP242X_SDRC_BASE + 0x060)
+#define SDRC_DLLA_STATUS	__REG32(OMAP242X_SDRC_BASE + 0x064)
+#define SDRC_DLLB_CTRL		__REG32(OMAP242X_SDRC_BASE + 0x068)
+#define SDRC_DLLB_STATUS	__REG32(OMAP242X_SDRC_BASE + 0x06C)
+#define SDRC_POWER		__REG32(OMAP242X_SDRC_BASE + 0x070)
+#define SDRC_MR_0		__REG32(OMAP242X_SDRC_BASE + 0x084)
+#elif defined(CONFIG_ARCH_OMAP2430)
+#define SDRC_DLLA_CTRL		__REG32(OMAP243X_SDRC_BASE + 0x060)
+#define SDRC_DLLA_STATUS	__REG32(OMAP243X_SDRC_BASE + 0x064)
+#define SDRC_DLLB_CTRL		__REG32(OMAP243X_SDRC_BASE + 0x068)
+#define SDRC_DLLB_STATUS	__REG32(OMAP243X_SDRC_BASE + 0x06C)
+#define SDRC_POWER		__REG32(OMAP243X_SDRC_BASE + 0x070)
+#define SDRC_MR_0		__REG32(OMAP243X_SDRC_BASE + 0x084)
+#endif
 
 /* GPIO 1 */
 #define GPIO1_BASE		GPIOX_BASE(1)
diff --git a/arch/arm/mach-omap2/sram-fn.S b/arch/arm/mach-omap2/sram-fn.S
index d261e4f..5c212b1 100644
--- a/arch/arm/mach-omap2/sram-fn.S
+++ b/arch/arm/mach-omap2/sram-fn.S
@@ -30,17 +30,31 @@ #include <asm/hardware.h>
 
 #include "prcm-regs.h"
 
-#define TIMER_32KSYNCT_CR_V	IO_ADDRESS(OMAP24XX_32KSYNCT_BASE + 0x010)
-
-#define CM_CLKSEL2_PLL_V	IO_ADDRESS(OMAP24XX_PRCM_BASE + 0x544)
-#define PRCM_VOLTCTRL_V		IO_ADDRESS(OMAP24XX_PRCM_BASE + 0x050)
-#define PRCM_CLKCFG_CTRL_V	IO_ADDRESS(OMAP24XX_PRCM_BASE + 0x080)
-#define CM_CLKEN_PLL_V		IO_ADDRESS(OMAP24XX_PRCM_BASE + 0x500)
-#define CM_IDLEST_CKGEN_V	IO_ADDRESS(OMAP24XX_PRCM_BASE + 0x520)
-#define CM_CLKSEL1_PLL_V	IO_ADDRESS(OMAP24XX_PRCM_BASE + 0x540)
-
-#define SDRC_DLLA_CTRL_V	IO_ADDRESS(OMAP24XX_SDRC_BASE + 0x060)
-#define SDRC_RFR_CTRL_V		IO_ADDRESS(OMAP24XX_SDRC_BASE + 0x0a4)
+#if defined(CONFIG_ARCH_OMAP2420)
+#define TIMER_32KSYNCT_CR_V	IO_ADDRESS(OMAP242X_32KSYNCT_BASE + 0x010)
+
+#define CM_CLKSEL2_PLL_V	IO_ADDRESS(OMAP242X_PRCM_BASE + 0x544)
+#define PRCM_VOLTCTRL_V		IO_ADDRESS(OMAP242X_PRCM_BASE + 0x050)
+#define PRCM_CLKCFG_CTRL_V	IO_ADDRESS(OMAP242X_PRCM_BASE + 0x080)
+#define CM_CLKEN_PLL_V		IO_ADDRESS(OMAP242X_PRCM_BASE + 0x500)
+#define CM_IDLEST_CKGEN_V	IO_ADDRESS(OMAP242X_PRCM_BASE + 0x520)
+#define CM_CLKSEL1_PLL_V	IO_ADDRESS(OMAP242X_PRCM_BASE + 0x540)
+
+#define SDRC_DLLA_CTRL_V	IO_ADDRESS(OMAP242X_SDRC_BASE + 0x060)
+#define SDRC_RFR_CTRL_V		IO_ADDRESS(OMAP242X_SDRC_BASE + 0x0a4)
+#elif defined(CONFIG_ARCH_OMAP2430)
+#define TIMER_32KSYNCT_CR_V	IO_ADDRESS(OMAP243X_32KSYNCT_BASE + 0x010)
+
+#define CM_CLKSEL2_PLL_V	IO_ADDRESS(OMAP243X_PRCM_BASE + 0x544)
+#define PRCM_VOLTCTRL_V		IO_ADDRESS(OMAP243X_PRCM_BASE + 0x050)
+#define PRCM_CLKCFG_CTRL_V	IO_ADDRESS(OMAP243X_PRCM_BASE + 0x080)
+#define CM_CLKEN_PLL_V		IO_ADDRESS(OMAP243X_PRCM_BASE + 0x500)
+#define CM_IDLEST_CKGEN_V	IO_ADDRESS(OMAP243X_PRCM_BASE + 0x520)
+#define CM_CLKSEL1_PLL_V	IO_ADDRESS(OMAP243X_PRCM_BASE + 0x540)
+
+#define SDRC_DLLA_CTRL_V	IO_ADDRESS(OMAP243X_SDRC_BASE + 0x060)
+#define SDRC_RFR_CTRL_V		IO_ADDRESS(OMAP243X_SDRC_BASE + 0x0a4)
+#endif
 
 	.text
 
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index cd1e508..56c1632 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -87,10 +87,18 @@ #define OMAP730_GPIO_INT_STATUS		0x14
 /*
  * omap24xx specific GPIO registers
  */
+#if defined(CONFIG_ARCH_OMAP2420)
 #define OMAP24XX_GPIO1_BASE		(void __iomem *)0x48018000
 #define OMAP24XX_GPIO2_BASE		(void __iomem *)0x4801a000
 #define OMAP24XX_GPIO3_BASE		(void __iomem *)0x4801c000
 #define OMAP24XX_GPIO4_BASE		(void __iomem *)0x4801e000
+#elif defined(CONFIG_ARCH_OMAP2430)
+#define OMAP24XX_GPIO1_BASE		(void __iomem *)0x4900C000
+#define OMAP24XX_GPIO2_BASE		(void __iomem *)0x4900E000
+#define OMAP24XX_GPIO3_BASE		(void __iomem *)0x49010000
+#define OMAP24XX_GPIO4_BASE		(void __iomem *)0x49012000
+#define OMAP24XX_GPIO5_BASE		(void __iomem *)0x490B6000
+#endif
 #define OMAP24XX_GPIO_REVISION		0x0000
 #define OMAP24XX_GPIO_SYSCONFIG		0x0010
 #define OMAP24XX_GPIO_SYSSTATUS		0x0014
@@ -159,14 +167,23 @@ static struct gpio_bank gpio_bank_730[7]
 };
 #endif
 
-#ifdef CONFIG_ARCH_OMAP24XX
-static struct gpio_bank gpio_bank_24xx[4] = {
+#ifdef CONFIG_ARCH_OMAP2420
+static struct gpio_bank gpio_bank_2420[4] = {
 	{ OMAP24XX_GPIO1_BASE, INT_24XX_GPIO_BANK1, IH_GPIO_BASE,	METHOD_GPIO_24XX },
 	{ OMAP24XX_GPIO2_BASE, INT_24XX_GPIO_BANK2, IH_GPIO_BASE + 32,	METHOD_GPIO_24XX },
 	{ OMAP24XX_GPIO3_BASE, INT_24XX_GPIO_BANK3, IH_GPIO_BASE + 64,	METHOD_GPIO_24XX },
 	{ OMAP24XX_GPIO4_BASE, INT_24XX_GPIO_BANK4, IH_GPIO_BASE + 96,	METHOD_GPIO_24XX },
 };
 #endif
+#ifdef CONFIG_ARCH_OMAP2430
+static struct gpio_bank gpio_bank_2430[5] = {
+	{ OMAP24XX_GPIO1_BASE, INT_24XX_GPIO_BANK1, IH_GPIO_BASE,	METHOD_GPIO_24XX },
+	{ OMAP24XX_GPIO2_BASE, INT_24XX_GPIO_BANK2, IH_GPIO_BASE + 32,	METHOD_GPIO_24XX },
+	{ OMAP24XX_GPIO3_BASE, INT_24XX_GPIO_BANK3, IH_GPIO_BASE + 64,	METHOD_GPIO_24XX },
+	{ OMAP24XX_GPIO4_BASE, INT_24XX_GPIO_BANK4, IH_GPIO_BASE + 96,	METHOD_GPIO_24XX },
+	{ OMAP24XX_GPIO5_BASE, INT_24XX_GPIO_BANK5, IH_GPIO_BASE + 128,	METHOD_GPIO_24XX },
+};
+#endif
 
 static struct gpio_bank *gpio_bank;
 static int gpio_bank_count;
@@ -999,17 +1016,29 @@ #ifdef CONFIG_ARCH_OMAP730
 		gpio_bank = gpio_bank_730;
 	}
 #endif
-#ifdef CONFIG_ARCH_OMAP24XX
+#ifdef CONFIG_ARCH_OMAP2420
 	if (cpu_is_omap24xx()) {
 		int rev;
 
 		gpio_bank_count = 4;
-		gpio_bank = gpio_bank_24xx;
+		gpio_bank = gpio_bank_2420;
 		rev = omap_readl(gpio_bank[0].base + OMAP24XX_GPIO_REVISION);
 		printk(KERN_INFO "OMAP24xx GPIO hardware version %d.%d\n",
 			(rev >> 4) & 0x0f, rev & 0x0f);
 	}
 #endif
+#ifdef CONFIG_ARCH_OMAP2430
+	if (cpu_is_omap2430()) {
+		int rev;
+
+		gpio_bank_count = 5;
+		gpio_bank = gpio_bank_2430;
+		rev = omap_readl(gpio_bank[0].base + OMAP24XX_GPIO_REVISION);
+		printk(KERN_INFO "OMAP24xx GPIO hardware version %d.%d\n",
+			(rev >> 4) & 0x0f, rev & 0x0f);
+	}
+#endif
+
 	for (i = 0; i < gpio_bank_count; i++) {
 		int j, gpio_count = 16;
 
diff --git a/include/asm-arm/arch-omap/board-sdp2430.h b/include/asm-arm/arch-omap/board-sdp2430.h
new file mode 100644
index 0000000..b213aef
--- /dev/null
+++ b/include/asm-arm/arch-omap/board-sdp2430.h
@@ -0,0 +1,37 @@
+/*
+ * linux/include/asm-arm/arch-omap/board-sdp2430.h
+ *
+ * Hardware definitions for TI OMAP2430 SDP2430 board.
+ *
+ * Initial creation by Dirk Behme <dirk.behme@de.bosch.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 SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * 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.,
+ * 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __ASM_ARCH_OMAP_SDP2430_H
+#define __ASM_ARCH_OMAP_SDP2430_H
+
+/* Placeholder for H4 specific defines */
+/* GPMC CS1 */
+#define OMAP24XX_ETHR_START             0x08000300
+#define OMAP24XX_ETHR_GPIO_IRQ		149
+#endif /*  __ASM_ARCH_OMAP_H4_H */
+
diff --git a/include/asm-arm/arch-omap/hardware.h b/include/asm-arm/arch-omap/hardware.h
index 4d226b2..288c07f 100644
--- a/include/asm-arm/arch-omap/hardware.h
+++ b/include/asm-arm/arch-omap/hardware.h
@@ -314,6 +314,10 @@ #ifdef CONFIG_MACH_OMAP_APOLLON
 #include "board-apollon.h"
 #endif
 
+#ifdef CONFIG_MACH_OMAP_SDP2430
+#include "board-sdp2430.h"
+#endif
+
 #ifdef CONFIG_MACH_OMAP_OSK
 #include "board-osk.h"
 #endif
diff --git a/include/asm-arm/arch-omap/io.h b/include/asm-arm/arch-omap/io.h
index b726acf..ac87dd7 100644
--- a/include/asm-arm/arch-omap/io.h
+++ b/include/asm-arm/arch-omap/io.h
@@ -73,6 +73,9 @@ #define L3_24XX_SIZE	SZ_1M		/* 44kB of 1
 #define L4_24XX_PHYS	L4_24XX_BASE	/* 0x48000000 */
 #define L4_24XX_VIRT	0xd8000000
 #define L4_24XX_SIZE	SZ_1M		/* 1MB of 128MB used, want 1MB sect */
+#define L4_WK_243X_PHYS L4_WK_243X_BASE /* 0x49000000 */
+#define L4_WK_243X_VIRT 0xd9000000
+#define L4_WK_243X_SIZE SZ_1M
 #define IO_OFFSET	0x90000000
 #define IO_ADDRESS(pa)	((pa) + IO_OFFSET)	/* Works for L3 and L4 */
 #define io_p2v(pa)	((pa) + IO_OFFSET)	/* Works for L3 and L4 */
diff --git a/include/asm-arm/arch-omap/irqs.h b/include/asm-arm/arch-omap/irqs.h
index 42098d9..f99e93c 100644
--- a/include/asm-arm/arch-omap/irqs.h
+++ b/include/asm-arm/arch-omap/irqs.h
@@ -242,6 +242,7 @@ #define INT_24XX_GPIO_BANK1	29
 #define INT_24XX_GPIO_BANK2	30
 #define INT_24XX_GPIO_BANK3	31
 #define INT_24XX_GPIO_BANK4	32
+#define INT_24XX_GPIO_BANK5	33
 #define INT_24XX_MCBSP1_IRQ_TX	59
 #define INT_24XX_MCBSP1_IRQ_RX	60
 #define INT_24XX_MCBSP2_IRQ_TX	62
diff --git a/include/asm-arm/arch-omap/omap24xx.h b/include/asm-arm/arch-omap/omap24xx.h
index 6e59805..512c9bb 100644
--- a/include/asm-arm/arch-omap/omap24xx.h
+++ b/include/asm-arm/arch-omap/omap24xx.h
@@ -8,6 +8,7 @@ #define __ASM_ARCH_OMAP24XX_H
  */
 
 #define L4_24XX_BASE		0x48000000
+#define L4_WK_243X_BASE		0x49000000
 #define L3_24XX_BASE		0x68000000
 
 /* interrupt controller */
@@ -16,9 +17,12 @@ #define VA_IC_BASE		IO_ADDRESS(OMAP24XX_
 #define OMAP24XX_IVA_INTC_BASE	0x40000000
 #define IRQ_SIR_IRQ		0x0040
 
-#define OMAP24XX_32KSYNCT_BASE	(L4_24XX_BASE + 0x4000)
-#define OMAP24XX_PRCM_BASE	(L4_24XX_BASE + 0x8000)
-#define OMAP24XX_SDRC_BASE	(L3_24XX_BASE + 0x9000)
+#define OMAP242X_32KSYNCT_BASE	(L4_24XX_BASE + 0x4000)
+#define OMAP243X_32KSYNCT_BASE	(L4_WK_243X_BASE + 0x20000)
+#define OMAP242X_PRCM_BASE	(L4_24XX_BASE + 0x8000)
+#define OMAP243X_PRCM_BASE	(L4_WK_243X_BASE + 0x6000)
+#define OMAP242X_SDRC_BASE	(L3_24XX_BASE + 0x9000)
+#define OMAP243X_SDRC_BASE	0x6D000000
 
 #endif /* __ASM_ARCH_OMAP24XX_H */
 

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH] ARM: OMAP: Add minimal OMAP2430 support
@ 2006-05-18 11:44 Komal Shah
  2006-06-05 16:54 ` Tony Lindgren
  0 siblings, 1 reply; 18+ messages in thread
From: Komal Shah @ 2006-05-18 11:44 UTC (permalink / raw)
  To: linux-omap-open-source

[-- Attachment #1: Type: text/plain, Size: 464 bytes --]

Tony/Richard,

* NFS is still not working. NETDEV Watchdog timeouts.
* Intel Starta flash gets detected - JFFS2 is not yet tested.
* platform_add_devices() is not working - Let me know, where I
am making mistake :)

Please review.
---

This patch adds minimal OMAP2430 support.
Based on 2.6.10 Linux kernel available on linux.omap.com from TI.

Signed-off-by: Komal Shah <komal_shah802003@yahoo.com>

-- 
http://www.fastmail.fm - A fast, anti-spam email service.


[-- Attachment #2: min182430.patch --]
[-- Type: application/octet-stream, Size: 40052 bytes --]

diff --git a/arch/arm/configs/omap_sdp2430_2430_defconfig b/arch/arm/configs/omap_sdp2430_2430_defconfig
new file mode 100644
index 0000000..05faf3d
--- /dev/null
+++ b/arch/arm/configs/omap_sdp2430_2430_defconfig
@@ -0,0 +1,941 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.17-rc4-omap1
+# Thu May 18 14:44:40 2006
+#
+CONFIG_ARM=y
+CONFIG_MMU=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_VECTORS_BASE=0xffff0000
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE 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_RELAY 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=y
+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_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 is not set
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_KMOD=y
+
+#
+# Block layer
+#
+# CONFIG_BLK_DEV_IO_TRACE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+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_EP93XX 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_IXP23XX is not set
+# 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=y
+# 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
+
+#
+# TI OMAP Implementations
+#
+# CONFIG_ARCH_OMAP1 is not set
+CONFIG_ARCH_OMAP2=y
+
+#
+# OMAP Feature Selections
+#
+# CONFIG_OMAP_RESET_CLOCKS is not set
+CONFIG_OMAP_BOOT_TAG=y
+# CONFIG_OMAP_BOOT_REASON is not set
+# CONFIG_OMAP_COMPONENT_VERSION is not set
+# CONFIG_OMAP_GPIO_SWITCH is not set
+CONFIG_OMAP_MUX=y
+CONFIG_OMAP_MUX_DEBUG=y
+CONFIG_OMAP_MUX_WARNINGS=y
+# CONFIG_OMAP_STI is not set
+# CONFIG_OMAP_MCBSP is not set
+CONFIG_OMAP_MPU_TIMER=y
+# CONFIG_OMAP_32K_TIMER is not set
+CONFIG_OMAP_LL_DEBUG_UART1=y
+# CONFIG_OMAP_LL_DEBUG_UART2 is not set
+# CONFIG_OMAP_LL_DEBUG_UART3 is not set
+CONFIG_OMAP_SERIAL_WAKE=y
+CONFIG_MACH_OMAP_GENERIC=y
+
+#
+# OMAP Core Type
+#
+CONFIG_ARCH_OMAP24XX=y
+# CONFIG_ARCH_OMAP2420 is not set
+CONFIG_ARCH_OMAP2430=y
+
+#
+# OMAP Board Type
+#
+# CONFIG_MACH_OMAP_H4 is not set
+# CONFIG_MACH_OMAP_APOLLON is not set
+CONFIG_MACH_OMAP_SDP2430=y
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_V6=y
+# CONFIG_CPU_32v6K is not set
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=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
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+
+#
+# Bus support
+#
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_PREEMPT is not set
+# CONFIG_NO_IDLE_HZ is not set
+CONFIG_HZ=100
+# 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=4
+# CONFIG_LEDS is not set
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="root=/dev/ram0 rw console=ttyS0,115200n8 initrd=0x80600000,8M ramdisk_size=8192"
+# 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
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_MISC=y
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
+# CONFIG_PM is not set
+# CONFIG_APM is not set
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_NETDEBUG is not set
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+CONFIG_NET_KEY=y
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_BIC=y
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETFILTER is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+
+#
+# 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 is not set
+# CONFIG_BT is not set
+# CONFIG_IEEE80211 is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# 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=y
+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 is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# 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_OMAP_NOR=y
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM 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
+# CONFIG_MTD_ONENAND_SYNC_READ is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# I2O device support
+#
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# PHY device support
+#
+# CONFIG_PHYLIB is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+CONFIG_SMC91X=y
+# CONFIG_DM9000 is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
+#
+
+#
+# Token Ring devices
+#
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP 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=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_OMAP_RNG is not set
+# CONFIG_NVRAM is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# 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
+#
+
+#
+# LED devices
+#
+# CONFIG_NEW_LEDS is not set
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+# CONFIG_FB is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# Real Time Clock
+#
+CONFIG_RTC_LIB=y
+# CONFIG_RTC_CLASS is not set
+
+#
+# Synchronous Serial Interfaces (SSI)
+#
+# CONFIG_OMAP_TSC2101 is not set
+
+#
+# CBUS support
+#
+# CONFIG_CBUS 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=y
+CONFIG_QUOTA=y
+# CONFIG_QFMT_V1 is not set
+CONFIG_QFMT_V2=y
+CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# 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 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=y
+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_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+# CONFIG_9P_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# 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=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_DEBUG_VM is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_UNWIND_INFO is not set
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_WAITQ is not set
+# CONFIG_DEBUG_ERRORS is not set
+# 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 is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=y
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index ab144c3..d9d73be 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -9,6 +9,10 @@ config ARCH_OMAP2420
 	bool "OMAP2420 support"
 	depends on ARCH_OMAP24XX
 
+config ARCH_OMAP2430
+	bool "OMAP2430 support"
+	depends on ARCH_OMAP24XX
+
 comment "OMAP Board Type"
 	depends on ARCH_OMAP2
 
@@ -24,3 +28,9 @@ config MACH_OMAP_H4
 config MACH_OMAP_APOLLON
 	bool "OMAP 2420 Apollon board"
 	depends on ARCH_OMAP2 && ARCH_OMAP24XX
+
+config MACH_OMAP_SDP2430
+	bool "OMAP 2430 SDP2430 board"
+	depends on ARCH_OMAP2 && ARCH_OMAP24XX
+
+
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 111eaa6..dc1ded6 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -14,4 +14,5 @@ # Specific board support
 obj-$(CONFIG_MACH_OMAP_GENERIC)		+= board-generic.o
 obj-$(CONFIG_MACH_OMAP_H4)		+= board-h4.o
 obj-$(CONFIG_MACH_OMAP_APOLLON)		+= board-apollon.o
+obj-$(CONFIG_MACH_OMAP_SDP2430)		+= board-sdp2430.o
 
diff --git a/arch/arm/mach-omap2/board-sdp2430.c b/arch/arm/mach-omap2/board-sdp2430.c
new file mode 100644
index 0000000..85ab028
--- /dev/null
+++ b/arch/arm/mach-omap2/board-sdp2430.c
@@ -0,0 +1,190 @@
+/*
+ * linux/arch/arm/mach-omap2/board-sdp2430.c
+ *
+ * Copyright (C) 2006 Komal Shah <komal_shah802003@yahoo.com>
+ * 
+ * Modified from mach-omap2/board-generic.c
+ *
+ * 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.
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+#include <linux/delay.h>
+
+#include <asm/hardware.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+#include <asm/mach/flash.h>
+
+#include <asm/arch/gpio.h>
+#include <asm/arch/mux.h>
+#include <asm/arch/usb.h>
+#include <asm/arch/board.h>
+#include <asm/arch/common.h>
+#include "prcm-regs.h"
+
+#include <asm/io.h>
+#include <asm/delay.h>
+
+
+static struct omap_uart_config sdp2430_uart_config __initdata = {
+	.enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)),
+};
+
+static struct omap_board_config_kernel sdp2430_config[] = {
+	{ OMAP_TAG_UART,	&sdp2430_uart_config },
+};
+
+static struct mtd_partition sdp2430_partitions[] = {
+	/* bootloader (U-Boot, etc) in first sector */
+	{
+	      .name		= "bootloader",
+	      .offset		= 0,
+	      .size		= SZ_256K,
+	      .mask_flags	= MTD_WRITEABLE, /* force read-only */
+	},
+	/* bootloader params in the next sector */
+	{
+	      .name		= "params",
+	      .offset		= MTDPART_OFS_APPEND,
+	      .size		= SZ_128K,
+	      .mask_flags	= 0,
+	},
+	/* kernel */
+	{
+	      .name		= "kernel",
+	      .offset		= MTDPART_OFS_APPEND,
+	      .size		= SZ_2M,
+	      .mask_flags	= 0
+	},
+	/* file system */
+	{
+	      .name		= "filesystem",
+	      .offset		= MTDPART_OFS_APPEND,
+	      .size		= MTDPART_SIZ_FULL,
+	      .mask_flags	= 0
+	}
+};
+
+static struct flash_platform_data sdp2430_flash_data = {
+	.map_name	= "cfi_probe",
+	.width		= 2,
+	.parts		= sdp2430_partitions,
+	.nr_parts	= ARRAY_SIZE(sdp2430_partitions),
+};
+
+static struct resource sdp2430_flash_resource = {
+	.start		= SDP2430_CS0_BASE,
+	.end		= SDP2430_CS0_BASE + SZ_64M - 1,
+	.flags		= IORESOURCE_MEM,
+};
+
+static struct platform_device sdp2430_flash_device = {
+	.name		= "omapflash",
+	.id		= 0,
+	.dev		= {
+		.platform_data	= &sdp2430_flash_data,
+	},
+	.num_resources	= 1,
+	.resource	= &sdp2430_flash_resource,
+};
+
+static struct resource sdp2430_smc91x_resources[] = {
+	[0] = {
+		.start  = OMAP24XX_ETHR_START,          /* Physical */
+		.end    = OMAP24XX_ETHR_START + 0xf,
+		.flags  = IORESOURCE_MEM,
+	},
+	[1] = {
+		.start  = OMAP_GPIO_IRQ(OMAP24XX_ETHR_GPIO_IRQ),
+		.end    = OMAP_GPIO_IRQ(OMAP24XX_ETHR_GPIO_IRQ),
+		.flags  = IORESOURCE_IRQ,
+	},
+};
+
+static struct platform_device sdp2430_smc91x_device = {
+	.name		= "smc91x",
+	.id		= -1,
+	.num_resources	= ARRAY_SIZE(sdp2430_smc91x_resources),
+	.resource	= sdp2430_smc91x_resources,
+};
+
+static struct platform_device *sdp2430_devices[] __initdata = {
+	&sdp2430_smc91x_device,
+	&sdp2430_flash_device,
+};
+
+static inline void __init sdp2430_init_smc91x(void)
+{
+	/* Make sure CS5 timings are correct */
+	GPMC_CONFIG1_5 = 0x00011200;
+	GPMC_CONFIG2_5 = 0x001f1f02;
+	GPMC_CONFIG3_5 = 0x00080804;
+	GPMC_CONFIG4_5 = 0x1c091c09;
+	GPMC_CONFIG5_5 = 0x041f1f1f;
+	GPMC_CONFIG6_5 = 0x000004c4;
+	GPMC_CONFIG7_5 = 0x00000f40 | (0x08000000 >> 24);
+	udelay(100);
+
+	/* FIXME: Add omap_cfg_reg(GPIO_149) here */
+	if (omap_request_gpio(OMAP24XX_ETHR_GPIO_IRQ) < 0) {
+		printk(KERN_ERR "Failed to request GPIO%d for smc91x IRQ\n",
+			OMAP24XX_ETHR_GPIO_IRQ);
+		return;
+	}
+	omap_set_gpio_direction(OMAP24XX_ETHR_GPIO_IRQ, 1);
+}
+
+static void __init omap_sdp2430_init_irq(void)
+{
+	omap2_init_common_hw();
+	omap_init_irq();
+	omap_gpio_init();
+	sdp2430_init_smc91x();
+}
+
+static void __init omap_sdp2430_init(void)
+{
+	/*
+	 * Make sure the serial ports are muxed on at this point.
+	 * You have to mux them off in device drivers later on
+	 * if not needed.
+	 */
+	platform_add_devices(sdp2430_devices, ARRAY_SIZE(sdp2430_devices));
+	omap_board_config = sdp2430_config;
+	omap_board_config_size = ARRAY_SIZE(sdp2430_config);
+	omap_serial_init();
+}
+/* FIXME: Remove this later once platform_add_devices() works */
+static int __init sdp_dev_reg(void)
+{
+	printk(KERN_INFO "Registering devices\n");
+	platform_device_register(&sdp2430_smc91x_device);
+	platform_device_register(&sdp2430_flash_device);
+
+	return 0;
+}
+arch_initcall(sdp_dev_reg);
+
+static void __init omap_sdp2430_map_io(void)
+{
+	omap2_map_common_io();
+}
+
+MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board")
+	/* Maintainer: Komal Shah <komal_shah802003@yahoo.com> */
+	.phys_io	= 0x48000000,
+	.io_pg_offst	= ((0xd8000000) >> 18) & 0xfffc,
+	.boot_params	= 0x80000100,
+	.map_io		= omap_sdp2430_map_io,
+	.init_irq	= omap_sdp2430_init_irq,
+	.init_machine	= omap_sdp2430_init,
+	.timer		= &omap_timer,
+MACHINE_END
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 7618730..8f65d5d 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -18,7 +18,11 @@ #include <linux/init.h>
 
 #include <asm/io.h>
 
+#if defined(CONFIG_ARCH_OMAP2420)
 #define OMAP24XX_TAP_BASE	io_p2v(0x48014000)
+#elif defined(CONFIG_ARCH_OMAP2430)
+#define OMAP24XX_TAP_BASE	io_p2v(0x4900A000)
+#endif
 
 #define OMAP_TAP_IDCODE		0x0204
 #define OMAP_TAP_PROD_ID	0x0208
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 7d57116..0510760 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -44,7 +44,15 @@ static struct map_desc omap2_io_desc[] _
 		.pfn		= __phys_to_pfn(L4_24XX_PHYS),
 		.length		= L4_24XX_SIZE,
 		.type		= MT_DEVICE
-	}
+	},
+#ifdef CONFIG_ARCH_OMAP2430
+	{
+		.virtual	= L4_WK_243X_VIRT,
+		.pfn		= __phys_to_pfn(L4_WK_243X_PHYS),
+		.length		= L4_WK_243X_SIZE,
+		.type		= MT_DEVICE
+	},
+#endif
 };
 
 void __init omap2_map_common_io(void)
diff --git a/arch/arm/mach-omap2/prcm-regs.h b/arch/arm/mach-omap2/prcm-regs.h
index 22ac7be..d9c4404 100644
--- a/arch/arm/mach-omap2/prcm-regs.h
+++ b/arch/arm/mach-omap2/prcm-regs.h
@@ -29,7 +29,11 @@ #define PRCM_FULL_SPEED 2
 
 #ifndef __ASSEMBLER__
 
-#define PRCM_REG32(offset)	__REG32(OMAP24XX_PRCM_BASE + (offset))
+#if defined(CONFIG_ARCH_OMAP2420)
+#define PRCM_REG32(offset)	__REG32(OMAP242X_PRCM_BASE + (offset))
+#elif defined(CONFIG_ARCH_OMAP2430)
+#define PRCM_REG32(offset)	__REG32(OMAP243X_PRCM_BASE + (offset))
+#endif
 
 #define PRCM_REVISION		PRCM_REG32(0x000)
 #define PRCM_SYSCONFIG		PRCM_REG32(0x010)
@@ -177,7 +181,11 @@ #define OMAP24XX_L4_IO_BASE	0x48000000
 #define DISP_BASE		(OMAP24XX_L4_IO_BASE + 0x50000)
 #define DISP_REG32(offset)	__REG32(DISP_BASE + (offset))
 
+#if defined(CONFIG_ARCH_OMAP2420)
 #define OMAP24XX_GPMC_BASE	(L3_24XX_BASE + 0xa000)
+#elif defined(CONFIG_ARCH_OMAP2430)
+#define OMAP24XX_GPMC_BASE	(0x6E000000)
+#endif
 #define GPMC_REG32(offset)	__REG32(OMAP24XX_GPMC_BASE + (offset))
 
 /* FIXME: Move these to timer code */
@@ -263,12 +271,21 @@ #define GPTIMER1_TCAR2		GPT1_REG32(0x044
 #define GPTIMER3_TISR		__REG32(OMAP24XX_L4_IO_BASE + 0x78018)
 
 /* SDRC */
-#define SDRC_DLLA_CTRL		__REG32(OMAP24XX_SDRC_BASE + 0x060)
-#define SDRC_DLLA_STATUS	__REG32(OMAP24XX_SDRC_BASE + 0x064)
-#define SDRC_DLLB_CTRL		__REG32(OMAP24XX_SDRC_BASE + 0x068)
-#define SDRC_DLLB_STATUS	__REG32(OMAP24XX_SDRC_BASE + 0x06C)
-#define SDRC_POWER		__REG32(OMAP24XX_SDRC_BASE + 0x070)
-#define SDRC_MR_0		__REG32(OMAP24XX_SDRC_BASE + 0x084)
+#if defined(CONFIG_ARCH_OMAP2420)
+#define SDRC_DLLA_CTRL		__REG32(OMAP242X_SDRC_BASE + 0x060)
+#define SDRC_DLLA_STATUS	__REG32(OMAP242X_SDRC_BASE + 0x064)
+#define SDRC_DLLB_CTRL		__REG32(OMAP242X_SDRC_BASE + 0x068)
+#define SDRC_DLLB_STATUS	__REG32(OMAP242X_SDRC_BASE + 0x06C)
+#define SDRC_POWER		__REG32(OMAP242X_SDRC_BASE + 0x070)
+#define SDRC_MR_0		__REG32(OMAP242X_SDRC_BASE + 0x084)
+#elif defined(CONFIG_ARCH_OMAP2430)
+#define SDRC_DLLA_CTRL		__REG32(OMAP243X_SDRC_BASE + 0x060)
+#define SDRC_DLLA_STATUS	__REG32(OMAP243X_SDRC_BASE + 0x064)
+#define SDRC_DLLB_CTRL		__REG32(OMAP243X_SDRC_BASE + 0x068)
+#define SDRC_DLLB_STATUS	__REG32(OMAP243X_SDRC_BASE + 0x06C)
+#define SDRC_POWER		__REG32(OMAP243X_SDRC_BASE + 0x070)
+#define SDRC_MR_0		__REG32(OMAP243X_SDRC_BASE + 0x084)
+#endif
 
 /* GPIO 1 */
 #define GPIO1_BASE		GPIOX_BASE(1)
@@ -433,6 +450,15 @@ #define GPMC_CONFIG5_3		GPMC_REG32(0x100
 #define GPMC_CONFIG6_3		GPMC_REG32(0x104)
 #define GPMC_CONFIG7_3		GPMC_REG32(0x108)
 
+/* GPMC CS5 */
+#define GPMC_CONFIG1_5		GPMC_REG32(0x150)
+#define GPMC_CONFIG2_5		GPMC_REG32(0x154)
+#define GPMC_CONFIG3_5		GPMC_REG32(0x158)
+#define GPMC_CONFIG4_5		GPMC_REG32(0x15C)
+#define GPMC_CONFIG5_5		GPMC_REG32(0x160)
+#define GPMC_CONFIG6_5		GPMC_REG32(0x164)
+#define GPMC_CONFIG7_5		GPMC_REG32(0x168)
+
 /* DSS */
 #define DSS_CONTROL		DISP_REG32(0x040)
 #define DISPC_CONTROL		DISP_REG32(0x440)
diff --git a/arch/arm/mach-omap2/sram-fn.S b/arch/arm/mach-omap2/sram-fn.S
index d261e4f..5c212b1 100644
--- a/arch/arm/mach-omap2/sram-fn.S
+++ b/arch/arm/mach-omap2/sram-fn.S
@@ -30,17 +30,31 @@ #include <asm/hardware.h>
 
 #include "prcm-regs.h"
 
-#define TIMER_32KSYNCT_CR_V	IO_ADDRESS(OMAP24XX_32KSYNCT_BASE + 0x010)
-
-#define CM_CLKSEL2_PLL_V	IO_ADDRESS(OMAP24XX_PRCM_BASE + 0x544)
-#define PRCM_VOLTCTRL_V		IO_ADDRESS(OMAP24XX_PRCM_BASE + 0x050)
-#define PRCM_CLKCFG_CTRL_V	IO_ADDRESS(OMAP24XX_PRCM_BASE + 0x080)
-#define CM_CLKEN_PLL_V		IO_ADDRESS(OMAP24XX_PRCM_BASE + 0x500)
-#define CM_IDLEST_CKGEN_V	IO_ADDRESS(OMAP24XX_PRCM_BASE + 0x520)
-#define CM_CLKSEL1_PLL_V	IO_ADDRESS(OMAP24XX_PRCM_BASE + 0x540)
-
-#define SDRC_DLLA_CTRL_V	IO_ADDRESS(OMAP24XX_SDRC_BASE + 0x060)
-#define SDRC_RFR_CTRL_V		IO_ADDRESS(OMAP24XX_SDRC_BASE + 0x0a4)
+#if defined(CONFIG_ARCH_OMAP2420)
+#define TIMER_32KSYNCT_CR_V	IO_ADDRESS(OMAP242X_32KSYNCT_BASE + 0x010)
+
+#define CM_CLKSEL2_PLL_V	IO_ADDRESS(OMAP242X_PRCM_BASE + 0x544)
+#define PRCM_VOLTCTRL_V		IO_ADDRESS(OMAP242X_PRCM_BASE + 0x050)
+#define PRCM_CLKCFG_CTRL_V	IO_ADDRESS(OMAP242X_PRCM_BASE + 0x080)
+#define CM_CLKEN_PLL_V		IO_ADDRESS(OMAP242X_PRCM_BASE + 0x500)
+#define CM_IDLEST_CKGEN_V	IO_ADDRESS(OMAP242X_PRCM_BASE + 0x520)
+#define CM_CLKSEL1_PLL_V	IO_ADDRESS(OMAP242X_PRCM_BASE + 0x540)
+
+#define SDRC_DLLA_CTRL_V	IO_ADDRESS(OMAP242X_SDRC_BASE + 0x060)
+#define SDRC_RFR_CTRL_V		IO_ADDRESS(OMAP242X_SDRC_BASE + 0x0a4)
+#elif defined(CONFIG_ARCH_OMAP2430)
+#define TIMER_32KSYNCT_CR_V	IO_ADDRESS(OMAP243X_32KSYNCT_BASE + 0x010)
+
+#define CM_CLKSEL2_PLL_V	IO_ADDRESS(OMAP243X_PRCM_BASE + 0x544)
+#define PRCM_VOLTCTRL_V		IO_ADDRESS(OMAP243X_PRCM_BASE + 0x050)
+#define PRCM_CLKCFG_CTRL_V	IO_ADDRESS(OMAP243X_PRCM_BASE + 0x080)
+#define CM_CLKEN_PLL_V		IO_ADDRESS(OMAP243X_PRCM_BASE + 0x500)
+#define CM_IDLEST_CKGEN_V	IO_ADDRESS(OMAP243X_PRCM_BASE + 0x520)
+#define CM_CLKSEL1_PLL_V	IO_ADDRESS(OMAP243X_PRCM_BASE + 0x540)
+
+#define SDRC_DLLA_CTRL_V	IO_ADDRESS(OMAP243X_SDRC_BASE + 0x060)
+#define SDRC_RFR_CTRL_V		IO_ADDRESS(OMAP243X_SDRC_BASE + 0x0a4)
+#endif
 
 	.text
 
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index cd1e508..ecad65c 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -87,10 +87,18 @@ #define OMAP730_GPIO_INT_STATUS		0x14
 /*
  * omap24xx specific GPIO registers
  */
+#if defined(CONFIG_ARCH_OMAP2420)
 #define OMAP24XX_GPIO1_BASE		(void __iomem *)0x48018000
 #define OMAP24XX_GPIO2_BASE		(void __iomem *)0x4801a000
 #define OMAP24XX_GPIO3_BASE		(void __iomem *)0x4801c000
 #define OMAP24XX_GPIO4_BASE		(void __iomem *)0x4801e000
+#elif defined(CONFIG_ARCH_OMAP2430)
+#define OMAP24XX_GPIO1_BASE		(void __iomem *)0x4900C000
+#define OMAP24XX_GPIO2_BASE		(void __iomem *)0x4900E000
+#define OMAP24XX_GPIO3_BASE		(void __iomem *)0x49010000
+#define OMAP24XX_GPIO4_BASE		(void __iomem *)0x49012000
+#define OMAP24XX_GPIO5_BASE		(void __iomem *)0x480B6000
+#endif
 #define OMAP24XX_GPIO_REVISION		0x0000
 #define OMAP24XX_GPIO_SYSCONFIG		0x0010
 #define OMAP24XX_GPIO_SYSSTATUS		0x0014
@@ -159,14 +167,23 @@ static struct gpio_bank gpio_bank_730[7]
 };
 #endif
 
-#ifdef CONFIG_ARCH_OMAP24XX
-static struct gpio_bank gpio_bank_24xx[4] = {
+#ifdef CONFIG_ARCH_OMAP2420
+static struct gpio_bank gpio_bank_2420[4] = {
 	{ OMAP24XX_GPIO1_BASE, INT_24XX_GPIO_BANK1, IH_GPIO_BASE,	METHOD_GPIO_24XX },
 	{ OMAP24XX_GPIO2_BASE, INT_24XX_GPIO_BANK2, IH_GPIO_BASE + 32,	METHOD_GPIO_24XX },
 	{ OMAP24XX_GPIO3_BASE, INT_24XX_GPIO_BANK3, IH_GPIO_BASE + 64,	METHOD_GPIO_24XX },
 	{ OMAP24XX_GPIO4_BASE, INT_24XX_GPIO_BANK4, IH_GPIO_BASE + 96,	METHOD_GPIO_24XX },
 };
 #endif
+#ifdef CONFIG_ARCH_OMAP2430
+static struct gpio_bank gpio_bank_2430[5] = {
+	{ OMAP24XX_GPIO1_BASE, INT_24XX_GPIO_BANK1, IH_GPIO_BASE,	METHOD_GPIO_24XX },
+	{ OMAP24XX_GPIO2_BASE, INT_24XX_GPIO_BANK2, IH_GPIO_BASE + 32,	METHOD_GPIO_24XX },
+	{ OMAP24XX_GPIO3_BASE, INT_24XX_GPIO_BANK3, IH_GPIO_BASE + 64,	METHOD_GPIO_24XX },
+	{ OMAP24XX_GPIO4_BASE, INT_24XX_GPIO_BANK4, IH_GPIO_BASE + 96,	METHOD_GPIO_24XX },
+	{ OMAP24XX_GPIO5_BASE, INT_24XX_GPIO_BANK5, IH_GPIO_BASE + 128,	METHOD_GPIO_24XX },
+};
+#endif
 
 static struct gpio_bank *gpio_bank;
 static int gpio_bank_count;
@@ -946,6 +963,8 @@ static struct irqchip mpuio_irq_chip = {
 static int initialized;
 static struct clk * gpio_ick;
 static struct clk * gpio_fck;
+static struct clk * gpio5_ick;
+static struct clk * gpio5_fck;
 
 static int __init _omap_gpio_init(void)
 {
@@ -973,6 +992,19 @@ static int __init _omap_gpio_init(void)
 		else
 			clk_enable(gpio_fck);
 	}
+	
+	if (cpu_is_omap2430()) {
+		gpio5_ick = clk_get(NULL, "gpio5_ick");
+		if (IS_ERR(gpio5_ick))
+			printk("Could not get gpio5_ick\n");
+		else
+			clk_enable(gpio5_ick);
+		gpio5_fck = clk_get(NULL, "gpio5_fck");
+		if (IS_ERR(gpio5_fck))
+			printk("Could not get gpio5_fck\n");
+		else
+			clk_enable(gpio5_fck);
+	}
 
 #ifdef CONFIG_ARCH_OMAP15XX
 	if (cpu_is_omap15xx()) {
@@ -999,17 +1031,29 @@ #ifdef CONFIG_ARCH_OMAP730
 		gpio_bank = gpio_bank_730;
 	}
 #endif
-#ifdef CONFIG_ARCH_OMAP24XX
+#ifdef CONFIG_ARCH_OMAP2420
 	if (cpu_is_omap24xx()) {
 		int rev;
 
 		gpio_bank_count = 4;
-		gpio_bank = gpio_bank_24xx;
+		gpio_bank = gpio_bank_2420;
+		rev = omap_readl(gpio_bank[0].base + OMAP24XX_GPIO_REVISION);
+		printk(KERN_INFO "OMAP24xx GPIO hardware version %d.%d\n",
+			(rev >> 4) & 0x0f, rev & 0x0f);
+	}
+#endif
+#ifdef CONFIG_ARCH_OMAP2430
+	if (cpu_is_omap2430()) {
+		int rev;
+
+		gpio_bank_count = 5;
+		gpio_bank = gpio_bank_2430;
 		rev = omap_readl(gpio_bank[0].base + OMAP24XX_GPIO_REVISION);
 		printk(KERN_INFO "OMAP24xx GPIO hardware version %d.%d\n",
 			(rev >> 4) & 0x0f, rev & 0x0f);
 	}
 #endif
+
 	for (i = 0; i < gpio_bank_count; i++) {
 		int j, gpio_count = 16;
 
diff --git a/include/asm-arm/arch-omap/board-sdp2430.h b/include/asm-arm/arch-omap/board-sdp2430.h
new file mode 100644
index 0000000..2a9676e
--- /dev/null
+++ b/include/asm-arm/arch-omap/board-sdp2430.h
@@ -0,0 +1,38 @@
+/*
+ * linux/include/asm-arm/arch-omap/board-sdp2430.h
+ *
+ * Hardware definitions for TI OMAP2430 SDP2430 board.
+ *
+ * Initial creation by Dirk Behme <dirk.behme@de.bosch.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 SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * 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.,
+ * 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __ASM_ARCH_OMAP_SDP2430_H
+#define __ASM_ARCH_OMAP_SDP2430_H
+
+/* Placeholder for SDP2430 specific defines */
+/* GPMC CS5 */
+#define OMAP24XX_ETHR_START             0x08000300
+#define OMAP24XX_ETHR_GPIO_IRQ		149
+#define SDP2430_CS0_BASE		0x04000000
+#endif /*  __ASM_ARCH_OMAP_SDP2430_H */
+
diff --git a/include/asm-arm/arch-omap/hardware.h b/include/asm-arm/arch-omap/hardware.h
index 4d226b2..288c07f 100644
--- a/include/asm-arm/arch-omap/hardware.h
+++ b/include/asm-arm/arch-omap/hardware.h
@@ -314,6 +314,10 @@ #ifdef CONFIG_MACH_OMAP_APOLLON
 #include "board-apollon.h"
 #endif
 
+#ifdef CONFIG_MACH_OMAP_SDP2430
+#include "board-sdp2430.h"
+#endif
+
 #ifdef CONFIG_MACH_OMAP_OSK
 #include "board-osk.h"
 #endif
diff --git a/include/asm-arm/arch-omap/io.h b/include/asm-arm/arch-omap/io.h
index b726acf..ac87dd7 100644
--- a/include/asm-arm/arch-omap/io.h
+++ b/include/asm-arm/arch-omap/io.h
@@ -73,6 +73,9 @@ #define L3_24XX_SIZE	SZ_1M		/* 44kB of 1
 #define L4_24XX_PHYS	L4_24XX_BASE	/* 0x48000000 */
 #define L4_24XX_VIRT	0xd8000000
 #define L4_24XX_SIZE	SZ_1M		/* 1MB of 128MB used, want 1MB sect */
+#define L4_WK_243X_PHYS L4_WK_243X_BASE /* 0x49000000 */
+#define L4_WK_243X_VIRT 0xd9000000
+#define L4_WK_243X_SIZE SZ_1M
 #define IO_OFFSET	0x90000000
 #define IO_ADDRESS(pa)	((pa) + IO_OFFSET)	/* Works for L3 and L4 */
 #define io_p2v(pa)	((pa) + IO_OFFSET)	/* Works for L3 and L4 */
diff --git a/include/asm-arm/arch-omap/irqs.h b/include/asm-arm/arch-omap/irqs.h
index 42098d9..f99e93c 100644
--- a/include/asm-arm/arch-omap/irqs.h
+++ b/include/asm-arm/arch-omap/irqs.h
@@ -242,6 +242,7 @@ #define INT_24XX_GPIO_BANK1	29
 #define INT_24XX_GPIO_BANK2	30
 #define INT_24XX_GPIO_BANK3	31
 #define INT_24XX_GPIO_BANK4	32
+#define INT_24XX_GPIO_BANK5	33
 #define INT_24XX_MCBSP1_IRQ_TX	59
 #define INT_24XX_MCBSP1_IRQ_RX	60
 #define INT_24XX_MCBSP2_IRQ_TX	62
diff --git a/include/asm-arm/arch-omap/omap24xx.h b/include/asm-arm/arch-omap/omap24xx.h
index 6e59805..512c9bb 100644
--- a/include/asm-arm/arch-omap/omap24xx.h
+++ b/include/asm-arm/arch-omap/omap24xx.h
@@ -8,6 +8,7 @@ #define __ASM_ARCH_OMAP24XX_H
  */
 
 #define L4_24XX_BASE		0x48000000
+#define L4_WK_243X_BASE		0x49000000
 #define L3_24XX_BASE		0x68000000
 
 /* interrupt controller */
@@ -16,9 +17,12 @@ #define VA_IC_BASE		IO_ADDRESS(OMAP24XX_
 #define OMAP24XX_IVA_INTC_BASE	0x40000000
 #define IRQ_SIR_IRQ		0x0040
 
-#define OMAP24XX_32KSYNCT_BASE	(L4_24XX_BASE + 0x4000)
-#define OMAP24XX_PRCM_BASE	(L4_24XX_BASE + 0x8000)
-#define OMAP24XX_SDRC_BASE	(L3_24XX_BASE + 0x9000)
+#define OMAP242X_32KSYNCT_BASE	(L4_24XX_BASE + 0x4000)
+#define OMAP243X_32KSYNCT_BASE	(L4_WK_243X_BASE + 0x20000)
+#define OMAP242X_PRCM_BASE	(L4_24XX_BASE + 0x8000)
+#define OMAP243X_PRCM_BASE	(L4_WK_243X_BASE + 0x6000)
+#define OMAP242X_SDRC_BASE	(L3_24XX_BASE + 0x9000)
+#define OMAP243X_SDRC_BASE	0x6D000000
 
 #endif /* __ASM_ARCH_OMAP24XX_H */
 

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* RE: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
@ 2006-05-18 12:30 Woodruff, Richard
  2006-05-21 12:23 ` Komal Shah
  0 siblings, 1 reply; 18+ messages in thread
From: Woodruff, Richard @ 2006-05-18 12:30 UTC (permalink / raw)
  To: Komal Shah, linux-omap-open-source

Our current internal tree one does the following in board_2430.c for
ether.


void sdp_reset (void)
{
#define LAN_RESET_REGISTER (H4_DEBUG_FPGA_VA_BASE+0x1c)
	int cnt = 20;

	__raw_writew(0x0, LAN_RESET_REGISTER);
	do {
		__raw_writew(0x1, LAN_RESET_REGISTER);
		udelay (100);
		if(cnt == 0)
			goto sdp_reset_err_out;
		--cnt;
	} while (__raw_readw(LAN_RESET_REGISTER) != 0x1);

	cnt = 20;

	do {
		__raw_writew(0x0, LAN_RESET_REGISTER);
		udelay (100);
		if(cnt == 0)
			goto sdp_reset_err_out;
		--cnt;
	} while (__raw_readw(LAN_RESET_REGISTER) != 0x0000);
	udelay (400);
 sdp_reset_err_out:
	return;
}

static int __init smc91x_init(void)
{
	sdp_reset();

	if ((omap_request_gpio(ETH_GPIO)) < 0) {
		printk("%s: unable to request GPIO for smc91x\n", 
		       __FUNCTION__);
		return -1;
	} else {
		omap_set_gpio_direction(ETH_GPIO, OMAP24XX_DIR_INPUT);
		omap_set_gpio_edge_ctrl(ETH_GPIO, OMAP_GPIO_LEVEL_LOW);
	}
	return 0;
}

static struct resource smc91x_resources[] = {
	[0] = {
	       .start	= OMAP24xx_ETHR_BASE,	/* Physical */
	       .end	= OMAP24xx_ETHR_BASE + SZ_4K,
	       .flags	= IORESOURCE_MEM,
	       },
	[1] = {
	       .start	= INT_ETHER,
	       .end	= 0,
	       .flags	= IORESOURCE_IRQ,
	       },
};

static struct platform_device smc91x_device = {
	.name		= "smc91x",
	.id		= 0,
	.num_resources	= ARRAY_SIZE(smc91x_resources),
	.resource	= smc91x_resources,
};

-----Original Message-----
From: linux-omap-open-source-bounces+r-woodruff2=ti.com@linux.omap.com
[mailto:linux-omap-open-source-bounces+r-woodruff2=ti.com@linux.omap.com
] On Behalf Of Komal Shah
Sent: Thursday, May 18, 2006 6:45 AM
To: linux-omap-open-source@linux.omap.com
Subject: [PATCH] ARM: OMAP: Add minimal OMAP2430 support

Tony/Richard,

* NFS is still not working. NETDEV Watchdog timeouts.
* Intel Starta flash gets detected - JFFS2 is not yet tested.
* platform_add_devices() is not working - Let me know, where I
am making mistake :)

Please review.
---

This patch adds minimal OMAP2430 support.
Based on 2.6.10 Linux kernel available on linux.omap.com from TI.

Signed-off-by: Komal Shah <komal_shah802003@yahoo.com>

-- 
http://www.fastmail.fm - A fast, anti-spam email service.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
  2006-05-18 12:30 Woodruff, Richard
@ 2006-05-21 12:23 ` Komal Shah
  0 siblings, 0 replies; 18+ messages in thread
From: Komal Shah @ 2006-05-21 12:23 UTC (permalink / raw)
  To: Woodruff, Richard, linux-omap-open-source

--- "Woodruff, Richard" <r-woodruff2@ti.com> wrote:

> Our current internal tree one does the following in board_2430.c for
> ether.
> 
> 
> void sdp_reset (void)
> {
> #define LAN_RESET_REGISTER (H4_DEBUG_FPGA_VA_BASE+0x1c)
> 	int cnt = 20;
> 
> 	__raw_writew(0x0, LAN_RESET_REGISTER);
> 	do {
> 		__raw_writew(0x1, LAN_RESET_REGISTER);
> 		udelay (100);
> 		if(cnt == 0)
> 			goto sdp_reset_err_out;
> 		--cnt;
> 	} while (__raw_readw(LAN_RESET_REGISTER) != 0x1);
> 
> 	cnt = 20;
> 
> 	do {
> 		__raw_writew(0x0, LAN_RESET_REGISTER);
> 		udelay (100);
> 		if(cnt == 0)
> 			goto sdp_reset_err_out;
> 		--cnt;
> 	} while (__raw_readw(LAN_RESET_REGISTER) != 0x0000);
> 	udelay (400);
>  sdp_reset_err_out:
> 	return;
> }
> 
> static int __init smc91x_init(void)
> {
> 	sdp_reset();
> 
> 	if ((omap_request_gpio(ETH_GPIO)) < 0) {
> 		printk("%s: unable to request GPIO for smc91x\n", 
> 		       __FUNCTION__);
> 		return -1;
> 	} else {
> 		omap_set_gpio_direction(ETH_GPIO, OMAP24XX_DIR_INPUT);
> 		omap_set_gpio_edge_ctrl(ETH_GPIO, OMAP_GPIO_LEVEL_LOW);
> 	}
> 	return 0;
> }
> 
> static struct resource smc91x_resources[] = {
> 	[0] = {
> 	       .start	= OMAP24xx_ETHR_BASE,	/* Physical */
> 	       .end	= OMAP24xx_ETHR_BASE + SZ_4K,
> 	       .flags	= IORESOURCE_MEM,
> 	       },
> 	[1] = {
> 	       .start	= INT_ETHER,
> 	       .end	= 0,
> 	       .flags	= IORESOURCE_IRQ,
> 	       },
> };
> 
> static struct platform_device smc91x_device = {
> 	.name		= "smc91x",
> 	.id		= 0,
> 	.num_resources	= ARRAY_SIZE(smc91x_resources),
> 	.resource	= smc91x_resources,
> };

I have tried to include above code, but it doesn't help. I remember the
same problem, while we were porting h4 code to omap-git tree, and Tony
solved it using proper GPMC_config timing values.

http://linux.omap.com/pipermail/linux-omap-open-source/2005-August/004739.html
http://source.mvista.com/git/gitweb.cgi?p=linux-omap-2.6.git;a=commitdiff;h=e62a2da3ddfa18c63901138e8360a83b04318dee
 


---Komal Shah
http://komalshah.blogspot.com/

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
@ 2006-05-21 13:50 Woodruff, Richard
  0 siblings, 0 replies; 18+ messages in thread
From: Woodruff, Richard @ 2006-05-21 13:50 UTC (permalink / raw)
  To: Komal Shah, linux-omap-open-source

[-- Attachment #1: Type: text/plain, Size: 737 bytes --]

Hi Komal,

Yes, well you do need workable GPMC timings. Try the attached ones.

> I have tried to include above code, but it doesn't help. I remember
the
> same problem, while we were porting h4 code to omap-git tree, and Tony
> solved it using proper GPMC_config timing values.

I've not actually tried the PRCM #3 timings on 2430.  That was the
initial plan until we got 165MHz capable DDR parts.  Our group has
tested a lot with #5A (133MHz L3) and #2 (165MHz L3).  I don't have a
manual handy but I believe #3 was a 110MHz L3.  At the time I put bits
into u-boot I placed the 110 and 133's together as they should be close.
You really need to calculate up proper values to ensure it will work.

Regards,
Richard W.

[-- Attachment #2: mem.h --]
[-- Type: application/octet-stream, Size: 13375 bytes --]


/*
 * (C) Copyright 2004-2005
 * Texas Instruments, <www.ti.com>
 * Richard Woodruff <r-woodruff2@ti.com>
 *
 * See file CREDITS for list of people who contributed to this
 * project.
 *
 * 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 _OMAP24XX_MEM_H_
#define _OMAP24XX_MEM_H_

#define SDRC_CS0_OSET    0x0
#define SDRC_CS1_OSET    0x30  /* mirror CS1 regs appear offset 0x30 from CS0 */

#ifndef __ASSEMBLY__
/* struct's for holding data tables for current boards, they are getting used
   early in init when NO global access are there */
struct sdrc_data_s {
	u32    sdrc_sharing;
	u32    sdrc_mdcfg_0_ddr;
	u32    sdrc_mdcfg_0_sdr;
	u32    sdrc_actim_ctrla_0;
	u32    sdrc_actim_ctrlb_0;
	u32    sdrc_rfr_ctrl;
	u32    sdrc_mr_0_ddr;
	u32    sdrc_mr_0_sdr;
	u32    sdrc_dllab_ctrl;
} /*__attribute__ ((packed))*/;
typedef struct sdrc_data_s sdrc_data_t;

typedef enum {
	STACKED		= 0,
	IP_DDR		= 1,
	COMBO_DDR	= 2,
	IP_SDR	 	= 3,
} mem_t;

#endif

/* set the 243x-SDRC incoming address convention */
#if defined(SDRC_B_R_C)
#define B_ALL	(0 << 6)	/* bank-row-column */
#elif defined(SDRC_B1_R_B0_C)
#define B_ALL	(1 << 6)	/* bank1-row-bank0-column */
#elif defined(SDRC_R_B_C)
#define B_ALL	(2 << 6)	/* row-bank-column */
#endif

/* Slower full frequency range default timings for x32 operation*/
#define H4_2420_SDRC_SHARING		0x00000100
#define H4_2420_SDRC_MDCFG_0_SDR	0x00D04010 /* discrete sdr module */
#define H4_2420_SDRC_MR_0_SDR		0x00000031
#define H4_2420_SDRC_MDCFG_0_DDR	0x01702011 /* descrite ddr module */
#define SDP_2430_SDRC_MDCFG_0_DDR	(0x02584019|B_ALL) /* Infin ddr module */
#define H4_2420_COMBO_MDCFG_0_DDR	0x00801011 /* combo module */
#define H4_2420_SDRC_MR_0_DDR		0x00000032

#define H4_2422_SDRC_SHARING		0x00004b00
#define H4_2422_SDRC_MDCFG_MONO_DDR	0x01A02011 /* stacked mono die ddr on 2422 */
#define H4_2422_SDRC_MDCFG_0_DDR	0x00801011 /* stacked dual die ddr on 2422 */
#define H4_2422_SDRC_MR_0_DDR		0x00000032

#define H4_2423_SDRC_SHARING		0x00004900 /* 2420POP board cke1 not connected */
#define H4_2423_SDRC_MDCFG_0_DDR	0x01A02011 /* stacked dual die ddr on 2423 */
#define H4_2423_SDRC_MDCFG_1_DDR	0x00801011 /* stacked dual die ddr on 2423 */

/* ES1 work around timings */
#define H4_242x_SDRC_ACTIM_CTRLA_0_ES1	0x9bead909  /* 165Mhz for use with 100/133 */
#define H4_242x_SDRC_ACTIM_CTRLB_0_ES1  0x00000020
#define H4_242x_SDRC_RFR_CTRL_ES1	0x00002401  /* use over refresh for ES1 */

/* optimized timings good for current shipping parts */
#define H4_242X_SDRC_ACTIM_CTRLA_0_100MHz   0x5A59B485
#define H4_242X_SDRC_ACTIM_CTRLB_0_100MHz   0x0000000e
#define H4_242X_SDRC_ACTIM_CTRLA_0_133MHz   0x8BA6E6C8 /* temp warn 0 settings */
#define H4_242X_SDRC_ACTIM_CTRLB_0_133MHz   0x00000010 /* temp warn 0 settings */
#define H4_242X_SDRC_RFR_CTRL_100MHz	    0x0002da01
#define H4_242X_SDRC_RFR_CTRL_133MHz	    0x0003de01 /* 7.8us/7.5ns - 50 = 0x3de */
#define SDP_24XX_SDRC_RFR_CTRL_165MHz	    0x0004e201 /* 7.8us/6ns - 50 = 0x4e2 */
#define H4_242X_SDRC_DLLAB_CTRL_100MHz      0x0000980E /* 90deg, allow DPLLout*1 to work (combo)*/
#define H4_242X_SDRC_DLLAB_CTRL_133MHz      0x0000690E /* 90deg, for ES2 */
#define SDP_24XX_SDRC_DLLAB_CTRL_165MHz     0x0000170C /* 72deg, code will recalc dll load */

/* Infineon part of 2430SDP (133MHz optimized) ~ 7.5ns
 *	TDAL = Twr/Tck + Trp/tck = 15/7.5 + 22.5/7.5 = 2 + 3 = 5
 *	TDPL = 15/7.5	= 2
 *	TRRD = 15/2.5	= 2
 *	TRCD = 22.5/7.5	= 3
 *	TRP = 22.5/7.5	= 3
 *	TRAS = 45/7.5	= 6
 *	TRC = 65/7.5	= 8.6->9
 *	TRFC = 75/7.5	= 10
 *   ACTIMB
 *	TCKE = 2	<new in 2430>
 *	XSR = 120/7.5 = 16
 */
#define TDAL_133   5
#define TDPL_133   2
#define TRRD_133   2
#define TRCD_133   3
#define TRP_133    3
#define TRAS_133   6
#define TRC_133    9
#define TRFC_133  10
#define V_ACTIMA_133 ((TRFC_133 << 27) | (TRC_133 << 22) | (TRAS_133 << 18) |(TRP_133 << 15) | \
		(TRCD_133 << 12) |(TRRD_133 << 9) |(TDPL_133 << 6) | (TDAL_133))

#define TCKE_133   2
#define XSR_133   16
#define V_ACTIMB_133 ((TCKE_133 << 12) | (XSR_133 << 0))

/* Infineon part of 2430SDP (165MHz optimized) 6.06ns
 *   ACTIMA
 *	TDAL = Twr/Tck + Trp/tck = 15/6 + 18/6 = 2.5 + 3 = 5.5 -> 6
 *	TDPL (Twr) = 15/6	= 2.5 -> 3
 *	TRRD = 12/6	= 2
 *	TRCD = 18/6	= 3
 *	TRP = 18/6	= 3
 *	TRAS = 42/6	= 7
 *	TRC = 60/6	= 10
 *	TRFC = 72/6	= 12
 *   ACTIMB
 *	TCKE = 2	<new in 2430>
 *	XSR = 120/6 = 20
 */
#define TDAL_165   6
#define TDPL_165   3
#define TRRD_165   2
#define TRCD_165   3
#define TRP_165    3
#define TRAS_165   7
#define TRC_165   10
#define TRFC_165  12
#define V_ACTIMA_165 ((TRFC_165 << 27) | (TRC_165 << 22) | (TRAS_165 << 18) |(TRP_165 << 15) | \
		(TRCD_165 << 12) |(TRRD_165 << 9) |(TDPL_165 << 6) | (TDAL_165))

#define TCKE_165   2
#define XSR_165   20
#define V_ACTIMB_165 ((TCKE_165 << 12) | (XSR_165 << 0))

#if defined(PRCM_CONFIG_II) || defined(PRCM_CONFIG_5B)
# define H4_2420_SDRC_ACTIM_CTRLA_0  H4_242X_SDRC_ACTIM_CTRLA_0_100MHz
# define SDP_2430_SDRC_ACTIM_CTRLA_0 V_ACTIMA_133
# define H4_2420_SDRC_ACTIM_CTRLB_0  H4_242X_SDRC_ACTIM_CTRLB_0_100MHz
# define H4_2420_SDRC_RFR_CTRL       H4_242X_SDRC_RFR_CTRL_100MHz
# define H4_2420_SDRC_DLLAB_CTRL     H4_242X_SDRC_DLLAB_CTRL_100MHz
# define SDP_2430_SDRC_DLLAB_CTRL    0x0000730E
# define H4_2422_SDRC_ACTIM_CTRLA_0  H4_242X_SDRC_ACTIM_CTRLA_0_100MHz
# define H4_2422_SDRC_ACTIM_CTRLB_0  H4_242X_SDRC_ACTIM_CTRLB_0_100MHz
# define H4_2422_SDRC_RFR_CTRL       H4_242X_SDRC_RFR_CTRL_100MHz
# define H4_2422_SDRC_DLLAB_CTRL     H4_242X_SDRC_DLLAB_CTRL_100MHz
#elif defined(PRCM_CONFIG_III) || defined(PRCM_CONFIG_5A) || defined(PRCM_CONFIG_3)
# define H4_2420_SDRC_ACTIM_CTRLA_0  H4_242X_SDRC_ACTIM_CTRLA_0_133MHz
# define SDP_2430_SDRC_ACTIM_CTRLA_0 V_ACTIMA_133
# define H4_2420_SDRC_ACTIM_CTRLB_0  H4_242X_SDRC_ACTIM_CTRLB_0_133MHz
# define H4_2420_SDRC_RFR_CTRL       H4_242X_SDRC_RFR_CTRL_133MHz
# define H4_2420_SDRC_DLLAB_CTRL     H4_242X_SDRC_DLLAB_CTRL_133MHz
# define SDP_2430_SDRC_DLLAB_CTRL    0x0000730E
# define H4_2422_SDRC_ACTIM_CTRLA_0  H4_242X_SDRC_ACTIM_CTRLA_0_133MHz
# define H4_2422_SDRC_ACTIM_CTRLB_0  H4_242X_SDRC_ACTIM_CTRLB_0_133MHz
# define H4_2422_SDRC_RFR_CTRL       H4_242X_SDRC_RFR_CTRL_133MHz
# define H4_2422_SDRC_DLLAB_CTRL     H4_242X_SDRC_DLLAB_CTRL_133MHz
#elif defined(PRCM_CONFIG_I) || defined(PRCM_CONFIG_2)
# define H4_2420_SDRC_ACTIM_CTRLA_0  V_ACTIMA_165 
# define SDP_2430_SDRC_ACTIM_CTRLA_0 V_ACTIMA_165
# define H4_2420_SDRC_ACTIM_CTRLB_0  V_ACTIMB_165 
# define H4_2420_SDRC_RFR_CTRL       SDP_24XX_SDRC_RFR_CTRL_165MHz
# define H4_2420_SDRC_DLLAB_CTRL     SDP_24XX_SDRC_DLLAB_CTRL_165MHz
# define SDP_2430_SDRC_DLLAB_CTRL    SDP_24XX_SDRC_DLLAB_CTRL_165MHz
# define H4_2422_SDRC_ACTIM_CTRLA_0  V_ACTIMA_165 
# define H4_2422_SDRC_ACTIM_CTRLB_0  V_ACTIMB_165 
# define H4_2422_SDRC_RFR_CTRL       SDP_24XX_SDRC_RFR_CTRL_165MHz
# define H4_2422_SDRC_DLLAB_CTRL     SDP_24XX_SDRC_DLLAB_CTRL_165MHz
#endif

/*
 * GPMC settings -
 * Definitions is as per the following format
 * # define <PART>_GPMC_CONFIG<x> <value>
 * Where:
 * PART is the part name e.g. STNOR - Intel Strata Flash
 * x is GPMC config registers from 1 to 6 (there will be 6 macros)
 * Value is corresponding value
 *
 * For every valid PRCM configuration there should be only one definition of the same.
 * if values are independent of the board, this definition will be present in this file
 * if values are dependent on the board, then this should go into corresponding mem-boardName.h file
 *
 * Currently valid part Names are (PART):
 * STNOR - Intel Strata Flash
 * SMNAND - Samsung NAND
 * MPDB - H4 MPDB board
 * SBNOR - Sibley NOR
 * ONNAND - Samsung One NAND
 *
 * include/configs/file.h contains the following defn - for all CS we are interested
 * #define OMAP24XX_GPMC_CSx PART
 * #define OMAP24XX_GPMC_CSx_SIZE Size
 * #define OMAP24XX_GPMC_CSx_MAP Map
 * Where:
 * x - CS number
 * PART - Part Name as defined above
 * SIZE - how big is the mapping to be
 *   GPMC_SIZE_128M - 0x8
 *   GPMC_SIZE_64M  - 0xC
 *   GPMC_SIZE_32M  - 0xE
 *   GPMC_SIZE_16M  - 0xF
 * MAP  - Map this CS to which address(GPMC address space)- Absolute address
 *   >>24 before being used.
 */

#define GPMC_SIZE_128M  0x8
#define GPMC_SIZE_64M   0xC
#define GPMC_SIZE_32M   0xE
#define GPMC_SIZE_16M   0xF

#if defined(PRCM_CONFIG_II) || defined(PRCM_CONFIG_5B) /* L3 at 100MHz */
# define SMNAND_GPMC_CONFIG1 0x0
# define SMNAND_GPMC_CONFIG2 0x00141400
# define SMNAND_GPMC_CONFIG3 0x00141400
# define SMNAND_GPMC_CONFIG4 0x0F010F01
# define SMNAND_GPMC_CONFIG5 0x010C1414
# define SMNAND_GPMC_CONFIG6 0x00000A80
# define STNOR_GPMC_CONFIG1  0x3
# define STNOR_GPMC_CONFIG2  0x000f0f01
# define STNOR_GPMC_CONFIG3  0x00050502
# define STNOR_GPMC_CONFIG4  0x0C060C06
# define STNOR_GPMC_CONFIG5  0x01131F1F
# define STNOR_GPMC_CONFIG6  0x0  /* 0? Not defined so far... this value is reset val as per gpmc doc */
# define MPDB_GPMC_CONFIG1   0x00011000
# define MPDB_GPMC_CONFIG2   0x001F1F00
# define MPDB_GPMC_CONFIG3   0x00080802
# define MPDB_GPMC_CONFIG4   0x1C091C09
# define MPDB_GPMC_CONFIG5   0x031A1F1F
# define MPDB_GPMC_CONFIG6   0x000003C2
#endif

#if defined(PRCM_CONFIG_III) || defined(PRCM_CONFIG_5A) || defined(PRCM_CONFIG_3) /* L3 at 133MHz */
# define SMNAND_GPMC_CONFIG1 0x00001800
# define SMNAND_GPMC_CONFIG2 0x00141400
# define SMNAND_GPMC_CONFIG3 0x00141400
# define SMNAND_GPMC_CONFIG4 0x0F010F01
# define SMNAND_GPMC_CONFIG5 0x010C1414
# define SMNAND_GPMC_CONFIG6 0x00000A80
# define SMNAND_GPMC_CONFIG7 0x00000C44

# define STNOR_GPMC_CONFIG1  0x3
# define STNOR_GPMC_CONFIG2  0x00151501
# define STNOR_GPMC_CONFIG3  0x00060602
# define STNOR_GPMC_CONFIG4  0x10081008
# define STNOR_GPMC_CONFIG5  0x01131F1F
# define STNOR_GPMC_CONFIG6  0x000004c4

# define MPDB_GPMC_CONFIG1  0x00011000
# define MPDB_GPMC_CONFIG2  0x001f1f01
# define MPDB_GPMC_CONFIG3  0x00080803
# define MPDB_GPMC_CONFIG4  0x1C091C09
# define MPDB_GPMC_CONFIG5  0x041f1F1F
# define MPDB_GPMC_CONFIG6  0x000004C4

# define SIBNOR_GPMC_CONFIG1  0x3
# define SIBNOR_GPMC_CONFIG2  0x00151501
# define SIBNOR_GPMC_CONFIG3  0x00060602
# define SIBNOR_GPMC_CONFIG4  0x10081008
# define SIBNOR_GPMC_CONFIG5  0x01131F1F
# define SIBNOR_GPMC_CONFIG6  0x00000000

# define ONENAND_GPMC_CONFIG1 0x00001200
# define ONENAND_GPMC_CONFIG2 0x000c0c01
# define ONENAND_GPMC_CONFIG3 0x00030301
# define ONENAND_GPMC_CONFIG4 0x0c040c04
# define ONENAND_GPMC_CONFIG5 0x010C1010
# define ONENAND_GPMC_CONFIG6 0x00000000
#endif /* endif CFG_PRCM_III */

#if defined (PRCM_CONFIG_I) || defined(PRCM_CONFIG_2) /* L3 at 165MHz */
# define SMNAND_GPMC_CONFIG1 0x00001800
# define SMNAND_GPMC_CONFIG2 0x00141400
# define SMNAND_GPMC_CONFIG3 0x00141400
# define SMNAND_GPMC_CONFIG4 0x0F010F01
# define SMNAND_GPMC_CONFIG5 0x010C1414
# define SMNAND_GPMC_CONFIG6 0x00000A80
# define SMNAND_GPMC_CONFIG7 0x00000C44

# define STNOR_GPMC_CONFIG1  0x3
# define STNOR_GPMC_CONFIG2  0x00151501
# define STNOR_GPMC_CONFIG3  0x00060602
# define STNOR_GPMC_CONFIG4  0x11091109
# define STNOR_GPMC_CONFIG5  0x01141F1F
# define STNOR_GPMC_CONFIG6  0x000004c4

# define MPDB_GPMC_CONFIG1  0x00011000
# define MPDB_GPMC_CONFIG2  0x001f1f01
# define MPDB_GPMC_CONFIG3  0x00080803
# define MPDB_GPMC_CONFIG4  0x1c0b1c0a
# define MPDB_GPMC_CONFIG5  0x041f1F1F
# define MPDB_GPMC_CONFIG6  0x000004C4

# define SIBNOR_GPMC_CONFIG1  0x3
# define SIBNOR_GPMC_CONFIG2  0x00151501
# define SIBNOR_GPMC_CONFIG3  0x00060602
# define SIBNOR_GPMC_CONFIG4  0x11091109
# define SIBNOR_GPMC_CONFIG5  0x01141F1F
# define SIBNOR_GPMC_CONFIG6  0x00000000

# define ONENAND_GPMC_CONFIG1 0x00001200
# define ONENAND_GPMC_CONFIG2 0x000F0F01
# define ONENAND_GPMC_CONFIG3 0x00030301
# define ONENAND_GPMC_CONFIG4 0x0F040F04
# define ONENAND_GPMC_CONFIG5 0x010F1010
# define ONENAND_GPMC_CONFIG6 0x00000000
#endif

/* max number of GPMC Chip Selects */
#define GPMC_MAX_CS    8
/* max number of GPMC regs */
#define GPMC_MAX_REG   7

#define PROC_NOR       1
#define PROC_NAND      2
#define PISMO_SIBLEY0  3
#define PISMO_SIBLEY1  4
#define PISMO_ONENAND  5
#define DBG_MPDB       6

/* make it readable for the gpmc_init */
#define PROC_NOR_BASE   FLASH_BASE
#define PROC_NAND_BASE  NAND_BASE
#define PISMO_SIB0_BASE SIBLEY_MAP1
#define PISMO_SIB1_BASE SIBLEY_MAP2
#define PISMO_ONEN_BASE ONENAND_MAP
#define DBG_MPDB_BASE   DEBUG_BASE

#endif /* endif _OMAP24XX_MEM_H_ */

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
  2006-05-18 11:44 Komal Shah
@ 2006-06-05 16:54 ` Tony Lindgren
  2006-06-06  3:08   ` Komal Shah
  0 siblings, 1 reply; 18+ messages in thread
From: Tony Lindgren @ 2006-06-05 16:54 UTC (permalink / raw)
  To: Komal Shah; +Cc: linux-omap-open-source

Hi,

* Komal Shah <komal_shah802003@yahoo.com> [060518 04:45]:
> Tony/Richard,
> 
> * NFS is still not working. NETDEV Watchdog timeouts.
> * Intel Starta flash gets detected - JFFS2 is not yet tested.
> * platform_add_devices() is not working - Let me know, where I
> am making mistake :)
> 
> Please review.

Well one thing we should change is to make it possible to compile in all
24xx boards. This involves changing things like PRCM register access
to use a base address instead of ifdefs.

I know we this is quite a bit of work now, but it pays off in the long
run. Something like this has proven to work well for portable code
across various omaps/platforms: 

#define OMAP2420_PRCM_SOME_BASE	0xaaaaaaaa
#define OMAP2430_PRCM_SOME_BASE	0xbbbbbbbb

#define PRCM_SOME_REG1_OFFSET	0x10	
#define		REG1_AAAA	(1 << 31)
#define		REG1_BBBB	(1 << 30)
#define		REG1_CCCC	(1 << 29)

#define PRCM_SOME_REG2_OFFSET	0x20
#define		REG2_AAAA	(1 << 2)
#define		REG2_BBBB	(1 << 1)
#define		REG2_CCCC	(1 << 0)

#define PRCM_SOME_REG3_OFFSET	0x30	

static unsigned long prcm_vbase;

#define prcm_readl(r)		__raw_readl(prcm_vbase + (r))
#define prcm_writel(v, r)	__raw_writel((v), prcm_vbase + (r))

static int prcm_do_something(void)
{
	u32 reg;

	reg = prcm_readl(PRCM_SOME_REG1_OFFSET);
	reg |= REG1_BBBB;
	prcm_writel(reg, PRCM_SOME_REG1_OFFSET);
}

static int __init prcm_init(void)
{
	if (cpu_is_omap2420())
		prcm_vbase = OMAP2420_PRCM_SOME_BASE;
	else if (cpu_is_omap2430())
		prcm_vbase = OMAP2430_PRCM_SOME_BASE;

	return 0;
}

Regards,

Tony

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
  2006-06-05 16:54 ` Tony Lindgren
@ 2006-06-06  3:08   ` Komal Shah
  2006-06-06 17:58     ` Tony Lindgren
  0 siblings, 1 reply; 18+ messages in thread
From: Komal Shah @ 2006-06-06  3:08 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap-open-source

--- Tony Lindgren <tony@atomide.com> wrote:

> 
> Well one thing we should change is to make it possible to compile in
> all
> 24xx boards. This involves changing things like PRCM register access
> to use a base address instead of ifdefs.
> 
> I know we this is quite a bit of work now, but it pays off in the
> long
> run. Something like this has proven to work well for portable code
> across various omaps/platforms: 
> 
> #define OMAP2420_PRCM_SOME_BASE	0xaaaaaaaa
> #define OMAP2430_PRCM_SOME_BASE	0xbbbbbbbb
> 
> #define PRCM_SOME_REG1_OFFSET	0x10	
> #define		REG1_AAAA	(1 << 31)
> #define		REG1_BBBB	(1 << 30)
> #define		REG1_CCCC	(1 << 29)
> 
> #define PRCM_SOME_REG2_OFFSET	0x20
> #define		REG2_AAAA	(1 << 2)
> #define		REG2_BBBB	(1 << 1)
> #define		REG2_CCCC	(1 << 0)
> 
> #define PRCM_SOME_REG3_OFFSET	0x30	
> 
> static unsigned long prcm_vbase;
> 
> #define prcm_readl(r)		__raw_readl(prcm_vbase + (r))
> #define prcm_writel(v, r)	__raw_writel((v), prcm_vbase + (r))
> 
> static int prcm_do_something(void)
> {
> 	u32 reg;
> 
> 	reg = prcm_readl(PRCM_SOME_REG1_OFFSET);
> 	reg |= REG1_BBBB;
> 	prcm_writel(reg, PRCM_SOME_REG1_OFFSET);
> }
> 
> static int __init prcm_init(void)
> {
> 	if (cpu_is_omap2420())
> 		prcm_vbase = OMAP2420_PRCM_SOME_BASE;
> 	else if (cpu_is_omap2430())
> 		prcm_vbase = OMAP2430_PRCM_SOME_BASE;
> 
> 	return 0;
> }
> 

Thanx for the review. I will work on this, once I come back from Japan
:). At home, both the 2430 boards are not-booting and I had tough time
with CSST and switch settings, so was not able to flash bootloader on
2430SDP-EVM ES1.0 chips. But it will not be hard to make compile-only
patch for review.

---Komal Shah
http://komalshah.blogspot.com/

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
  2006-06-06  3:08   ` Komal Shah
@ 2006-06-06 17:58     ` Tony Lindgren
  2006-06-11  8:37       ` Komal Shah
  0 siblings, 1 reply; 18+ messages in thread
From: Tony Lindgren @ 2006-06-06 17:58 UTC (permalink / raw)
  To: Komal Shah; +Cc: linux-omap-open-source

* Komal Shah <komal_shah802003@yahoo.com> [060605 20:08]:
> --- Tony Lindgren <tony@atomide.com> wrote:
> 
> > 
> > Well one thing we should change is to make it possible to compile in
> > all
> > 24xx boards. This involves changing things like PRCM register access
> > to use a base address instead of ifdefs.
> > 
> > I know we this is quite a bit of work now, but it pays off in the
> > long
> > run. Something like this has proven to work well for portable code
> > across various omaps/platforms: 
> > 
> > #define OMAP2420_PRCM_SOME_BASE	0xaaaaaaaa
> > #define OMAP2430_PRCM_SOME_BASE	0xbbbbbbbb
> > 
> > #define PRCM_SOME_REG1_OFFSET	0x10	
> > #define		REG1_AAAA	(1 << 31)
> > #define		REG1_BBBB	(1 << 30)
> > #define		REG1_CCCC	(1 << 29)
> > 
> > #define PRCM_SOME_REG2_OFFSET	0x20
> > #define		REG2_AAAA	(1 << 2)
> > #define		REG2_BBBB	(1 << 1)
> > #define		REG2_CCCC	(1 << 0)
> > 
> > #define PRCM_SOME_REG3_OFFSET	0x30	
> > 
> > static unsigned long prcm_vbase;
> > 
> > #define prcm_readl(r)		__raw_readl(prcm_vbase + (r))
> > #define prcm_writel(v, r)	__raw_writel((v), prcm_vbase + (r))
> > 
> > static int prcm_do_something(void)
> > {
> > 	u32 reg;
> > 
> > 	reg = prcm_readl(PRCM_SOME_REG1_OFFSET);
> > 	reg |= REG1_BBBB;
> > 	prcm_writel(reg, PRCM_SOME_REG1_OFFSET);
> > }
> > 
> > static int __init prcm_init(void)
> > {
> > 	if (cpu_is_omap2420())
> > 		prcm_vbase = OMAP2420_PRCM_SOME_BASE;
> > 	else if (cpu_is_omap2430())
> > 		prcm_vbase = OMAP2430_PRCM_SOME_BASE;
> > 
> > 	return 0;
> > }
> > 
> 
> Thanx for the review. I will work on this, once I come back from Japan
> :). At home, both the 2430 boards are not-booting and I had tough time
> with CSST and switch settings, so was not able to flash bootloader on
> 2430SDP-EVM ES1.0 chips. But it will not be hard to make compile-only
> patch for review.

OK, cool. I have some 24xx PM related patches coming up that already
convert some part of the PRCM registers to use prcm_readl/writel(). I'll
have those available probably towards the end of the week.

Tony

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
  2006-06-06 17:58     ` Tony Lindgren
@ 2006-06-11  8:37       ` Komal Shah
  2006-06-11 10:08         ` Juha Yrjölä
  0 siblings, 1 reply; 18+ messages in thread
From: Komal Shah @ 2006-06-11  8:37 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap-open-source

--- Tony Lindgren <tony@atomide.com> wrote:

> * Komal Shah <komal_shah802003@yahoo.com> [060605 20:08]:
> > --- Tony Lindgren <tony@atomide.com> wrote:
> > 
> > > 
> > > Well one thing we should change is to make it possible to compile
> in
> > > all
> > > 24xx boards. This involves changing things like PRCM register
> access
> > > to use a base address instead of ifdefs.
> > > 
> > > I know we this is quite a bit of work now, but it pays off in the
> > > long
> > > run. Something like this has proven to work well for portable
> code
> > > across various omaps/platforms: 
> > > 
> > > #define OMAP2420_PRCM_SOME_BASE	0xaaaaaaaa
> > > #define OMAP2430_PRCM_SOME_BASE	0xbbbbbbbb
> > > 
> > > #define PRCM_SOME_REG1_OFFSET	0x10	
> > > #define		REG1_AAAA	(1 << 31)
> > > #define		REG1_BBBB	(1 << 30)
> > > #define		REG1_CCCC	(1 << 29)
> > > 
> > > #define PRCM_SOME_REG2_OFFSET	0x20
> > > #define		REG2_AAAA	(1 << 2)
> > > #define		REG2_BBBB	(1 << 1)
> > > #define		REG2_CCCC	(1 << 0)
> > > 
> > > #define PRCM_SOME_REG3_OFFSET	0x30	
> > > 
> > > static unsigned long prcm_vbase;
> > > 
> > > #define prcm_readl(r)		__raw_readl(prcm_vbase + (r))
> > > #define prcm_writel(v, r)	__raw_writel((v), prcm_vbase + (r))
> > > 
> > > static int prcm_do_something(void)
> > > {
> > > 	u32 reg;
> > > 
> > > 	reg = prcm_readl(PRCM_SOME_REG1_OFFSET);
> > > 	reg |= REG1_BBBB;
> > > 	prcm_writel(reg, PRCM_SOME_REG1_OFFSET);
> > > }
> > > 
> > > static int __init prcm_init(void)
> > > {
> > > 	if (cpu_is_omap2420())
> > > 		prcm_vbase = OMAP2420_PRCM_SOME_BASE;
> > > 	else if (cpu_is_omap2430())
> > > 		prcm_vbase = OMAP2430_PRCM_SOME_BASE;
> > > 
> > > 	return 0;
> > > }
> > > 
> > 
> > Thanx for the review. I will work on this, once I come back from
> Japan
> > :). At home, both the 2430 boards are not-booting and I had tough
> time
> > with CSST and switch settings, so was not able to flash bootloader
> on
> > 2430SDP-EVM ES1.0 chips. But it will not be hard to make
> compile-only
> > patch for review.
> 

After looking at the files which are needed to change for
prcm_read/write[l], clock.c needs the major update. I hope Richard is
OK with going from __REG32(...) to __raw_read/write[l] based prcm_rw
wrappers? 

Anyways, I have started doing that changes for other files.

---Komal Shah
http://komalshah.blogspot.com/

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
  2006-06-11  8:37       ` Komal Shah
@ 2006-06-11 10:08         ` Juha Yrjölä
  0 siblings, 0 replies; 18+ messages in thread
From: Juha Yrjölä @ 2006-06-11 10:08 UTC (permalink / raw)
  To: Komal Shah; +Cc: linux-omap-open-source

Hi,

Komal Shah wrote:

> After looking at the files which are needed to change for
> prcm_read/write[l], clock.c needs the major update. I hope Richard is
> OK with going from __REG32(...) to __raw_read/write[l] based prcm_rw
> wrappers? 

read_reg() and write_reg() are definitely the way to go.  The __REG() 
macros are unportable, and usually even lead to inefficient assembly code.

As for which API is the most coherent, I've found that this approach 
makes the most sense:

static void __iomem *prcm_base;

static u32 prcm_read_reg(int reg);
static void prcm_write_reg(int reg, u32 value);

If you go with the readl/writel argument ordering, you'll end up with 
oddness like:

static u32 mmc_writel(struct mmc *mmc, u32 value, int reg);

You should also not expose the raw register read/write functions, but 
rather implement wrapper functions to modify the relevant registers. 
Otherwise you might run into race issues with a preemptible kernel.

Cheers,
Juha

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
@ 2006-06-11 12:15 Woodruff, Richard
  2006-06-11 12:50 ` Juha Yrjölä
  0 siblings, 1 reply; 18+ messages in thread
From: Woodruff, Richard @ 2006-06-11 12:15 UTC (permalink / raw)
  To: Komal Shah, Tony Lindgren; +Cc: linux-omap-open-source


> After looking at the files which are needed to change for
> prcm_read/write[l], clock.c needs the major update. I hope Richard is
> OK with going from __REG32(...) to __raw_read/write[l] based prcm_rw
> wrappers?
> 
> Anyways, I have started doing that changes for other files.

I picked up this encoding from USB which uses it also.  In general it
makes any kind of porting and sharing between some of our internal code
bases easier.  It has a nice property of also being more compact (in C
file coding space) then other forms.

As far as portability goes header files do hide the any differences and
we use it seamlessly between 2420 and 2430 dispute them having very
different maps.   It won't give you a single binary which runs across
OMAP1/OMAP2/OMAP3 but as you use a different compiler target v5, v6,
cortex, which produces incompatible binaries that has somewhat a lesser
importance.

Regards,
Richard W.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
  2006-06-11 12:15 Woodruff, Richard
@ 2006-06-11 12:50 ` Juha Yrjölä
  0 siblings, 0 replies; 18+ messages in thread
From: Juha Yrjölä @ 2006-06-11 12:50 UTC (permalink / raw)
  To: Woodruff, Richard; +Cc: linux-omap-open-source

Woodruff, Richard wrote:

> I picked up this encoding from USB which uses it also.  In general it
> makes any kind of porting and sharing between some of our internal code
> bases easier.  It has a nice property of also being more compact (in C
> file coding space) then other forms.

That encoding has a lot of downsides:

- You're tied to accessing only one instance of the peripheral (trying 
to access e.g. the different GPIO blocks is bound to be ugly).
- You're tied to MMIO.  read_reg/write_reg can basically use whatever 
transport.
- As mentioned before, supporting several base addresses (e.g. on 
different OMAPs) becomes a hassle.

read_reg/write_reg, in my opinion, doesn't.  You mention compactness as 
one, but with some preprocessor trickery it's rather easy to come up 
with a very compact read_reg/write_reg notation.

But all in all, this is mostly a readability issue, and therefore 
subject to personal preferences.  Mine is read_reg/write_reg. =)

Cheers,
Juha

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
@ 2006-06-11 13:09 Woodruff, Richard
  0 siblings, 0 replies; 18+ messages in thread
From: Woodruff, Richard @ 2006-06-11 13:09 UTC (permalink / raw)
  To: Juha Yrjölä; +Cc: linux-omap-open-source

> > I picked up this encoding from USB which uses it also.  In general it
> > makes any kind of porting and sharing between some of our internal code
> > bases easier.  It has a nice property of also being more compact (in C
> > file coding space) then other forms.
> 
> That encoding has a lot of downsides:
> 
> - You're tied to accessing only one instance of the peripheral (trying
> to access e.g. the different GPIO blocks is bound to be ugly).

Yes that is true.  That's why it is not used there.  We generally have used it in things where there is 1 instance like PRCM.

> - You're tied to MMIO.  read_reg/write_reg can basically use whatever
> transport.

Probably.  Though as you say some preprocessor tricks can do wonders :)

> - As mentioned before, supporting several base addresses (e.g. on
> different OMAPs) becomes a hassle.
> 
> read_reg/write_reg, in my opinion, doesn't.  You mention compactness as
> one, but with some preprocessor trickery it's rather easy to come up
> with a very compact read_reg/write_reg notation.
> 
> But all in all, this is mostly a readability issue, and therefore
> subject to personal preferences.  Mine is read_reg/write_reg. =)

I do agree here.  Actually, I don't really mind if one form is used over another.  Easier sharing likely happens though yours, and consistency is better.  In general you do need to be a bit careful in that only focusing on an overall sharing strategy can limit you to the least common denominator.

The down side to me is we freeze and branch on a kernel version in support of customer release streams. Production is necessary.  When the kernel deviates from this it makes pushing back fixes (or taking them in harder).  Changes which are more on the cosmetic side hinder exchanges.  We do resynchronize as streams come up and also do some live tree tracking so things correct themselves after some time. 

Regards,
Richard W.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
@ 2006-06-11 13:22 Woodruff, Richard
  2006-06-11 13:54 ` Juha Yrjölä
  0 siblings, 1 reply; 18+ messages in thread
From: Woodruff, Richard @ 2006-06-11 13:22 UTC (permalink / raw)
  To: Juha Yrjölä; +Cc: linux-omap-open-source

> >
> > But all in all, this is mostly a readability issue, and therefore
> > subject to personal preferences.  Mine is read_reg/write_reg. =)
> 
> I do agree here.  Actually, I don't really mind if one form is used over
> another.  Easier sharing likely happens though yours, and consistency is
> better.  In general you do need to be a bit careful in that only focusing
> on an overall sharing strategy can limit you to the least common
> denominator.

Actually, with respect to the PRCM I'd rather it stuck to what it current uses.

Along with my other biases I rationalized it this way... I like having a private driver incompatible method to access the PRCM.  It forces drivers to use API access functions and not directly access its registers.  The PRCM has more and more things to manage and having some xyz driver mess up its state behind my back will break everything.

For example I just sorted out why I was having some trouble getting to core retention on a particular 2430 configuration.  Some external entity had wrongly set and cleared a clock related bit.  This had the side effect of gating my ability to hit retention.  There were no status bits which warned me of this and it just didn't work.  The setting was in error and activated some half implemented logic in the chip...

There was a long time where I couldn't pull a reference open source port for OMAP and have its low level power work.  That is both a code and hardware issue.  It becomes very difficult to support pieces like this out side of production release streams as they stray.  I tend to favor functionally over beauty though I certainly can appreciate it when both converge.

Regards,
Richard W.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
  2006-06-11 13:22 Woodruff, Richard
@ 2006-06-11 13:54 ` Juha Yrjölä
  2006-06-12  6:43   ` Komal Shah
  0 siblings, 1 reply; 18+ messages in thread
From: Juha Yrjölä @ 2006-06-11 13:54 UTC (permalink / raw)
  To: Woodruff, Richard; +Cc: linux-omap-open-source

Woodruff, Richard wrote:

> Along with my other biases I rationalized it this way... I like
> having  a private driver incompatible method to access the PRCM. It forces
> drivers to use API access functions and not directly access its
> registers. The PRCM has more and more things to manage and having some
> xyz driver mess up its state behind my back will break everything.

Exactly.  That's why I keep my read_reg/write_reg functions static. 
Usually I put even the register definitions to the .c file, since other 
drivers shouldn't have any business modifying them directly anyway.

Cheers,
Juha

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
  2006-06-11 13:54 ` Juha Yrjölä
@ 2006-06-12  6:43   ` Komal Shah
  2006-06-12 16:07     ` Tony Lindgren
  0 siblings, 1 reply; 18+ messages in thread
From: Komal Shah @ 2006-06-12  6:43 UTC (permalink / raw)
  To: Woodruff, Richard; +Cc: linux-omap-open-source

--- Juha Yrjölä <juha.yrjola@solidboot.com> wrote:

> 
> Exactly.  That's why I keep my read_reg/write_reg functions static. 
> Usually I put even the register definitions to the .c file, since
> other 
> drivers shouldn't have any business modifying them directly anyway.
> 

Have them static prcm_read/write_reg means, that clock.c and prcm.c
should be merged, as clock.c is the heaviest user of PRCM/CM_*
registers as of now, and only having static prcm_read/write_reg
functions in prcm.c doesn't solve usage PRCM_* registers from clock.c?

---Komal Shah
http://komalshah.blogspot.com/

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
  2006-06-12  6:43   ` Komal Shah
@ 2006-06-12 16:07     ` Tony Lindgren
  2006-06-12 16:35       ` Komal Shah
  0 siblings, 1 reply; 18+ messages in thread
From: Tony Lindgren @ 2006-06-12 16:07 UTC (permalink / raw)
  To: Komal Shah; +Cc: linux-omap-open-source

* Komal Shah <komal_shah802003@yahoo.com> [060611 23:45]:
> --- Juha Yrjölä <juha.yrjola@solidboot.com> wrote:
> 
> > 
> > Exactly.  That's why I keep my read_reg/write_reg functions static. 
> > Usually I put even the register definitions to the .c file, since
> > other 
> > drivers shouldn't have any business modifying them directly anyway.
> > 
> 
> Have them static prcm_read/write_reg means, that clock.c and prcm.c
> should be merged, as clock.c is the heaviest user of PRCM/CM_*
> registers as of now, and only having static prcm_read/write_reg
> functions in prcm.c doesn't solve usage PRCM_* registers from clock.c?

Or put clock related PRCM registers to clock.c, power domain related
registers to pm-domain.c and so on. I have pm-domain.c somewhat ready
here and will push it as soon as I can.

Regards,

Tony

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] ARM: OMAP: Add minimal OMAP2430 support
  2006-06-12 16:07     ` Tony Lindgren
@ 2006-06-12 16:35       ` Komal Shah
  0 siblings, 0 replies; 18+ messages in thread
From: Komal Shah @ 2006-06-12 16:35 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap-open-source

--- Tony Lindgren <tony@atomide.com> wrote:

> 
> Or put clock related PRCM registers to clock.c, power domain related
> registers to pm-domain.c and so on. I have pm-domain.c somewhat ready
> here and will push it as soon as I can.

Ok, I have sent the first-version of the patch to the list (143k), and
I will make above changes tomorrow.

---Komal Shah
http://komalshah.blogspot.com/

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2006-06-12 16:35 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-05-17 10:50 [PATCH] ARM: OMAP: Add minimal OMAP2430 support Komal Shah
  -- strict thread matches above, loose matches on Subject: below --
2006-05-18 11:44 Komal Shah
2006-06-05 16:54 ` Tony Lindgren
2006-06-06  3:08   ` Komal Shah
2006-06-06 17:58     ` Tony Lindgren
2006-06-11  8:37       ` Komal Shah
2006-06-11 10:08         ` Juha Yrjölä
2006-05-18 12:30 Woodruff, Richard
2006-05-21 12:23 ` Komal Shah
2006-05-21 13:50 Woodruff, Richard
2006-06-11 12:15 Woodruff, Richard
2006-06-11 12:50 ` Juha Yrjölä
2006-06-11 13:09 Woodruff, Richard
2006-06-11 13:22 Woodruff, Richard
2006-06-11 13:54 ` Juha Yrjölä
2006-06-12  6:43   ` Komal Shah
2006-06-12 16:07     ` Tony Lindgren
2006-06-12 16:35       ` Komal Shah

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox