2007-08-29 16:29:24

by John Sigler

[permalink] [raw]
Subject: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.22.1-rt9
# Wed Aug 29 18:02:24 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_NONIRQ_WAKEUP=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_QUICKLIST=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# Code maturity level options
#
# CONFIG_EXPERIMENTAL is not set
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32

#
# General setup
#
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
# CONFIG_SWAP is not set
# CONFIG_SYSVIPC is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_KMOD is not set

#
# Block layer
#
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_AS is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"

#
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
# CONFIG_NO_HZ is not set
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
# CONFIG_SMP is not set
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
CONFIG_MPENTIUMIII=y
# CONFIG_MPENTIUMM is not set
# CONFIG_MCORE2 is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_X86_XADD=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_ASM_SEMAPHORES=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_MODEL=4
# CONFIG_HPET_TIMER is not set
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT_DESKTOP is not set
CONFIG_PREEMPT_RT=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_SOFTIRQS=y
CONFIG_PREEMPT_HARDIRQS=y
CONFIG_PREEMPT_BKL=y
# CONFIG_CLASSIC_RCU is not set
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
CONFIG_X86_UP_APIC=y
# CONFIG_X86_UP_IOAPIC is not set
CONFIG_X86_LOCAL_APIC=y
# CONFIG_X86_MCE is not set
# CONFIG_VM86 is not set
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set

#
# Firmware Drivers
#
# CONFIG_EDD is not set
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_NR_QUICK=1
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
CONFIG_REGPARM=y
# CONFIG_SECCOMP is not set
CONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=100
# CONFIG_KEXEC is not set
CONFIG_PHYSICAL_START=0x100000
CONFIG_PHYSICAL_ALIGN=0x100000
# CONFIG_COMPAT_VDSO is not set

#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
# CONFIG_PM_SYSFS_DEPRECATED is not set

#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
# CONFIG_ACPI_SLEEP is not set
# CONFIG_ACPI_PROCFS is not set
# CONFIG_ACPI_AC is not set
# CONFIG_ACPI_BATTERY is not set
CONFIG_ACPI_BUTTON=y
# CONFIG_ACPI_FAN is not set
# CONFIG_ACPI_PROCESSOR is not set
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
# CONFIG_APM is not set

#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set

#
# CPU idle PM support
#
# CONFIG_CPU_IDLE is not set

#
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
# CONFIG_PCIEPORTBUS is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
CONFIG_ISA_DMA_API=y
# CONFIG_ISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set

#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set

#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE 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_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER is not set
# CONFIG_BRIDGE is not set
CONFIG_VLAN_8021Q=y
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK 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

#
# Wireless
#
# CONFIG_CFG80211 is not set
# CONFIG_WIRELESS_EXT is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
# CONFIG_SYS_HYPERVISOR is not set

#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set

#
# Parallel port support
#
# CONFIG_PARPORT is not set

#
# Plug and Play support
#
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set

#
# Protocols
#
CONFIG_PNPACPI=y

#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set

#
# Misc devices
#
# CONFIG_PHANTOM is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
CONFIG_IDE=y
CONFIG_IDE_MAX_HWIFS=4
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDECD is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDEACPI is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_PROC_FS is not set

#
# IDE chipset support/bugfixes
#
# CONFIG_IDE_GENERIC is not set
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
CONFIG_IDEPCI_PCIBUS_ORDER=y
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_GENERIC is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
# CONFIG_IDEDMA_ONLYDISK is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_CS5535 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_JMICRON is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_IT8213 is not set
# CONFIG_BLK_DEV_IT821X is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
CONFIG_BLK_DEV_VIA82CXXX=y
# CONFIG_BLK_DEV_TC86C001 is not set
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
# CONFIG_BLK_DEV_HD is not set

#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
# CONFIG_SCSI is not set
# CONFIG_SCSI_NETLINK is not set
# CONFIG_ATA 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
#

#
# An alternative FireWire stack is available with EXPERIMENTAL=y
#
# CONFIG_IEEE1394 is not set

#
# I2O device support
#
# CONFIG_I2O is not set
# CONFIG_MACINTOSH_DRIVERS is not set

#
# 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
# CONFIG_NET_SB1000 is not set
# CONFIG_ARCNET is not set
# CONFIG_PHYLIB is not set

#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set

#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_DGRS is not set
CONFIG_EEPRO100=y
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
CONFIG_NATSEMI=y
# CONFIG_NE2K_PCI is not set
# CONFIG_8139TOO is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set

#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# Telephony Support
#
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set

#
# 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_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

#
# Hardware I/O ports
#
# CONFIG_SERIO is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
# CONFIG_VT is not set
# CONFIG_SERIAL_NONSTANDARD is not set

#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256

#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
CONFIG_RTC=y
# CONFIG_RTC_HISTOGRAM is not set
# CONFIG_BLOCKER is not set
# CONFIG_LPPTEST is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_AGP is not set
# CONFIG_DRM is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_GPIO is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not set
# CONFIG_HANGCHECK_TIMER is not set

#
# TPM devices
#
# CONFIG_RMEM is not set
# CONFIG_ALLOC_RTSJ_MEM is not set
CONFIG_DEVPORT=y
# 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
# CONFIG_HWMON is not set

#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set

#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set
# CONFIG_DAB is not set

#
# Graphics support
#
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set
# CONFIG_FB is not set

#
# Sound
#
# CONFIG_SOUND is not set

#
# HID Devices
#
# CONFIG_HID is not set

#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
# CONFIG_USB is not set

#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#

#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set

#
# LED devices
#
# CONFIG_NEW_LEDS is not set

#
# LED drivers
#

#
# LED Triggers
#

#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set

#
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
#

#
# Real Time Clock
#

#
# DMA Engine support
#
# CONFIG_DMA_ENGINE is not set

#
# DMA Clients
#

#
# DMA Devices
#

#
# Virtualization
#

#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
# CONFIG_EXT3_FS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
# CONFIG_XFS_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_INOTIFY is not set
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=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_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y

#
# Miscellaneous filesystems
#
# CONFIG_HFSPLUS_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 is not set
# CONFIG_NFSD is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y

#
# Native Language Support
#
# CONFIG_NLS is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
# CONFIG_ENABLE_MUST_CHECK is not set
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_KERNEL is not set
# CONFIG_EVENT_TRACE is not set
# CONFIG_FUNCTION_TRACE is not set
# CONFIG_WAKEUP_TIMING is not set
# CONFIG_CRITICAL_PREEMPT_TIMING is not set
# CONFIG_CRITICAL_IRQSOFF_TIMING is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
CONFIG_EARLY_PRINTK=y
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y
CONFIG_DOUBLEFAULT=y

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set

#
# Cryptographic options
#
# CONFIG_CRYPTO is not set

#
# Library routines
#
CONFIG_BITREVERSE=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_KTIME_SCALAR=y


Attachments:
dmesg (8.69 kB)
config-2.6.22.1-rt9-adlink-mini (18.05 kB)
Download all attachments

2007-08-29 16:38:44

by Alan

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }


> Standards:
> Likely used: 1

Prehistory

> LBA, IORDY not likely

No DMA, nothing above PIO2

> Buffer type: 0002: dual port, multi-sector
> Buffer size: 1.0kB bytes avail on r/w long: 4
> Cannot perform double-word IO

Can't even do double word I/O

The messages with old IDE should be harmless and the current libata IDE
should drive it politely (I debugged a problem the same hardware showed
up for someone else).

Basically your dinosaur is working correctly.

Alan

2007-08-30 08:17:37

by John Sigler

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

Alan Cox wrote:

> John Sigler wrote:
>
>> Standards:
>> Likely used: 1
>
> Prehistory

The tragic bit is that we were sold similar DOMs in 2007...
(It's probably time to change suppliers?)

>> LBA, IORDY not likely
>
> No DMA, nothing above PIO2

OK. (Grumble)

>> Buffer type: 0002: dual port, multi-sector
>> Buffer size: 1.0kB bytes avail on r/w long: 4
>> Cannot perform double-word IO
>
> Can't even do double word I/O

Double word is 32 bits, right? Isn't "Cannot perform double-word IO" in
contradiction with the following statements?

IO_support = 1 (32-bit)

Buffer size: 1.0kB bytes avail on r/w long: 4

(Assuming an 8-bit byte, 4 bytes = 32 bits)

> The messages with old IDE should be harmless and the current libata IDE
> should drive it politely (I debugged a problem the same hardware showed
> up for someone else).

When you say "the current libata IDE" do you mean PATA_VIA (in my case)?
I've avoided this driver because it is marked EXPERIMENTAL. Would there
be any benefit in using it over the legacy ATA/MFM/RLL driver?

> Basically your dinosaur is working correctly.

What do the warnings mean? :-)

Regards.

2007-08-30 12:30:48

by John Sigler

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

Petr Vandrovec wrote:

> John Sigler wrote:
>
>> Alan Cox wrote:
>>
>>> Basically your dinosaur is working correctly.
>>
>> What do the warnings mean? :-)
>
> That your drive does not support set transfer mode/speed command at all,
> or that value which kernel tried is not supported by the drive...
>
> I would guess that some contractor wrote firmware for device for PQI in
> one day for $100, and before that somebody else designed ATA-SD bridge
> for PQI for another $100.
>
> I guess that these two printk()s happen because drive claims to support
> pio0,1,2 - so Linux tries pio2, drive refuses, Linux tries pio1, drive
> refuses, and finally as pio0 is default, that one gets used. Which is
> more or less confirmed by having no '*' sign in front of any pio - with
> "real" drives you should see '*' in front of one of listed dma/pio modes.
>
> You should ask reseller how they can ship drive which does not conform
> to any ATA standard...

I took drivers/ide/pci/via82cxxx.c and sprinkled ENTER/EXIT printk's.
http://lxr.linux.no/source/drivers/ide/pci/via82cxxx.c

via82cxxx_tune_drive() and via82cxxx_ide_dma_check() both call
via_set_drive() which calls ide_config_drive_speed().

http://lxr.linux.no/source/drivers/ide/ide-iops.c#L769

if (error)
{
(void) ide_dump_status(drive, "set_drive_speed_status", stat);
printk(KERN_INFO "EXIT %s error\n", __func__);
return error;
}

Does someone know why error is not set to 0?


Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: IDE controller at PCI slot 0000:00:07.1
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci0000:00:07.1
ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
Probing IDE interface ide0...
hda: PQI IDE DiskOnModule, ATA DISK drive
ENTER via82cxxx_tune_drive
ENTER via_set_drive
ENTER ide_config_drive_speed
hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
hda: set_drive_speed_status: error=0x04 { DriveStatusError }
EXIT ide_config_drive_speed error
ENTER via_set_speed
EXIT via_set_speed
EXIT via_set_drive
EXIT via82cxxx_tune_drive pio == 255
ENTER via82cxxx_ide_dma_check
ENTER via_set_drive
ENTER ide_config_drive_speed
hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
hda: set_drive_speed_status: error=0x04 { DriveStatusError }
EXIT ide_config_drive_speed error
ENTER via_set_speed
EXIT via_set_speed
EXIT via_set_drive
EXIT via82cxxx_ide_dma_check
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hda: max request size: 128KiB
hda: 128000 sectors (65 MB) w/1KiB Cache, CHS=500/8/32
hda: hda1 hda2

Regards.

2007-08-30 13:57:26

by Alan

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

> Buffer size: 1.0kB bytes avail on r/w long: 4
>
> (Assuming an 8-bit byte, 4 bytes = 32 bits)

R/W Long is a different thing.

> When you say "the current libata IDE" do you mean PATA_VIA (in my case)?
> I've avoided this driver because it is marked EXPERIMENTAL. Would there
> be any benefit in using it over the legacy ATA/MFM/RLL driver?

Just less warning messages

> > Basically your dinosaur is working correctly.
>
> What do the warnings mean? :-)

Old IDE wrongly tries to issue a set features command for PIO2 to the
device. It rejects it and old IDE carries on happy

2007-08-30 15:11:19

by John Sigler

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

John Sigler wrote:

> Petr Vandrovec wrote:
>
>> John Sigler wrote:
>>
>>> Alan Cox wrote:
>>>
>>>> Basically your dinosaur is working correctly.
>>>
>>> What do the warnings mean? :-)
>>
>> That your drive does not support set transfer mode/speed command at
>> all, or that value which kernel tried is not supported by the drive...
>>
>> I would guess that some contractor wrote firmware for device for PQI
>> in one day for $100, and before that somebody else designed ATA-SD
>> bridge for PQI for another $100.
>>
>> I guess that these two printk()s happen because drive claims to
>> support pio0,1,2 - so Linux tries pio2, drive refuses, Linux tries
>> pio1, drive refuses, and finally as pio0 is default, that one gets
>> used. Which is more or less confirmed by having no '*' sign in front
>> of any pio - with "real" drives you should see '*' in front of one of
>> listed dma/pio modes.
>>
>> You should ask reseller how they can ship drive which does not conform
>> to any ATA standard...
>
> I took drivers/ide/pci/via82cxxx.c and sprinkled ENTER/EXIT printk's.
> http://lxr.linux.no/source/drivers/ide/pci/via82cxxx.c
>
> via82cxxx_tune_drive() and via82cxxx_ide_dma_check() both call
> via_set_drive() which calls ide_config_drive_speed().
>
> http://lxr.linux.no/source/drivers/ide/ide-iops.c#L769
>
> if (error)
> {
> (void) ide_dump_status(drive, "set_drive_speed_status", stat);
> printk(KERN_INFO "EXIT %s error\n", __func__);
> return error;
> }
>
> Does someone know why error is not set to 0?
>
>
> Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
> ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> VP_IDE: IDE controller at PCI slot 0000:00:07.1
> VP_IDE: chipset revision 6
> VP_IDE: not 100% native mode: will probe irqs later
> VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci0000:00:07.1
> ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:pio, hdb:pio
> ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
> Probing IDE interface ide0...
> hda: PQI IDE DiskOnModule, ATA DISK drive
> ENTER via82cxxx_tune_drive
> ENTER via_set_drive
> ENTER ide_config_drive_speed
> hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
> hda: set_drive_speed_status: error=0x04 { DriveStatusError }
> EXIT ide_config_drive_speed error
> ENTER via_set_speed
> EXIT via_set_speed
> EXIT via_set_drive
> EXIT via82cxxx_tune_drive pio == 255
> ENTER via82cxxx_ide_dma_check
> ENTER via_set_drive
> ENTER ide_config_drive_speed
> hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
> hda: set_drive_speed_status: error=0x04 { DriveStatusError }
> EXIT ide_config_drive_speed error
> ENTER via_set_speed
> EXIT via_set_speed
> EXIT via_set_drive
> EXIT via82cxxx_ide_dma_check
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> Probing IDE interface ide1...
> hda: max request size: 128KiB
> hda: 128000 sectors (65 MB) w/1KiB Cache, CHS=500/8/32
> hda: hda1 hda2

According to my supplier, herre is the data sheet for the DOMs:
http://www.pqimemory.com/documents/domdata.pdf

PIO mode 2 is mentioned. Even DMA seems to be supported.
Or am I mistaken?

Could there be a bug in my south bridge?

Regards.

2007-08-30 23:23:32

by Alan

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

> PIO mode 2 is mentioned. Even DMA seems to be supported.
> Or am I mistaken?
>
> Could there be a bug in my south bridge?

Nothing there about DMA support.

The data sheet says the media can only do 4.1MB/second which is
consistent with only needing PIO2 (actually its far slower than PIO2)

2007-08-31 08:23:24

by John Sigler

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

Alan Cox wrote:

> John Sigler wrote:
>
>> http://www.pqimemory.com/documents/domdata.pdf
>> PIO mode 2 is mentioned. Even DMA seems to be supported.
>> Or am I mistaken?
>>
>> Could there be a bug in my south bridge?
>
> Nothing there about DMA support.

cf. document's page 12.

DMACK- (DMA acknowledge)

This signal shall be used by the host in response to DMARQ to initiate
DMA transfers.

DMARQ (DMA request)

This signal, used for DMA data transfer between host and device, shall
be asserted by the device when it is ready to transfer data to or from
the host. The direction of data transfer is controlled by DIOR- and
DIOW-. This signal is used in a handshake manner with DMACK- i.e., the
device shall wait until the host asserts DMACK- before negating DMARQ,
and re-asserting DMARQ if there is more data to transfer.

This line shall be released (high impedance state) whenever the device
is not selected or is selected and no DMA command is in progress. When
enabled by DMA transfer, it shall be driven high and low by the device.

When a DMA operation is enabled, CS0- and CS1- shall not be asserted and
transfers shall be 16-bits wide.

I took the above to mean the device was designed to support DMA.
Where did I err?

> The data sheet says the media can only do 4.1MB/second which is
> consistent with only needing PIO2 (actually it's far slower than PIO2)

Is such a slow speed typical of DOMs sold today?

Or do DOMs sold today support DMA bus mastering, much higher interface
rates, and much higher sustained throughput?

Regards.

2007-08-31 08:42:04

by John Sigler

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

Eric wrote:

> John Sigler wrote:
>
>> According to my supplier, herre is the data sheet for the DOMs:
>> http://www.pqimemory.com/documents/domdata.pdf
>>
>> PIO mode 2 is mentioned. Even DMA seems to be supported.
>> Or am I mistaken?
>
> Page 3 states max interface burst speed is 8.3MB/s in PIO2. I
> wouldn't assume it supports DMA

The reason I suspected DMA support is because I noticed the description
of DMACK- (DMA acknowledge) and DMARQ (DMA request).

> Based on the quoted media transfer rates (1.2MB/s write and 4.1MB/s
> read), DMA would buy you a transfer checksum but probably not much
> performance, unless your embedded application is CPU bound.

What I fear is that programmed I/O will tie up the CPU and add
non-deterministic latency to my real-time apps.

Suppose that an app is waiting for an acknowledgement from a PCI device
when the OS suddenly decides it is time to write 4 KB to disk. Typical
write rate is quoted as 1.2 MB/s i.e. the write would require at least
3.4 ms to complete.

My fear is that the entire transfer is done in a non-preemptible
critical section. In other words, my real-time app would be delayed
several milliseconds, which is unacceptable.

Am I mistaken?

Regards.

2007-08-31 11:42:11

by Alan

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

> When a DMA operation is enabled, CS0- and CS1- shall not be asserted and
> transfers shall be 16-bits wide.
>
> I took the above to mean the device was designed to support DMA.
> Where did I err?

The bus is specified for DMA, not the device.

>
> > The data sheet says the media can only do 4.1MB/second which is
> > consistent with only needing PIO2 (actually it's far slower than PIO2)
>
> Is such a slow speed typical of DOMs sold today?
>
> Or do DOMs sold today support DMA bus mastering, much higher interface
> rates, and much higher sustained throughput?

Most CF is pretty slow but the newer CF cards do DMA and are getting far
better.

And yes I'd expect your real time app to deal for 3 or 4mS

(Mind you you'll get 1mS normal operating worst cases off even a fast DMA
IDE disk)

2007-08-31 20:20:18

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

Alan Cox wrote:
>>Standards:
>> Likely used: 1

> Prehistory

>> LBA, IORDY not likely

> No DMA, nothing above PIO2

Cool! :-)

>> Buffer type: 0002: dual port, multi-sector
>> Buffer size: 1.0kB bytes avail on r/w long: 4
>> Cannot perform double-word IO

> Can't even do double word I/O

I have alwayas wondered what the drive's part in 32-bit I/O... this seems
to be controller's problem exclusively. B-)

WBR, Sergei

2007-09-01 15:35:46

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

Hello.

John Sigler wrote:

> When my system boots, I get several set_drive_speed_status errors.
> (Please see attached dmesg output.)

> Can someone explain what they mean? How do I get rid of them?

IDE code attempts to autotune PIO mode and fails at that because your
device is too old (or its manufacturer was too lazy) to support ATA-2 (or EIDE
from marketing PoV) is its full glory.

> Is there something I need to set in the config? or something I should
> not have set?

No, it just means that the IDE code is *too young* to support such
pre-EIDE devices. :-D

> Bonus question: is there some way to turn on DMA for hda?

> Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
> ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> VP_IDE: IDE controller at PCI slot 0000:00:07.1
> VP_IDE: chipset revision 6
> VP_IDE: not 100% native mode: will probe irqs later
> VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci0000:00:07.1
> ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:pio, hdb:pio
> ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
> Probing IDE interface ide0...
> hda: PQI IDE DiskOnModule, ATA DISK drive
> hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
> hda: set_drive_speed_status: error=0x04 { DriveStatusError }
> hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
> hda: set_drive_speed_status: error=0x04 { DriveStatusError }

That means that you've managed to find pre-EIDE/ATA hardware which doesn't
support setting arbitrary PIO modes. What's funny is that resently being
discussed here, so expect a patch RSN. :-)

> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> Probing IDE interface ide1...
> hda: max request size: 128KiB
> hda: 128000 sectors (65 MB) w/1KiB Cache, CHS=500/8/32
> hda: hda1 hda2

> # hdparm -v /dev/hda
>
> /dev/hda:
> multcount = 0 (off)
> IO_support = 1 (32-bit)
> unmaskirq = 1 (on)
> using_dma = 0 (off)
> keepsettings = 0 (off)
> readonly = 0 (off)
> readahead = 256 (on)
> geometry = 500/8/32, sectors = 128000, start = 0

Oh, interesting geometery, and the size too. :-)

> # hdparm -I /dev/hda
>
> /dev/hda:
>
> ATA device, with non-removable media
> Model Number: PQI IDE DiskOnModule

That explains it. :-)

> Serial Number: DOM6B00011677
> Firmware Revision: ra03.00e
> Standards:
> Likely used: 1
> Configuration:
> hard sectored
> not MFM encoded
> head switch time > 15us
> fixed drive
> disk xfer rate > 5Mbs
> Logical max current
> cylinders 500 500
> heads 8 8
> sectors/track 32 32
> --
> bytes/track: 0 bytes/sector: 528
> CHS current addressable sectors: 128000
> LBA user addressable sectors: 128000
> device size with M = 1024*1024: 62 MBytes
> device size with M = 1000*1000: 65 MBytes
> Capabilities:
> LBA, IORDY not likely
> Buffer type: 0002: dual port, multi-sector
> Buffer size: 1.0kB bytes avail on r/w long: 4
> Cannot perform double-word IO

That's generally not the device task (although there probably were IDE
devices with 32-bit data bus?.. :-O

> R/W multiple sector transfer: Max = 1 Current = 0
> DMA: not supported
> PIO: pio0 pio1 pio2

[the rest of logs didn't show anything particurarly interesting]

MBR, Sergei

2007-09-01 15:46:16

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

John Sigler wrote:

>>> What do the warnings mean? :-)

>> That your drive does not support set transfer mode/speed command at

Which is perfectly valid in the original ATA spec.

>> all, or that value which kernel tried is not supported by the drive...

They just should skip programming the drive in this case, and set its
default speed to the chipset.

>> I would guess that some contractor wrote firmware for device for PQI
>> in one day for $100, and before that somebody else designed ATA-SD
>> bridge for PQI for another $100.

Hehe.

>> I guess that these two printk()s happen because drive claims to
>> support pio0,1,2 - so Linux tries pio2, drive refuses, Linux tries

Which it shuldn't do since the drive only indicates its default mode (modes
0-2 aren't included in the PIO support mask -- there's only 3 and 4 there).

>> pio1, drive refuses, and finally as pio0 is default, that one gets
>> used. Which is more or less confirmed by having no '*' sign in front
>> of any pio - with "real" drives you should see '*' in front of one of
>> listed dma/pio modes.

>> You should ask reseller how they can ship drive which does not conform
>> to any ATA standard...

Doesn't it conform to ATA? :-)

> I took drivers/ide/pci/via82cxxx.c and sprinkled ENTER/EXIT printk's.
> http://lxr.linux.no/source/drivers/ide/pci/via82cxxx.c

> via82cxxx_tune_drive() and via82cxxx_ide_dma_check() both call
> via_set_drive() which calls ide_config_drive_speed().

> http://lxr.linux.no/source/drivers/ide/ide-iops.c#L769
>
> if (error)
> {
> (void) ide_dump_status(drive, "set_drive_speed_status", stat);
> printk(KERN_INFO "EXIT %s error\n", __func__);
> return error;
> }

> Does someone know why error is not set to 0?

Why it *does* set to one, you wanted to ask? Because it *does* get set
after a loop above exits.

> Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
> ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> VP_IDE: IDE controller at PCI slot 0000:00:07.1
> VP_IDE: chipset revision 6
> VP_IDE: not 100% native mode: will probe irqs later
> VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci0000:00:07.1
> ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:pio, hdb:pio
> ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
> Probing IDE interface ide0...
> hda: PQI IDE DiskOnModule, ATA DISK drive
> ENTER via82cxxx_tune_drive
> ENTER via_set_drive
> ENTER ide_config_drive_speed
> hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
> hda: set_drive_speed_status: error=0x04 { DriveStatusError }
> EXIT ide_config_drive_speed error
> ENTER via_set_speed
> EXIT via_set_speed
> EXIT via_set_drive
> EXIT via82cxxx_tune_drive pio == 255

255 is PIO auto-tuning request.

> ENTER via82cxxx_ide_dma_check
> ENTER via_set_drive
> ENTER ide_config_drive_speed
> hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
> hda: set_drive_speed_status: error=0x04 { DriveStatusError }

MBR, Sergei

2007-09-03 13:18:33

by John Sigler

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

Sergei Shtylyov wrote:

> John Sigler wrote:
>
>> When my system boots, I get several set_drive_speed_status errors.
>> (Please see attached dmesg output.)
>
>> Can someone explain what they mean? How do I get rid of them?
>
> IDE code attempts to autotune PIO mode and fails at that because your
> device is too old (or its manufacturer was too lazy) to support ATA-2
> (or EIDE from marketing PoV) is its full glory.

But the data sheet seems to state the drive supports PIO modes 1 and 2?

>> Is there something I need to set in the config? or something I should
>> not have set?
>
> No, it just means that the IDE code is *too young* to support such
> pre-EIDE devices. :-D

Wow! This is a device that was purchased only a few months ago...

>> Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
>> ide: Assuming 33MHz system bus speed for PIO modes; override with
>> idebus=xx
>> VP_IDE: IDE controller at PCI slot 0000:00:07.1
>> VP_IDE: chipset revision 6
>> VP_IDE: not 100% native mode: will probe irqs later
>> VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci0000:00:07.1
>> ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:pio, hdb:pio
>> ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
>> Probing IDE interface ide0...
>> hda: PQI IDE DiskOnModule, ATA DISK drive
>> hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete
>> Error }
>> hda: set_drive_speed_status: error=0x04 { DriveStatusError }
>> hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete
>> Error }
>> hda: set_drive_speed_status: error=0x04 { DriveStatusError }
>
> That means that you've managed to find pre-EIDE/ATA hardware which
> doesn't support setting arbitrary PIO modes. What's funny is that
> recently being discussed here, so expect a patch RSN. :-)

In 2.6.23?

Regards.

2007-09-03 13:38:05

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }

Hello.

John Sigler wrote:

>>> When my system boots, I get several set_drive_speed_status errors.
>>> (Please see attached dmesg output.)

>>> Can someone explain what they mean? How do I get rid of them?

>> IDE code attempts to autotune PIO mode and fails at that because
>> your device is too old (or its manufacturer was too lazy) to support
>> ATA-2 (or EIDE from marketing PoV) is its full glory.

> But the data sheet seems to state the drive supports PIO modes 1 and 2?

So what? PIO mode != ATA spec version. ATA-1 specified modes 0 thru 2.

>>> Is there something I need to set in the config? or something I should
>>> not have set?

>> No, it just means that the IDE code is *too young* to support such
>> pre-EIDE devices. :-D

> Wow! This is a device that was purchased only a few months ago...

I think we'll take care of it soon -- as I said we've discovered pre-EIDE
disk support lately, just before your report...

>>> Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
>>> ide: Assuming 33MHz system bus speed for PIO modes; override with
>>> idebus=xx
>>> VP_IDE: IDE controller at PCI slot 0000:00:07.1
>>> VP_IDE: chipset revision 6
>>> VP_IDE: not 100% native mode: will probe irqs later
>>> VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci0000:00:07.1
>>> ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:pio, hdb:pio
>>> ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
>>> Probing IDE interface ide0...
>>> hda: PQI IDE DiskOnModule, ATA DISK drive
>>> hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete
>>> Error }
>>> hda: set_drive_speed_status: error=0x04 { DriveStatusError }
>>> hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete
>>> Error }
>>> hda: set_drive_speed_status: error=0x04 { DriveStatusError }

>> That means that you've managed to find pre-EIDE/ATA hardware which
>> doesn't support setting arbitrary PIO modes. What's funny is that
>> recently being discussed here, so expect a patch RSN. :-)

> In 2.6.23?

Yeah, hopefully.
The mode interesting question is how to diable IORDY throrling on host if
a device doesn't have it connected (that was addressed by Alan in libata, IIRC.

> Regards.

MBR as well. :-)