Commit 7266355c authored by Russell King's avatar Russell King

[ARM] Merge current 2.6 into experimental tree.

parents 67e9bb60 f5793133
...@@ -23,10 +23,6 @@ ifeq ($(CONFIG_ARCH_SHARK),y) ...@@ -23,10 +23,6 @@ ifeq ($(CONFIG_ARCH_SHARK),y)
OBJS += head-shark.o ofw-shark.o OBJS += head-shark.o ofw-shark.o
endif endif
ifeq ($(CONFIG_ARCH_INTEGRATOR),y)
OBJS += head-integrator.o
endif
ifeq ($(CONFIG_ARCH_CAMELOT),y) ifeq ($(CONFIG_ARCH_CAMELOT),y)
OBJS += head-epxa10db.o OBJS += head-epxa10db.o
endif endif
......
#include <asm/mach-types.h>
.section ".start", "ax"
mov r7, #MACH_TYPE_INTEGRATOR
...@@ -503,12 +503,6 @@ proc_types: ...@@ -503,12 +503,6 @@ proc_types:
@ Everything from here on will be the new ID system. @ Everything from here on will be the new ID system.
.word 0x41129200 @ ARM920T
.word 0xff00fff0
b __armv4_cache_on
b __armv4_cache_off
b __armv4_cache_flush
.word 0x4401a100 @ sa110 / sa1100 .word 0x4401a100 @ sa110 / sa1100
.word 0xffffffe0 .word 0xffffffe0
b __armv4_cache_on b __armv4_cache_on
...@@ -523,6 +517,12 @@ proc_types: ...@@ -523,6 +517,12 @@ proc_types:
@ These match on the architecture ID @ These match on the architecture ID
.word 0x00020000 @ ARMv4T
.word 0x000f0000
b __armv4_cache_on
b __armv4_cache_off
b __armv4_cache_flush
.word 0x00050000 @ ARMv5TE .word 0x00050000 @ ARMv5TE
.word 0x000f0000 .word 0x000f0000
b __armv4_cache_on b __armv4_cache_on
......
...@@ -10,6 +10,10 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y ...@@ -10,6 +10,10 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
# Code maturity level options # Code maturity level options
# #
CONFIG_EXPERIMENTAL=y CONFIG_EXPERIMENTAL=y
# CONFIG_CLEAN_COMPILE is not set
# CONFIG_STANDALONE is not set
CONFIG_BROKEN=y
CONFIG_BROKEN_ON_SMP=y
# #
# General setup # General setup
...@@ -19,6 +23,14 @@ CONFIG_SYSVIPC=y ...@@ -19,6 +23,14 @@ CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y CONFIG_SYSCTL=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
# #
# Loadable module support # Loadable module support
...@@ -35,7 +47,6 @@ CONFIG_KMOD=y ...@@ -35,7 +47,6 @@ CONFIG_KMOD=y
# #
# CONFIG_ARCH_ADIFCC is not set # CONFIG_ARCH_ADIFCC is not set
# CONFIG_ARCH_ANAKIN is not set # CONFIG_ARCH_ANAKIN is not set
# CONFIG_ARCH_ARCA5K is not set
# CONFIG_ARCH_CLPS7500 is not set # CONFIG_ARCH_CLPS7500 is not set
# CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_CO285 is not set
...@@ -44,20 +55,12 @@ CONFIG_KMOD=y ...@@ -44,20 +55,12 @@ CONFIG_KMOD=y
# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_CAMELOT is not set
# CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_IOP310 is not set # CONFIG_ARCH_IOP3XX is not set
# CONFIG_ARCH_L7200 is not set # CONFIG_ARCH_L7200 is not set
# CONFIG_ARCH_RPC is not set # CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set # CONFIG_ARCH_SA1100 is not set
CONFIG_ARCH_SHARK=y CONFIG_ARCH_SHARK=y
#
# Archimedes/A5000 Implementations
#
#
# Archimedes/A5000 Implementations (select only ONE)
#
# #
# CLPS711X/EP721X Implementations # CLPS711X/EP721X Implementations
# #
...@@ -71,11 +74,13 @@ CONFIG_ARCH_SHARK=y ...@@ -71,11 +74,13 @@ CONFIG_ARCH_SHARK=y
# #
# #
# IOP310 Implementation Options # IOP3xx Implementation Options
# #
# CONFIG_ARCH_IOP310 is not set
# CONFIG_ARCH_IOP321 is not set
# #
# IOP310 Chipset Features # IOP3xx Chipset Features
# #
# #
...@@ -92,6 +97,10 @@ CONFIG_ARCH_SHARK=y ...@@ -92,6 +97,10 @@ CONFIG_ARCH_SHARK=y
CONFIG_CPU_32=y CONFIG_CPU_32=y
CONFIG_CPU_SA110=y CONFIG_CPU_SA110=y
CONFIG_CPU_32v4=y CONFIG_CPU_32v4=y
CONFIG_CPU_ABRT_EV4=y
CONFIG_CPU_CACHE_V4WB=y
CONFIG_CPU_COPY_V4WB=y
CONFIG_CPU_TLB_V4WB=y
# #
# Processor Features # Processor Features
...@@ -116,11 +125,13 @@ CONFIG_PCI_LEGACY_PROC=y ...@@ -116,11 +125,13 @@ CONFIG_PCI_LEGACY_PROC=y
# #
# CONFIG_FPE_NWFPE is not set # CONFIG_FPE_NWFPE is not set
CONFIG_FPE_FASTFPE=y CONFIG_FPE_FASTFPE=y
CONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not set
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_ELF=y CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set # CONFIG_BINFMT_MISC is not set
#
# Generic Driver Options
#
# CONFIG_PM is not set # CONFIG_PM is not set
# CONFIG_PREEMPT is not set # CONFIG_PREEMPT is not set
# CONFIG_ARTHUR is not set # CONFIG_ARTHUR is not set
...@@ -164,6 +175,7 @@ CONFIG_PARPORT_PC_CML1=y ...@@ -164,6 +175,7 @@ CONFIG_PARPORT_PC_CML1=y
# CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_RAM_SIZE=4096
...@@ -185,7 +197,6 @@ CONFIG_NET=y ...@@ -185,7 +197,6 @@ CONFIG_NET=y
CONFIG_PACKET=y CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set # CONFIG_PACKET_MMAP is not set
# CONFIG_NETLINK_DEV is not set # CONFIG_NETLINK_DEV is not set
# CONFIG_NETFILTER is not set
CONFIG_UNIX=y CONFIG_UNIX=y
# CONFIG_NET_KEY is not set # CONFIG_NET_KEY is not set
CONFIG_INET=y CONFIG_INET=y
...@@ -199,8 +210,11 @@ CONFIG_INET=y ...@@ -199,8 +210,11 @@ CONFIG_INET=y
# CONFIG_SYN_COOKIES is not set # CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set # CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set # CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_IPV6 is not set # CONFIG_IPV6 is not set
# CONFIG_XFRM_USER is not set # CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
# CONFIG_NETFILTER is not set
# #
# SCTP Configuration (EXPERIMENTAL) # SCTP Configuration (EXPERIMENTAL)
...@@ -209,9 +223,9 @@ CONFIG_IPV6_SCTP__=y ...@@ -209,9 +223,9 @@ CONFIG_IPV6_SCTP__=y
# CONFIG_IP_SCTP is not set # CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set # CONFIG_ATM is not set
# CONFIG_VLAN_8021Q is not set # CONFIG_VLAN_8021Q is not set
# CONFIG_LLC is not set # CONFIG_LLC2 is not set
# CONFIG_DECNET is not set # CONFIG_IPX is not set
# CONFIG_BRIDGE is not set # CONFIG_ATALK is not set
# CONFIG_X25 is not set # CONFIG_X25 is not set
# CONFIG_LAPB is not set # CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set # CONFIG_NET_DIVERT is not set
...@@ -239,13 +253,13 @@ CONFIG_NETDEVICES=y ...@@ -239,13 +253,13 @@ CONFIG_NETDEVICES=y
# CONFIG_BONDING is not set # CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set # CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set # CONFIG_TUN is not set
# CONFIG_ETHERTAP is not set
# #
# Ethernet (10 or 100Mbit) # Ethernet (10 or 100Mbit)
# #
CONFIG_NET_ETHERNET=y CONFIG_NET_ETHERNET=y
# CONFIG_MII is not set # CONFIG_MII is not set
# CONFIG_SMC91X is not set
# CONFIG_HAPPYMEAL is not set # CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set # CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set # CONFIG_NET_VENDOR_3COM is not set
...@@ -294,8 +308,14 @@ CONFIG_CS89x0=y ...@@ -294,8 +308,14 @@ CONFIG_CS89x0=y
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set # CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SK98LIN is not set # CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set # CONFIG_TIGON3 is not set
#
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
# CONFIG_FDDI is not set # CONFIG_FDDI is not set
# CONFIG_HIPPI is not set # CONFIG_HIPPI is not set
# CONFIG_PLIP is not set # CONFIG_PLIP is not set
...@@ -306,10 +326,12 @@ CONFIG_CS89x0=y ...@@ -306,10 +326,12 @@ CONFIG_CS89x0=y
# Wireless LAN (non-hamradio) # Wireless LAN (non-hamradio)
# #
# CONFIG_NET_RADIO is not set # CONFIG_NET_RADIO is not set
# CONFIG_HOSTAP is not set
# #
# Token Ring devices (depends on LLC=y) # Token Ring devices
# #
# CONFIG_TR is not set
# CONFIG_NET_FC is not set # CONFIG_NET_FC is not set
# CONFIG_RCPCI is not set # CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set # CONFIG_SHAPER is not set
...@@ -319,48 +341,55 @@ CONFIG_CS89x0=y ...@@ -319,48 +341,55 @@ CONFIG_CS89x0=y
# #
# CONFIG_WAN is not set # CONFIG_WAN is not set
#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set
# #
# IrDA (infrared) support # IrDA (infrared) support
# #
# CONFIG_IRDA is not set # CONFIG_IRDA is not set
# #
# Amateur Radio support # Bluetooth support
# #
# CONFIG_HAMRADIO is not set # CONFIG_BT is not set
# #
# ATA/ATAPI/MFM/RLL support # ATA/ATAPI/MFM/RLL support
# #
CONFIG_IDE=y CONFIG_IDE=y
#
# IDE, ATA and ATAPI Block devices
#
CONFIG_BLK_DEV_IDE=y CONFIG_BLK_DEV_IDE=y
# #
# Please see Documentation/ide.txt for help/info on IDE drives # Please see Documentation/ide.txt for help/info on IDE drives
# #
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_IDEDISK=y CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set # CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_IDEDISK_STROKE is not set # CONFIG_IDEDISK_STROKE is not set
CONFIG_BLK_DEV_IDECD=y CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
CONFIG_BLK_DEV_IDEFLOPPY=y CONFIG_BLK_DEV_IDEFLOPPY=y
# CONFIG_BLK_DEV_IDESCSI is not set # CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set # CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
# #
# IDE chipset support/bugfixes # IDE chipset support/bugfixes
# #
# CONFIG_BLK_DEV_IDEPCI is not set # CONFIG_BLK_DEV_IDEPCI is not set
# CONFIG_IDE_CHIPSETS is not set # CONFIG_IDE_CHIPSETS is not set
# CONFIG_BLK_DEV_IDEDMA is not set
# CONFIG_IDEDMA_AUTO is not set
# CONFIG_DMA_NONPCI is not set
# CONFIG_BLK_DEV_HD is not set
# #
# SCSI support # SCSI device support
# #
CONFIG_SCSI=m CONFIG_SCSI=m
CONFIG_SCSI_PROC_FS=y
# #
# SCSI support type (disk, tape, CD-ROM) # SCSI support type (disk, tape, CD-ROM)
...@@ -395,7 +424,6 @@ CONFIG_CHR_DEV_SG=m ...@@ -395,7 +424,6 @@ CONFIG_CHR_DEV_SG=m
# CONFIG_SCSI_DPT_I2O is not set # CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set # CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set # CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_MEGARAID is not set # CONFIG_SCSI_MEGARAID is not set
# CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_CPQFCTS is not set # CONFIG_SCSI_CPQFCTS is not set
...@@ -407,15 +435,13 @@ CONFIG_CHR_DEV_SG=m ...@@ -407,15 +435,13 @@ CONFIG_CHR_DEV_SG=m
# CONFIG_SCSI_GDTH is not set # CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set # CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set # CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_PPA is not set # CONFIG_SCSI_PPA is not set
# CONFIG_SCSI_IMM is not set # CONFIG_SCSI_IMM is not set
# CONFIG_SCSI_NCR53C406A is not set # CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_NCR53C7xx is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set # CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_NCR53C8XX is not set
# CONFIG_SCSI_SYM53C8XX is not set
# CONFIG_SCSI_PAS16 is not set # CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PCI2000 is not set # CONFIG_SCSI_PCI2000 is not set
# CONFIG_SCSI_PCI2220I is not set # CONFIG_SCSI_PCI2220I is not set
...@@ -425,6 +451,7 @@ CONFIG_CHR_DEV_SG=m ...@@ -425,6 +451,7 @@ CONFIG_CHR_DEV_SG=m
# CONFIG_SCSI_QLOGIC_FC is not set # CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_1280 is not set # CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_SYM53C416 is not set # CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set # CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set # CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set # CONFIG_SCSI_U14_34F is not set
...@@ -486,6 +513,7 @@ CONFIG_KEYBOARD_ATKBD=y ...@@ -486,6 +513,7 @@ CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_PS2_SYNAPTICS is not set
# CONFIG_MOUSE_SERIAL is not set # CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_INPORT is not set # CONFIG_MOUSE_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set # CONFIG_MOUSE_LOGIBM is not set
...@@ -497,7 +525,9 @@ CONFIG_MOUSE_PS2=y ...@@ -497,7 +525,9 @@ CONFIG_MOUSE_PS2=y
# #
# Character devices # Character devices
# #
# CONFIG_VT is not set CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_SERIAL_NONSTANDARD is not set
# #
...@@ -505,6 +535,7 @@ CONFIG_MOUSE_PS2=y ...@@ -505,6 +535,7 @@ CONFIG_MOUSE_PS2=y
# #
CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set # CONFIG_SERIAL_8250_EXTENDED is not set
# #
...@@ -526,12 +557,17 @@ CONFIG_PRINTER=m ...@@ -526,12 +557,17 @@ CONFIG_PRINTER=m
# CONFIG_I2C is not set # CONFIG_I2C is not set
# #
# I2C Hardware Sensors Mainboard support # I2C Algorithms
#
#
# I2C Hardware Bus support
# #
# #
# I2C Hardware Sensors Chip support # I2C Hardware Sensors Chip support
# #
# CONFIG_I2C_SENSOR is not set
# #
# L3 serial bus support # L3 serial bus support
...@@ -566,13 +602,22 @@ CONFIG_RTC=y ...@@ -566,13 +602,22 @@ CONFIG_RTC=y
# CONFIG_AGP is not set # CONFIG_AGP is not set
# CONFIG_DRM is not set # CONFIG_DRM is not set
# CONFIG_RAW_DRIVER is not set # CONFIG_RAW_DRIVER is not set
# CONFIG_HANGCHECK_TIMER is not set
# #
# Multimedia devices # Multimedia devices
# #
# CONFIG_VIDEO_DEV is not set # CONFIG_VIDEO_DEV is not set
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
#
# MMC/SD Card support
#
# CONFIG_MMC is not set
# #
# File systems # File systems
# #
...@@ -581,6 +626,7 @@ CONFIG_EXT2_FS=y ...@@ -581,6 +626,7 @@ CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set # CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=y CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set # CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y CONFIG_FS_MBCACHE=y
...@@ -618,6 +664,8 @@ CONFIG_DEVFS_MOUNT=y ...@@ -618,6 +664,8 @@ CONFIG_DEVFS_MOUNT=y
# CONFIG_DEVFS_DEBUG is not set # CONFIG_DEVFS_DEBUG is not set
# CONFIG_DEVPTS_FS is not set # CONFIG_DEVPTS_FS is not set
# CONFIG_TMPFS is not set # CONFIG_TMPFS is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y CONFIG_RAMFS=y
# #
...@@ -642,6 +690,7 @@ CONFIG_RAMFS=y ...@@ -642,6 +690,7 @@ CONFIG_RAMFS=y
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
# CONFIG_NFS_V3 is not set # CONFIG_NFS_V3 is not set
# CONFIG_NFS_V4 is not set # CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
# CONFIG_NFSD is not set # CONFIG_NFSD is not set
CONFIG_LOCKD=y CONFIG_LOCKD=y
# CONFIG_EXPORTFS is not set # CONFIG_EXPORTFS is not set
...@@ -739,10 +788,25 @@ CONFIG_FB_CYBER2000=y ...@@ -739,10 +788,25 @@ CONFIG_FB_CYBER2000=y
# CONFIG_FB_PM3 is not set # CONFIG_FB_PM3 is not set
# CONFIG_FB_VIRTUAL is not set # CONFIG_FB_VIRTUAL is not set
#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_PCI_CONSOLE=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# #
# Logo configuration # Logo configuration
# #
# CONFIG_LOGO is not set CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
# #
# Sound # Sound
...@@ -769,7 +833,6 @@ CONFIG_SOUND_PRIME=m ...@@ -769,7 +833,6 @@ CONFIG_SOUND_PRIME=m
# CONFIG_SOUND_MAESTRO is not set # CONFIG_SOUND_MAESTRO is not set
# CONFIG_SOUND_MAESTRO3 is not set # CONFIG_SOUND_MAESTRO3 is not set
# CONFIG_SOUND_ICH is not set # CONFIG_SOUND_ICH is not set
# CONFIG_SOUND_RME96XX is not set
# CONFIG_SOUND_SONICVIBES is not set # CONFIG_SOUND_SONICVIBES is not set
# CONFIG_SOUND_TRIDENT is not set # CONFIG_SOUND_TRIDENT is not set
# CONFIG_SOUND_MSNDCLAS is not set # CONFIG_SOUND_MSNDCLAS is not set
...@@ -779,6 +842,7 @@ CONFIG_SOUND_OSS=m ...@@ -779,6 +842,7 @@ CONFIG_SOUND_OSS=m
# CONFIG_SOUND_TRACEINIT is not set # CONFIG_SOUND_TRACEINIT is not set
# CONFIG_SOUND_DMAP is not set # CONFIG_SOUND_DMAP is not set
# CONFIG_SOUND_AD1816 is not set # CONFIG_SOUND_AD1816 is not set
# CONFIG_SOUND_AD1889 is not set
# CONFIG_SOUND_SGALAXY is not set # CONFIG_SOUND_SGALAXY is not set
CONFIG_SOUND_ADLIB=m CONFIG_SOUND_ADLIB=m
# CONFIG_SOUND_ACI_MIXER is not set # CONFIG_SOUND_ACI_MIXER is not set
...@@ -803,6 +867,11 @@ CONFIG_SOUND_SB=m ...@@ -803,6 +867,11 @@ CONFIG_SOUND_SB=m
# CONFIG_SOUND_YMFPCI is not set # CONFIG_SOUND_YMFPCI is not set
# CONFIG_SOUND_UART6850 is not set # CONFIG_SOUND_UART6850 is not set
# CONFIG_SOUND_AEDSP16 is not set # CONFIG_SOUND_AEDSP16 is not set
# CONFIG_SOUND_KAHLUA is not set
# CONFIG_SOUND_ALI5455 is not set
# CONFIG_SOUND_FORTE is not set
# CONFIG_SOUND_RME96XX is not set
# CONFIG_SOUND_AD1980 is not set
# #
# Misc devices # Misc devices
...@@ -822,11 +891,7 @@ CONFIG_SOUND_SB=m ...@@ -822,11 +891,7 @@ CONFIG_SOUND_SB=m
# USB support # USB support
# #
# CONFIG_USB is not set # CONFIG_USB is not set
# CONFIG_USB_GADGET is not set
#
# Bluetooth support
#
# CONFIG_BT is not set
# #
# Kernel hacking # Kernel hacking
......
...@@ -68,8 +68,8 @@ extern void __umoddi3(void); ...@@ -68,8 +68,8 @@ extern void __umoddi3(void);
extern void __udivmoddi4(void); extern void __udivmoddi4(void);
extern void __udivsi3(void); extern void __udivsi3(void);
extern void __umodsi3(void); extern void __umodsi3(void);
extern void __do_div64(void);
extern void abort(void); extern void abort(void);
extern void do_div64(void);
extern void ret_from_exception(void); extern void ret_from_exception(void);
extern void fpundefinstr(void); extern void fpundefinstr(void);
...@@ -223,7 +223,7 @@ EXPORT_SYMBOL_NOVERS(__umoddi3); ...@@ -223,7 +223,7 @@ EXPORT_SYMBOL_NOVERS(__umoddi3);
EXPORT_SYMBOL_NOVERS(__udivmoddi4); EXPORT_SYMBOL_NOVERS(__udivmoddi4);
EXPORT_SYMBOL_NOVERS(__udivsi3); EXPORT_SYMBOL_NOVERS(__udivsi3);
EXPORT_SYMBOL_NOVERS(__umodsi3); EXPORT_SYMBOL_NOVERS(__umodsi3);
EXPORT_SYMBOL_NOVERS(do_div64); EXPORT_SYMBOL_NOVERS(__do_div64);
/* bitops */ /* bitops */
EXPORT_SYMBOL(_set_bit_le); EXPORT_SYMBOL(_set_bit_le);
......
/*
* linux/arch/arm/lib/div64.S
*
* Optimized computation of 64-bit dividend / 32-bit divisor
*
* Author: Nicolas Pitre
* Created: Oct 5, 2003
* Copyright: Monta Vista Software, Inc.
*
* 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/linkage.h> #include <linux/linkage.h>
#ifndef __ARMEB__ #ifdef __ARMEB__
ql .req r0 @ quotient low #define xh r0
qh .req r1 @ quotient high #define xl r1
onl .req r0 @ original dividend low #define yh r2
onh .req r1 @ original dividend high #define yl r3
nl .req r4 @ dividend low
nh .req r5 @ dividend high
res .req r4 @ result
#else #else
ql .req r1 #define xl r0
qh .req r0 #define xh r1
onl .req r1 #define yl r2
onh .req r0 #define yh r3
nl .req r5
nh .req r4
res .req r5
#endif #endif
dl .req r3 @ divisor low /*
dh .req r2 @ divsor high * __do_div64: perform a division with 64-bit dividend and 32-bit divisor.
*
* Note: Calling convention is totally non standard for optimal code.
ENTRY(do_div64) * This is meant to be used by do_div() from include/asm/div64.h only.
stmfd sp!, {r4, r5, lr} *
mov nl, onl * Input parameters:
movs nh, onh @ if high bits are zero * xh-xl = dividend (clobbered)
movne lr, #33 * r4 = divisor (preserved)
moveq lr, #1 @ only divide low bits *
moveq nh, onl * Output values:
* yh-yl = result
tst dh, #0x80000000 * xh = remainder
bne 2f *
1: cmp nh, dh * Clobbered regs: xl, ip
bls 2f */
add lr, lr, #1
movs dh, dh, lsl #1 @ left justify disor ENTRY(__do_div64)
bpl 1b
@ Test for easy paths first.
2: movs nh, onh subs ip, r4, #1
moveq dl, dh bls 9f @ divisor is 0 or 1
moveq dh, #0 tst ip, r4
movne dl, #0 beq 8f @ divisor is power of 2
mov ql, #0
mov qh, #0 @ See if we need to handle upper 32-bit result.
3: subs ip, nl, dl @ trial subtraction cmp xh, r4
sbcs ip, nh, dh mov yh, #0
movcs nh, ip @ only update if successful blo 3f
subcs nl, nl, dl @ (repeat the subtraction)
adcs ql, ql, ql @ C=1 if successful, shift into @ Align divisor with upper part of dividend.
adc qh, qh, qh @ quotient @ The aligned divisor is stored in yl preserving the original.
movs dh, dh, lsr #1 @ shift base high part right @ The bit position is stored in ip.
mov dl, dl, rrx @ shift base low part right
subs lr, lr, #1 #if __LINUX_ARM_ARCH__ >= 5
bne 3b
clz yl, r4
mov r2, res clz ip, xh
ldmfd sp!, {r4, r5, pc} sub yl, yl, ip
mov ip, #1
mov ip, ip, lsl yl
mov yl, r4, lsl yl
#else
mov yl, r4
mov ip, #1
1: cmp yl, #0x80000000
cmpcc yl, xh
movcc yl, yl, lsl #1
movcc ip, ip, lsl #1
bcc 1b
#endif
@ The division loop for needed upper bit positions.
@ Break out early if dividend reaches 0.
2: cmp xh, yl
orrcs yh, yh, ip
subcss xh, xh, yl
movnes ip, ip, lsr #1
mov yl, yl, lsr #1
bne 2b
@ See if we need to handle lower 32-bit result.
3: cmp xh, #0
mov yl, #0
cmpeq xl, r4
movlo xh, xl
movlo pc, lr
@ The division loop for lower bit positions.
@ Here we shift remainer bits leftwards rather than moving the
@ divisor for comparisons, considering the carry-out bit as well.
mov ip, #0x80000000
4: movs xl, xl, lsl #1
adcs xh, xh, xh
beq 6f
cmpcc xh, r4
5: orrcs yl, yl, ip
subcs xh, xh, r4
movs ip, ip, lsr #1
bne 4b
mov pc, lr
@ The top part of remainder became zero. If carry is set
@ (the 33th bit) this is a false positive so resume the loop.
@ Otherwise, if lower part is also null then we're done.
6: bcs 5b
cmp xl, #0
moveq pc, lr
@ We still have remainer bits in the low part. Bring them up.
#if __LINUX_ARM_ARCH__ >= 5
clz xh, xl @ we know xh is zero here so...
add xh, xh, #1
mov xl, xl, lsl xh
mov ip, ip, lsr xh
#else
7: movs xl, xl, lsl #1
mov ip, ip, lsr #1
bcc 7b
#endif
@ Current remainder is now 1. It's worthless to compare with
@ divisor at this point since divisor can't be smaller than 3 here.
@ If possible, branch for another shift in the division loop.
@ If no bit position left then we're done.
movs ip, ip, lsr #1
mov xh, #1
bne 4b
mov pc, lr
8: @ Division by a power of 2: determine what that divisor order is
@ then simply shift values around
#if __LINUX_ARM_ARCH__ >= 5
clz ip, r4
rsb ip, ip, #31
#else
mov yl, r4
cmp r4, #(1 << 16)
mov ip, #0
movhs yl, yl, lsr #16
movhs ip, #16
cmp yl, #(1 << 8)
movhs yl, yl, lsr #8
addhs ip, ip, #8
cmp yl, #(1 << 4)
movhs yl, yl, lsr #4
addhs ip, ip, #4
cmp yl, #(1 << 2)
addhi ip, ip, #3
addls ip, ip, yl, lsr #1
#endif
mov yh, xh, lsr ip
mov yl, xl, lsr ip
rsb ip, ip, #32
orr yl, yl, xh, lsl ip
mov xh, xl, lsl ip
mov xh, xh, lsr ip
mov pc, lr
@ eq -> division by 1: obvious enough...
9: moveq yl, xl
moveq yh, xh
moveq xh, #0
moveq pc, lr
@ Division by 0:
str lr, [sp, #-4]!
bl __div0
@ as wrong as it could be...
mov yl, #0
mov yh, #0
mov xh, #0
ldr pc, [sp], #4
...@@ -40,6 +40,7 @@ static unsigned long clps711x_gettimeoffset(void) ...@@ -40,6 +40,7 @@ static unsigned long clps711x_gettimeoffset(void)
void __init clps711x_setup_timer(void) void __init clps711x_setup_timer(void)
{ {
struct timespec tv;
unsigned int syscon; unsigned int syscon;
gettimeoffset = clps711x_gettimeoffset; gettimeoffset = clps711x_gettimeoffset;
...@@ -50,5 +51,7 @@ void __init clps711x_setup_timer(void) ...@@ -50,5 +51,7 @@ void __init clps711x_setup_timer(void)
clps_writel(LATCH-1, TC2D); /* 512kHz / 100Hz - 1 */ clps_writel(LATCH-1, TC2D); /* 512kHz / 100Hz - 1 */
xtime.tv_sec = clps_readl(RTCDR); tv.tv_nsec = 0;
tv.tv_sec = clps_readl(RTCDR);
do_settimeofday(&tv);
} }
...@@ -126,7 +126,7 @@ static void __init ap_init_irq(void) ...@@ -126,7 +126,7 @@ static void __init ap_init_irq(void)
writel(-1, VA_IC_BASE + FIQ_ENABLE_CLEAR); writel(-1, VA_IC_BASE + FIQ_ENABLE_CLEAR);
for (i = 0; i < NR_IRQS; i++) { for (i = 0; i < NR_IRQS; i++) {
if (((1 << i) && INTEGRATOR_SC_VALID_INT) != 0) { if (((1 << i) & INTEGRATOR_SC_VALID_INT) != 0) {
set_irq_chip(i, &sc_chip); set_irq_chip(i, &sc_chip);
set_irq_handler(i, do_level_IRQ); set_irq_handler(i, do_level_IRQ);
set_irq_flags(i, IRQF_VALID | IRQF_PROBE); set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
......
...@@ -32,14 +32,14 @@ ENTRY(v3_flush_kern_cache_all) ...@@ -32,14 +32,14 @@ ENTRY(v3_flush_kern_cache_all)
/* FALLTHROUGH */ /* FALLTHROUGH */
/* /*
* flush_user_cache_range(start, end, vm_flags) * flush_user_cache_range(start, end, flags)
* *
* Invalidate a range of cache entries in the specified * Invalidate a range of cache entries in the specified
* address space. * address space.
* *
* - start - start address (may not be aligned) * - start - start address (may not be aligned)
* - end - end address (exclusive, may not be aligned) * - end - end address (exclusive, may not be aligned)
* - vma - vma_area_struct describing address space * - flags - vma_area_struct flags describing address space
*/ */
ENTRY(v3_flush_user_cache_range) ENTRY(v3_flush_user_cache_range)
mov ip, #0 mov ip, #0
......
...@@ -34,14 +34,14 @@ ENTRY(v4_flush_kern_cache_all) ...@@ -34,14 +34,14 @@ ENTRY(v4_flush_kern_cache_all)
mov pc, lr mov pc, lr
/* /*
* flush_user_cache_range(start, end, vma) * flush_user_cache_range(start, end, flags)
* *
* Invalidate a range of cache entries in the specified * Invalidate a range of cache entries in the specified
* address space. * address space.
* *
* - start - start address (may not be aligned) * - start - start address (may not be aligned)
* - end - end address (exclusive, may not be aligned) * - end - end address (exclusive, may not be aligned)
* - vma - vma_area_struct describing address space * - flags - vma_area_struct flags describing address space
*/ */
ENTRY(v4_flush_user_cache_range) ENTRY(v4_flush_user_cache_range)
mov ip, #0 mov ip, #0
......
...@@ -72,14 +72,14 @@ __flush_whole_cache: ...@@ -72,14 +72,14 @@ __flush_whole_cache:
mov pc, lr mov pc, lr
/* /*
* flush_user_cache_range(start, end, vm_flags) * flush_user_cache_range(start, end, flags)
* *
* Invalidate a range of cache entries in the specified * Invalidate a range of cache entries in the specified
* address space. * address space.
* *
* - start - start address (inclusive, page aligned) * - start - start address (inclusive, page aligned)
* - end - end address (exclusive, page aligned) * - end - end address (exclusive, page aligned)
* - vma - vma_area_struct describing address space * - flags - vma_area_struct flags describing address space
*/ */
ENTRY(v4wb_flush_user_cache_range) ENTRY(v4wb_flush_user_cache_range)
sub r3, r1, r0 @ calculate total size sub r3, r1, r0 @ calculate total size
......
...@@ -64,14 +64,14 @@ __flush_whole_cache: ...@@ -64,14 +64,14 @@ __flush_whole_cache:
mov pc, lr mov pc, lr
/* /*
* flush_user_cache_range(start, end, vm_flags) * flush_user_cache_range(start, end, flags)
* *
* Clean and invalidate a range of cache entries in the specified * Clean and invalidate a range of cache entries in the specified
* address space. * address space.
* *
* - start - start address (inclusive, page aligned) * - start - start address (inclusive, page aligned)
* - end - end address (exclusive, page aligned) * - end - end address (exclusive, page aligned)
* - vma - vma_area_struct describing address space * - flags - vma_area_struct flags describing address space
*/ */
ENTRY(v4wt_flush_user_cache_range) ENTRY(v4wt_flush_user_cache_range)
sub r3, r1, r0 @ calculate total size sub r3, r1, r0 @ calculate total size
......
...@@ -280,13 +280,15 @@ static int ioc_client_reg(struct i2c_client *client) ...@@ -280,13 +280,15 @@ static int ioc_client_reg(struct i2c_client *client)
client->addr == 0x50) { client->addr == 0x50) {
struct rtc_tm rtctm; struct rtc_tm rtctm;
unsigned int year; unsigned int year;
struct timespec tv;
rtc_client = client; rtc_client = client;
get_rtc_time(&rtctm, &year); get_rtc_time(&rtctm, &year);
xtime.tv_nsec = rtctm.cs * 10000000; tv.tv_nsec = rtctm.cs * 10000000;
xtime.tv_sec = mktime(year, rtctm.mon, rtctm.mday, tv.tv_sec = mktime(year, rtctm.mon, rtctm.mday,
rtctm.hours, rtctm.mins, rtctm.secs); rtctm.hours, rtctm.mins, rtctm.secs);
do_settimeofday(&tv);
set_rtc = k_set_rtc_time; set_rtc = k_set_rtc_time;
} }
......
...@@ -243,6 +243,7 @@ void __init time_init(void) ...@@ -243,6 +243,7 @@ void __init time_init(void)
if ((CMOS_READ(RTC_REG_A) & 0x7f) == RTC_REF_CLCK_32KHZ && if ((CMOS_READ(RTC_REG_A) & 0x7f) == RTC_REF_CLCK_32KHZ &&
CMOS_READ(RTC_REG_B) == reg_b) { CMOS_READ(RTC_REG_B) == reg_b) {
struct timespec tv;
/* /*
* We have a RTC. Check the battery * We have a RTC. Check the battery
...@@ -250,7 +251,9 @@ void __init time_init(void) ...@@ -250,7 +251,9 @@ void __init time_init(void)
if ((reg_d & 0x80) == 0) if ((reg_d & 0x80) == 0)
printk(KERN_WARNING "RTC: *** warning: CMOS battery bad\n"); printk(KERN_WARNING "RTC: *** warning: CMOS battery bad\n");
xtime.tv_sec = get_isa_cmos_time(); tv.tv_nsec = 0;
tv.tv_sec = get_isa_cmos_time();
do_settimeofday(&tv);
set_rtc = set_isa_cmos_time; set_rtc = set_isa_cmos_time;
} else } else
rtc_base = 0; rtc_base = 0;
......
...@@ -73,9 +73,15 @@ pxa_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -73,9 +73,15 @@ pxa_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
void __init time_init(void) void __init time_init(void)
{ {
struct timespec tv;
gettimeoffset = pxa_gettimeoffset; gettimeoffset = pxa_gettimeoffset;
set_rtc = pxa_set_rtc; set_rtc = pxa_set_rtc;
xtime.tv_sec = pxa_get_rtc_time();
tv.tv_nsec = 0;
tv.tv_sec = pxa_get_rtc_time();
do_settimeofday(&tv);
timer_irq.handler = pxa_timer_interrupt; timer_irq.handler = pxa_timer_interrupt;
OSMR0 = 0; /* set initial match at 0 */ OSMR0 = 0; /* set initial match at 0 */
OSSR = 0xf; /* clear status on all timers */ OSSR = 0xf; /* clear status on all timers */
......
...@@ -92,9 +92,15 @@ sa1100_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -92,9 +92,15 @@ sa1100_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
void __init time_init(void) void __init time_init(void)
{ {
struct timespec tv;
gettimeoffset = sa1100_gettimeoffset; gettimeoffset = sa1100_gettimeoffset;
set_rtc = sa1100_set_rtc; set_rtc = sa1100_set_rtc;
xtime.tv_sec = sa1100_get_rtc_time();
tv.tv.nsec = 0;
tv.tv_sec = sa1100_get_rtc_time();
do_settimeofday(&tv);
timer_irq.handler = sa1100_timer_interrupt; timer_irq.handler = sa1100_timer_interrupt;
OSMR0 = 0; /* set initial match at 0 */ OSMR0 = 0; /* set initial match at 0 */
OSSR = 0xf; /* clear status on all timers */ OSSR = 0xf; /* clear status on all timers */
......
...@@ -34,8 +34,6 @@ void __init time_init(void) ...@@ -34,8 +34,6 @@ void __init time_init(void)
outb(HZ_TIME & 0xff, 0x40); /* LSB of count */ outb(HZ_TIME & 0xff, 0x40); /* LSB of count */
outb(HZ_TIME >> 8, 0x40); outb(HZ_TIME >> 8, 0x40);
xtime.tv_sec = 0;
timer_irq.handler = timer_interrupt; timer_irq.handler = timer_interrupt;
setup_irq(IRQ_TIMER, &timer_irq); setup_irq(IRQ_TIMER, &timer_irq);
} }
#ifndef __ASM_ARM_DIV64 #ifndef __ASM_ARM_DIV64
#define __ASM_ARM_DIV64 #define __ASM_ARM_DIV64
/* We're not 64-bit, but... */ /*
* The semantics of do_div() are:
*
* uint32_t do_div(uint64_t *n, uint32_t base)
* {
* uint32_t remainder = *n % base;
* *n = *n / base;
* return remainder;
* }
*
* In other words, a 64-bit dividend with a 32-bit divisor producing
* a 64-bit result and a 32-bit remainder. To accomplish this optimally
* we call a special __do_div64 helper with completely non standard
* calling convention for arguments and results (beware).
*/
#ifdef __ARMEB__
#define __xh "r0"
#define __xl "r1"
#else
#define __xl "r0"
#define __xh "r1"
#endif
#define do_div(n,base) \ #define do_div(n,base) \
({ \ ({ \
register int __res asm("r2") = base; \ register unsigned int __base asm("r4") = base; \
register unsigned long long __n asm("r0") = n; \ register unsigned long long __n asm("r0") = n; \
asm("bl do_div64" \ register unsigned long long __res asm("r2"); \
: "=r" (__n), "=r" (__res) \ register unsigned int __rem asm(__xh); \
: "0" (__n), "1" (__res) \ asm("bl __do_div64" \
: "r3", "ip", "lr", "cc"); \ : "=r" (__rem), "=r" (__res) \
n = __n; \ : "r" (__n), "r" (__base) \
__res; \ : "ip", "lr", "cc"); \
n = __res; \
__rem; \
}) })
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment