* Latest PreemptRT patch error on imx35
@ 2009-08-31 9:43 Tim Sander
2009-08-31 11:48 ` Carsten Emde
2009-08-31 13:22 ` Uwe Kleine-König
0 siblings, 2 replies; 13+ messages in thread
From: Tim Sander @ 2009-08-31 9:43 UTC (permalink / raw)
To: linux-rt-users
[-- Attachment #1: Type: text/plain, Size: 9056 bytes --]
Hi
I just bootet 2.6.31-rc8-rt9 on the phycore-imx35 development board,
without any additional patches. The FEC Ethernet Controller went belly
up, but the system booted nevertheless. I tried cyclictest:
root@pmx:~ cyclictest -t1 -p 80 -n -i 10000 -l 10000
0.05 0.10 0.05 1/39 570
T: 0 ( 570) P:80 I:10000 C: 10000 Min: 14 Act: 20 Avg: 19 Max: 27
These are Numbers from an Idle Machine (no network), but they look really good.
They are much better than my last tests on the imx31 with an older preemptrt-kernel
(2.6.29) which had idle latencys up to 80µs.
Given the fact, that ftrace is enabled, this is really impressive progress!
If you want me to test s.t. let me know but i have only access to the hardware today or later
next week.
Best regards
Tim
U-Boot 2.0.0-rc8 (Jul 22 2009 - 14:32:02)
Board: Phytec phyCORE-i.MX35
mpll: 399000000 Hz
ppll: 300000000 Hz
arm: 99750000 Hz
gpt: 99750000 Hz
ahb: 199500000 Hz
ipg: 99750000 Hz
uart: 100000000 Hz
Malloc space: 0x87b00000 -> 0x87f00000 (size 4 MB)
Stack space : 0x87af8000 -> 0x87b00000 (size 32 kB)
running /env/bin/init...
Hit any key to stop autoboot: 0
Verifying Checksum ... OK
Image Name: Linux-2.6.31-rc8-rt9
Created: 2009-08-31 9:03:04 UTC
Data Size: 1738612 Bytes = 1.7 MB
Load Address: 80008000
Entry Point: 80008000
OK
commandline: jtag=on console=ttymxc0,115200 video=mx3fb:TX090 ip=172.19.169.71:172.19.169.15::255.255.0.0::: root=/dev/mtdblock3 rootfstype=jffs2 mtdparts=physmap-flash.0:256k(uboot)ro,128k(ubootenv),2048k(kernel),-(root);mxc_nand:
arch_number: 2072
Starting kernel ...
Uncompressing Linux............................................................................................................. done, booting the kernel.
Linux version 2.6.31-rc8-rt9 (sander@dose) (gcc version 4.3.2 (OSELAS.Toolchain-1.99.3) ) #1 PREEMPT RT Mon Aug 31 11:02:57 CEST 2009
CPU: ARMv6-compatible processor [4117b363] revision 3 (ARMv6TEJ), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: Phytec Phycore pcm043
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: jtag=on console=ttymxc0,115200 video=mx3fb:TX090 ip=172.19.169.71:172.19.169.15::255.255.0.0::: root=/dev/mtdblock3 rootfstype=jffs2 mtdparts=physmap-flash.0:256k(uboot)ro,128k(ubootenv),2048k(kernel),-(root);mxc_nand:
PID hash table entries: 512 (order: 9, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 126236KB available (3012K code, 300K data, 100K init, 0K highmem)
Real-Time Preemption Support (C) 2004-2007 Ingo Molnar
Preemptible RCU implementation.
NR_IRQS:180
MXC GPIO hardware
MXC IRQ initialized
Console: colour dummy device 80x30
Calibrating delay loop... 398.13 BogoMIPS (lpj=1990656)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
L2X0 cache controller enabled
bio: create slab <bio-0> at 0
SCSI subsystem initialized
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 4, 114688 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 246
alg: No test for stdrng (krng)
io scheduler noop registered (default)
Serial: IMX driver
imx-uart.0: ttymxc0 at MMIO 0x43f90000 (irq = 45) is a IMX
console [ttymxc0] enabled
imx-uart.1: ttymxc1 at MMIO 0x43f94000 (irq = 32) is a IMX
FEC Ethernet Driver
kernel BUG at kernel/rtmutex.c:807!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 805 [#1] PREEMPT
Modules linked in:
CPU: 0 Not tainted (2.6.31-rc8-rt9 #1)
PC is at __bug+0x1c/0x28
LR is at __bug+0x18/0x28
pc : [<c00250a4>] lr : [<c00250a0>] psr: 00000193
sp : c78b9ef0 ip : 0000097f fp : 00000002
r10: c7b41c24 r9 : c0335944 r8 : c0368690
r7 : 60000113 r6 : c01a4d8c r5 : c7b41800 r4 : c78b8000
r3 : 00000000 r2 : 00000001 r1 : 60000193 r0 : 0000002a
Flags: nzcv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 00c5387d Table: 80004008 DAC: 00000017
Process irq/57-fec (pid: 255, stack limit = 0xc78b8268)
Stack: (0xc78b9ef0 to 0xc78ba000)
9ee0: c78b8000 c0270844 00000000 60000113
9f00: c0368690 ffffffff c7b41c24 c027070c 00000000 c78b9f20 c0032160 c782001c
9f20: c793d1e0 00000017 00000000 c781fa40 c78b9f74 600e0000 c7b41800 c01a4d8c
9f40: c7b41c24 c0368690 c0335944 c0368694 00000002 c01a4f14 c03685a0 c7b41b20
9f60: c7b41800 c7b41c24 c0368690 c01a58ac c026f9b0 c033593c c78b8000 c79a64e0
9f80: c0335900 c79a6508 c033595c c0063238 00000000 00000032 c78b9fbc c7821e44
9fa0: c79a64e0 c00630fc 00000000 00000000 00000000 00000000 00000000 c004cd64
9fc0: 00000000 00000000 c78b9fc8 c78b9fc8 c78b9fd0 c78b9fd0 00000000 00000000
9fe0: c78b9fe0 c78b9fe0 00000000 00000000 00000000 c0022898 00000000 00000000
[<c00250a4>] (__bug+0x1c/0x28) from [<c0270844>] (rt_spin_lock_slowlock+0x230/0x244)
[<c0270844>] (rt_spin_lock_slowlock+0x230/0x244) from [<c01a4f14>] (mii_queue+0x20/0xb4)
[<c01a4f14>] (mii_queue+0x20/0xb4) from [<c01a58ac>] (fec_enet_interrupt+0x84/0x104)
[<c01a58ac>] (fec_enet_interrupt+0x84/0x104) from [<c0063238>] (irq_thread+0x13c/0x1cc)
[<c0063238>] (irq_thread+0x13c/0x1cc) from [<c004cd64>] (kthread+0x7c/0x84)
[<c004cd64>] (kthread+0x7c/0x84) from [<c0022898>] (kernel_thread_exit+0x0/0x8)
Code: e1a01000 e59f000c eb0927b1 e3a03000 (e5833000)
---[ end trace f246b7a2d7c43263 ]---
exiting task "irq/57-fec" (255) is an active IRQ thread (irq 57)
note: irq/57-fec[255] exited with preempt_count 1
physmap platform flash device: 02000000 at a0000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Using buffer write method
Using auto-unlock on power-up/resume
cfi_cmdset_0001: Erase suspend on write enabled
erase region 0: offset=0x0,size=0x8000,blocks=4
erase region 1: offset=0x20000,size=0x20000,blocks=255
mtd: partition size too small (0)
4 cmdlinepart partitions found on MTD device physmap-flash.0
Creating 4 MTD partitions on "physmap-flash.0":
0x000000000000-0x000000040000 : "uboot"
0x000000040000-0x000000060000 : "ubootenv"
0x000000060000-0x000000260000 : "kernel"
0x000000260000-0x000002000000 : "root"
mice: PS/2 mouse device common for all mice
Driver for 1-wire Dallas network protocol.
TCP cubic registered
can: controller area network core (rev 20090105 abi 8)
NET: Registered protocol family 29
can: raw protocol (rev 20090105)
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 3
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
IP-Config: Complete:
device=eth0, addr=172.19.169.71, mask=255.255.0.0, gw=255.255.255.255,
host=172.19.169.71, domain=, nis-domain=(none),
bootserver=172.19.169.15, rootserver=172.19.169.15, rootpath=
VFS: Mounted root (jffs2 filesystem) on device 31:3.
*****************************************************************************
* *
* REMINDER, the following debugging option is turned on in your .config: *
* *
* CONFIG_FTRACE *
* *
* it may increase runtime overhead and latencies. *
* *
*****************************************************************************
Freeing init memory: 100K
init started: BusyBox v1.13.4 (2009-08-24 12:38:53 CEST)
mounting filesystems...done.
running rc.d services...
starting udev
mounting tmpfs at /dev
creating static nodes
starting udevd...done
waiting for devices...done
syslogd starting
Starting system message bus: dbus.
generating rsa key...done
generating dsa key...done
starting sshd...done
Starting telnetd...
starting network interfaces...
ip: RTNETLINK answers: File exists
ifup: ignoring unknown interface can0
lighttpd: starting
lighttpd: done
loading modules
pmx login: root
[-- Attachment #2: config --]
[-- Type: text/plain, Size: 32603 bytes --]
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.31-rc8-rt9
#
CONFIG_ARM=y
CONFIG_HAVE_PWM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_MTD_XIP=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_CONSTRUCTORS=y
#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
#
# RCU Subsystem
#
# CONFIG_CLASSIC_RCU is not set
# CONFIG_TREE_RCU is not set
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_PREEMPT_RCU_TRACE is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_GROUP_SCHED is not set
# CONFIG_CGROUPS is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set
# CONFIG_NAMESPACES is not set
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_EMBEDDED=y
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
#
# Performance Counters
#
CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_COMPAT_BRK=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_CLK=y
#
# GCOV-based kernel profiling
#
# CONFIG_SLOW_WORK is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_BLOCK=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_INTEGRITY 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"
# CONFIG_FREEZER is not set
#
# System Type
#
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_GEMINI is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
CONFIG_ARCH_MXC=y
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP23XX is not set
# CONFIG_ARCH_IXP2000 is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_L7200 is not set
# CONFIG_ARCH_KIRKWOOD is not set
# CONFIG_ARCH_LOKI is not set
# CONFIG_ARCH_MV78XX0 is not set
# CONFIG_ARCH_ORION5X is not set
# CONFIG_ARCH_MMP is not set
# CONFIG_ARCH_KS8695 is not set
# CONFIG_ARCH_NS9XXX is not set
# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCH_PNX4008 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_MSM is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
# CONFIG_ARCH_DAVINCI is not set
# CONFIG_ARCH_OMAP is not set
#
# Freescale MXC Implementations
#
# CONFIG_ARCH_MX1 is not set
# CONFIG_ARCH_MX2 is not set
CONFIG_ARCH_MX3=y
CONFIG_ARCH_MX31=y
CONFIG_ARCH_MX35=y
#
# MX3 platforms:
#
# CONFIG_MACH_MX31ADS is not set
CONFIG_MACH_PCM037=y
# CONFIG_MACH_PCM037_EET is not set
# CONFIG_MACH_MX31LITE is not set
# CONFIG_MACH_MX31_3DS is not set
# CONFIG_MACH_MX31MOBOARD is not set
# CONFIG_MACH_MX31LILLY is not set
# CONFIG_MACH_QONG is not set
CONFIG_MACH_PCM043=y
# CONFIG_MACH_ARMADILLO5X0 is not set
# CONFIG_MACH_MX35_3DS is not set
# CONFIG_MXC_IRQ_PRIOR is not set
CONFIG_MXC_PWM=m
CONFIG_ARCH_HAS_RNGA=y
CONFIG_ARCH_MXC_IOMUX_V3=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_PABRT_NOIFAR=y
CONFIG_CPU_CACHE_V6=y
CONFIG_CPU_CACHE_VIPT=y
CONFIG_CPU_COPY_V6=y
CONFIG_CPU_TLB_V6=y
CONFIG_CPU_HAS_ASID=y
CONFIG_CPU_CP15=y
CONFIG_CPU_CP15_MMU=y
#
# Processor Features
#
# CONFIG_ARM_THUMB is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_BPREDICT_DISABLE is not set
CONFIG_OUTER_CACHE=y
CONFIG_CACHE_L2X0=y
# CONFIG_ARM_ERRATA_411920 is not set
CONFIG_COMMON_CLKDEV=y
#
# Bus support
#
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set
#
# Kernel Features
#
CONFIG_TICK_ONESHOT=y
# CONFIG_NO_HZ is not set
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
# 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_HZ=100
CONFIG_AEABI=y
# CONFIG_OABI_COMPAT is not set
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
# CONFIG_HIGHMEM 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_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_ALIGNMENT_TRAP=y
# CONFIG_UACCESS_WITH_MEMCPY is not set
#
# Boot options
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="console=ttySMX0,57600n8 ip=bootp root=/dev/nfs"
# CONFIG_XIP_KERNEL is not set
# CONFIG_KEXEC is not set
#
# CPU Power Management
#
# CONFIG_CPU_IDLE is not set
#
# Floating point emulation
#
#
# At least one emulation must be selected
#
CONFIG_VFP=y
#
# Userspace binary formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_HAVE_AOUT=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set
#
# Power management options
#
# CONFIG_PM is not set
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=m
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# 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_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IPV6 is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_NET_DSA 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_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_PHONET is not set
# CONFIG_IEEE802154 is not set
# CONFIG_NET_SCHED is not set
# CONFIG_DCB is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
CONFIG_CAN=y
CONFIG_CAN_RAW=y
# CONFIG_CAN_BCM is not set
#
# CAN Device Drivers
#
CONFIG_CAN_VCAN=m
CONFIG_CAN_DEV=m
# CONFIG_CAN_CALC_BITTIMING is not set
# CONFIG_CAN_SJA1000 is not set
# CONFIG_CAN_DEBUG_DEVICES is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_WIRELESS is not set
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=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
# CONFIG_SSFDC is not set
# CONFIG_MTD_OOPS 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=m
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_XIP is not set
#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
CONFIG_MTD_PHYSMAP=y
# CONFIG_MTD_PHYSMAP_COMPAT is not set
# CONFIG_MTD_ARM_INTEGRATOR is not set
CONFIG_MTD_PLATRAM=m
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
# 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
CONFIG_MTD_NAND=y
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
# CONFIG_MTD_NAND_GPIO is not set
CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
CONFIG_MTD_NAND_MXC=y
# CONFIG_MTD_ONENAND is not set
#
# LPDDR flash memory drivers
#
# CONFIG_MTD_LPDDR is not set
#
# UBI - Unsorted block images
#
# CONFIG_MTD_UBI is not set
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_MG_DISK is not set
CONFIG_MISC_DEVICES=y
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_ISL29003 is not set
# CONFIG_C2PORT is not set
#
# EEPROM support
#
CONFIG_EEPROM_AT24=y
# CONFIG_EEPROM_AT25 is not set
# CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
# CONFIG_SCSI_PROC_FS is not set
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
# CONFIG_CHR_DEV_SG is not set
# CONFIG_CHR_DEV_SCH is not set
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
# CONFIG_SCSI_LOWLEVEL is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
CONFIG_NETDEVICES=y
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_VETH is not set
CONFIG_PHYLIB=y
#
# MII PHY device drivers
#
# CONFIG_MARVELL_PHY is not set
# CONFIG_DAVICOM_PHY is not set
# CONFIG_QSEMI_PHY is not set
# CONFIG_LXT_PHY is not set
# CONFIG_CICADA_PHY is not set
# CONFIG_VITESSE_PHY is not set
CONFIG_SMSC_PHY=y
# CONFIG_BROADCOM_PHY is not set
# CONFIG_ICPLUS_PHY is not set
# CONFIG_REALTEK_PHY is not set
# CONFIG_NATIONAL_PHY is not set
# CONFIG_STE10XP is not set
# CONFIG_LSI_ET1011C_PHY is not set
# CONFIG_FIXED_PHY is not set
# CONFIG_MDIO_BITBANG is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_AX88796 is not set
CONFIG_SMC91X=y
# CONFIG_DM9000 is not set
# CONFIG_ENC28J60 is not set
# CONFIG_ETHOC is not set
CONFIG_SMC911X=y
CONFIG_SMSC911X=y
# CONFIG_DNET is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
# CONFIG_B44 is not set
# CONFIG_KS8842 is not set
# CONFIG_KS8851 is not set
CONFIG_FEC=y
# CONFIG_FEC2 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#
# CONFIG_WAN is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_ISDN 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=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_MOUSE_GPIO is not set
# CONFIG_MOUSE_SYNAPTICS_I2C is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_ADS7846 is not set
# CONFIG_TOUCHSCREEN_AD7877 is not set
# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
# CONFIG_TOUCHSCREEN_AD7879 is not set
# CONFIG_TOUCHSCREEN_EETI is not set
# CONFIG_TOUCHSCREEN_FUJITSU is not set
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_MK712 is not set
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
# CONFIG_TOUCHSCREEN_TSC2007 is not set
# CONFIG_TOUCHSCREEN_W90X900 is not set
# CONFIG_INPUT_MISC is not set
#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_SERPORT=y
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
CONFIG_DEVKMEM=y
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set
#
# Non-8250 serial port support
#
# CONFIG_SERIAL_MAX3100 is not set
CONFIG_SERIAL_IMX=y
CONFIG_SERIAL_IMX_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
CONFIG_HW_RANDOM=m
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
CONFIG_HW_RANDOM_MXC_RNGA=m
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
# CONFIG_I2C_CHARDEV is not set
# CONFIG_I2C_HELPER_AUTO is not set
#
# I2C Algorithms
#
# CONFIG_I2C_ALGOBIT is not set
# CONFIG_I2C_ALGOPCF is not set
# CONFIG_I2C_ALGOPCA is not set
#
# I2C Hardware Bus support
#
#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_DESIGNWARE is not set
# CONFIG_I2C_GPIO is not set
CONFIG_I2C_IMX=m
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_SIMTEC is not set
#
# External I2C/SMBus adapter drivers
#
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_TAOS_EVM is not set
#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_STUB is not set
#
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_PCF8575 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
CONFIG_SPI=y
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
CONFIG_SPI_BITBANG=y
# CONFIG_SPI_GPIO is not set
#
# SPI Protocol Masters
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
CONFIG_DEBUG_GPIO=y
CONFIG_GPIO_SYSFS=y
#
# Memory mapped GPIO expanders:
#
#
# I2C GPIO expanders:
#
# CONFIG_GPIO_MAX732X is not set
CONFIG_GPIO_PCA953X=m
# CONFIG_GPIO_PCF857X is not set
#
# PCI GPIO expanders:
#
#
# SPI GPIO expanders:
#
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
CONFIG_W1=y
#
# 1-wire Bus Masters
#
# CONFIG_W1_MASTER_DS2482 is not set
CONFIG_W1_MASTER_MXC=y
# CONFIG_W1_MASTER_DS1WM is not set
# CONFIG_W1_MASTER_GPIO is not set
#
# 1-wire Slaves
#
CONFIG_W1_SLAVE_THERM=m
CONFIG_W1_SLAVE_SMEM=m
# CONFIG_W1_SLAVE_DS2431 is not set
CONFIG_W1_SLAVE_DS2433=m
# CONFIG_W1_SLAVE_DS2433_CRC is not set
CONFIG_W1_SLAVE_DS2760=m
# CONFIG_W1_SLAVE_BQ27000 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set
# CONFIG_THERMAL is not set
# CONFIG_THERMAL_HWMON is not set
# CONFIG_WATCHDOG is not set
CONFIG_SSB_POSSIBLE=y
#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_ASIC3 is not set
# CONFIG_HTC_EGPIO is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_TPS65010 is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_MFD_T7L66XB is not set
# CONFIG_MFD_TC6387XB is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_AB3100_CORE is not set
# CONFIG_EZX_PCAP is not set
# CONFIG_MEDIA_SUPPORT is not set
#
# Graphics support
#
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
# CONFIG_FB is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
# CONFIG_SOUND is not set
# CONFIG_HID_SUPPORT is not set
# CONFIG_USB_SUPPORT is not set
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
#
# MMC/SD/SDIO Card Drivers
#
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_BOUNCE=y
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set
#
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
CONFIG_MMC_MXC=y
# CONFIG_MMC_SPI is not set
# CONFIG_MEMSTICK is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_NEW_LEDS is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
# CONFIG_RTC_DRV_TEST is not set
#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_X1205 is not set
CONFIG_RTC_DRV_PCF8563=y
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set
#
# SPI RTC drivers
#
# CONFIG_RTC_DRV_M41T94 is not set
# CONFIG_RTC_DRV_DS1305 is not set
# CONFIG_RTC_DRV_DS1390 is not set
# CONFIG_RTC_DRV_MAX6902 is not set
# CONFIG_RTC_DRV_R9701 is not set
# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_DS3234 is not set
#
# Platform RTC drivers
#
# CONFIG_RTC_DRV_CMOS is not set
# CONFIG_RTC_DRV_DS1286 is not set
# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T35 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_BQ4802 is not set
# CONFIG_RTC_DRV_V3020 is not set
#
# on-CPU RTC drivers
#
CONFIG_DMADEVICES=y
#
# DMA Devices
#
CONFIG_MX3_IPU=y
CONFIG_MX3_IPU_IRQS=4
CONFIG_DMA_ENGINE=y
#
# DMA Clients
#
# CONFIG_NET_DMA is not set
# CONFIG_ASYNC_TX_DMA is not set
# CONFIG_DMATEST is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_REGULATOR is not set
CONFIG_UIO=m
CONFIG_UIO_PDRV=m
CONFIG_UIO_PDRV_GENIRQ=m
# CONFIG_UIO_SMX is not set
# CONFIG_UIO_SERCOS3 is not set
# CONFIG_STAGING is not set
#
# File systems
#
CONFIG_EXT2_FS=m
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=m
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
# CONFIG_EXT4_FS is not set
CONFIG_JBD=m
CONFIG_FS_MBCACHE=m
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set
#
# Caches
#
# CONFIG_FSCACHE 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_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_CONFIGFS_FS is not set
CONFIG_MISC_FILESYSTEMS=y
# 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_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
# CONFIG_JFFS2_SUMMARY is not set
# CONFIG_JFFS2_FS_XATTR is not set
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
CONFIG_JFFS2_ZLIB=y
# CONFIG_JFFS2_LZO is not set
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
CONFIG_CRAMFS=y
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
CONFIG_MINIX_FS=y
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
# CONFIG_NFS_V4_1 is not set
CONFIG_ROOT_NFS=y
# CONFIG_NFSD is not set
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=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
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=m
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=m
# 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=m
# 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=m
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
# CONFIG_DETECT_SOFTLOCKUP is not set
# CONFIG_DETECT_HUNG_TASK is not set
# CONFIG_SCHED_DEBUG is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_WRITECOUNT is not set
# CONFIG_DEBUG_MEMORY_INIT is not set
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
# CONFIG_PAGE_POISONING is not set
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_TRACING_SUPPORT=y
CONFIG_FTRACE=y
# CONFIG_FUNCTION_TRACER is not set
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_PREEMPT_TRACER is not set
# CONFIG_SCHED_TRACER is not set
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
# CONFIG_BOOT_TRACER is not set
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
# CONFIG_STACK_TRACER is not set
# CONFIG_KMEMTRACE is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
# CONFIG_KMEMCHECK is not set
CONFIG_ARM_UNWIND=y
CONFIG_DEBUG_USER=y
CONFIG_DEBUG_ERRORS=y
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_LL is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_CRYPTO=y
#
# Crypto core or helper
#
# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_PCOMP=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
# CONFIG_CRYPTO_GF128MUL is not set
# CONFIG_CRYPTO_NULL is not set
CONFIG_CRYPTO_WORKQUEUE=y
# CONFIG_CRYPTO_CRYPTD is not set
# CONFIG_CRYPTO_AUTHENC is not set
# CONFIG_CRYPTO_TEST is not set
#
# Authenticated Encryption with Associated Data
#
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_SEQIV is not set
#
# Block modes
#
CONFIG_CRYPTO_CBC=y
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_CTS is not set
# CONFIG_CRYPTO_ECB is not set
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_PCBC is not set
# CONFIG_CRYPTO_XTS is not set
#
# Hash modes
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_RMD128 is not set
# CONFIG_CRYPTO_RMD160 is not set
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_WP512 is not set
#
# Ciphers
#
# CONFIG_CRYPTO_AES is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_TWOFISH is not set
#
# Compression
#
# CONFIG_CRYPTO_DEFLATE is not set
CONFIG_CRYPTO_ZLIB=m
# CONFIG_CRYPTO_LZO is not set
#
# Random Number Generation
#
# CONFIG_CRYPTO_ANSI_CPRNG is not set
CONFIG_CRYPTO_HW=y
# CONFIG_BINARY_PRINTF is not set
#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_RATIONAL=y
CONFIG_GENERIC_FIND_LAST_BIT=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_T10DIF is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_NLATTR=y
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Latest PreemptRT patch error on imx35
2009-08-31 9:43 Latest PreemptRT patch error on imx35 Tim Sander
@ 2009-08-31 11:48 ` Carsten Emde
2009-08-31 13:40 ` Tim Sander
2009-08-31 13:22 ` Uwe Kleine-König
1 sibling, 1 reply; 13+ messages in thread
From: Carsten Emde @ 2009-08-31 11:48 UTC (permalink / raw)
To: Tim Sander; +Cc: linux-rt-users
Tim,
> I just bootet 2.6.31-rc8-rt9 on the phycore-imx35 development board,
> without any additional patches. The FEC Ethernet Controller went belly
> up, but the system booted nevertheless. I tried cyclictest:
> root@pmx:~ cyclictest -t1 -p 80 -n -i 10000 -l 10000
As a role of thumb, the -i option is normally set to twice the expected
latency. If, for example you expect 100 us, set it to -i200. Your loop
end is then reached 50 times faster, or - what is much better - you may
specify 50 times more loops for a test of the same duration which
considerably increases the quality of your assessment. Normally,
however, you would probably wait for 100 million or even a billion loops.
> 0.05 0.10 0.05 1/39 570
> T: 0 ( 570) P:80 I:10000 C: 10000 Min: 14 Act: 20 Avg: 19 Max: 27
> These are Numbers from an Idle Machine (no network), but they look really good.
With an average of 19 and a maximum of 27, the result is probably not
very relevant. This indicates that the CPU was idle most of the time
when the wakeup occurred - every OS can do this. The challenge of an
RTOS is to wakeup in time also when the kernel is not idle, e.g. from
kernel or driver code while a lock is held. Therefore, adequate stress
tools must be running during a latency measurement.
> They are much better than my last tests on the imx31 with an older preemptrt-kernel
> (2.6.29) which had idle latencys up to 80µs.
> Given the fact, that ftrace is enabled, this is really impressive progress!
Please keep in mind that ftrace configured is not ftrace enabled. To
enable it, use cyclictest's -f option or execute
echo function >/sys/kernel/debug/tracing/current_tracer
echo 1 >/sys/kernel/debug/tracing/tracing_enabled
from command line.
I hope that this hasn't tempered your joy with your new hardware.
Carsten.
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Latest PreemptRT patch error on imx35
2009-08-31 9:43 Latest PreemptRT patch error on imx35 Tim Sander
2009-08-31 11:48 ` Carsten Emde
@ 2009-08-31 13:22 ` Uwe Kleine-König
2009-08-31 15:29 ` Tim Sander
` (2 more replies)
1 sibling, 3 replies; 13+ messages in thread
From: Uwe Kleine-König @ 2009-08-31 13:22 UTC (permalink / raw)
To: Tim Sander
Cc: linux-rt-users, David S. Miller, Sascha Hauer, Greg Ungerer,
netdev
Hello Tim,
> I just bootet 2.6.31-rc8-rt9 on the phycore-imx35 development board,
> without any additional patches. The FEC Ethernet Controller went belly
> up, but the system booted nevertheless. [...]
The problem is that &fep->mii_lock is taken twice. On a normal (i.e.
non-RT) UP system that doesn't hurt because spinlocks are noops (unless
you have some debugging code activated).
The exact problem is:
fec_enet_mii (this takes &fep->mii_lock) and calls mip->mii_func
which happens to be mii_queue. mii_queue in turn takes
&fep->mii_lock again.
The correct fix is probably to split mii_queue into a function that
locks and a function that does the actual work. And then use the latter
in fec_enet_mii.
I'd prepare a patch but my wife just called me to eat some cake :-)
So maybe later today or tomorrow, we'll see.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Latest PreemptRT patch error on imx35
2009-08-31 11:48 ` Carsten Emde
@ 2009-08-31 13:40 ` Tim Sander
0 siblings, 0 replies; 13+ messages in thread
From: Tim Sander @ 2009-08-31 13:40 UTC (permalink / raw)
To: linux-rt-users
Hi Carsten
> As a role of thumb, the -i option is normally set to twice the expected
> latency. If, for example you expect 100 us, set it to -i200. Your loop
> end is then reached 50 times faster, or - what is much better - you may
> specify 50 times more loops for a test of the same duration which
> considerably increases the quality of your assessment. Normally,
> however, you would probably wait for 100 million or even a billion loops.
Thanks for the tipps, will try more sane values once i have a booting system
again. Just testing non patched kernels.
> With an average of 19 and a maximum of 27, the result is probably not
> very relevant. This indicates that the CPU was idle most of the time
> when the wakeup occurred - every OS can do this. The challenge of an
> RTOS is to wakeup in time also when the kernel is not idle, e.g. from
> kernel or driver code while a lock is held. Therefore, adequate stress
> tools must be running during a latency measurement.
As i mentioned i did tests on a imx31 with an older premptRT patch, and even
Idle numbers where much worse. Probably due to the fact that arm support has
just trickled in and is now more mature?
> Please keep in mind that ftrace configured is not ftrace enabled. To
> enable it, use cyclictest's -f option or execute
> echo function >/sys/kernel/debug/tracing/current_tracer
> echo 1 >/sys/kernel/debug/tracing/tracing_enabled
> from command line.
Again with my older tests only enabling tracing functionality made a
significant performance hit. But well, its all moving in the right direction
:-).
Best regards
Tim
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Latest PreemptRT patch error on imx35
2009-08-31 13:22 ` Uwe Kleine-König
@ 2009-08-31 15:29 ` Tim Sander
2009-08-31 16:37 ` [PATCH] " Tim Sander
2009-09-02 9:14 ` [PATCH 1/2] fec: fix recursive locking of mii_lock Uwe Kleine-König
2 siblings, 0 replies; 13+ messages in thread
From: Tim Sander @ 2009-08-31 15:29 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: linux-rt-users, David S. Miller, Sascha Hauer, Greg Ungerer,
netdev
Hi
I just chrosschecked and build a kernel without a preempt RT patch. Two conclusions:
* A 2.6.31-rc8-rt9 patched kernel is booting under preempt-rt with FEC-Etheret failing as reported or not at all with the configuration: preempt or no-preemption (server).
* A 2.6.31-rc8 boots on the imx35 board.
Below a output dump of a failed boot of no-preemption 2.6.31-rc8-rt9 kernel
Best regards
Tim
Uncompressing Linux...................................................................................................... done, booting the kernel.
Linux version 2.6.31-rc8-rt9 (sander@dose) (gcc version 4.3.2 (OSELAS.Toolchain-1.99.3) ) #4 Mon Aug 31 13:33:49 CEST 2009
CPU: ARMv6-compatible processor [4117b363] revision 3 (ARMv6TEJ), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: Phytec Phycore pcm043
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: jtag=on console=ttymxc0,115200 video=mx3fb:TX090 ip=172.19.169.71:172.19.169.15::255.255.0.0::: root=/dev/mtdblock3 rootfstype=jffs2 mtdparts=physmap-flash.0:256k(uboot)ro,128k(ubootenv),2048k(kernel),-(root);mxc_nand:
PID hash table entries: 512 (order: 9, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 126492KB available (2824K code, 265K data, 96K init, 0K highmem)
Hierarchical RCU implementation.
NR_IRQS:180
MXC GPIO hardware
MXC IRQ initialized
Console: colour dummy device 80x30
Calibrating delay loop... 398.95 BogoMIPS (lpj=1994752)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
L2X0 cache controller enabled
bio: create slab <bio-0> at 0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 247
alg: No test for stdrng (krng)
io scheduler noop registered (default)
Serial: IMX driver
imx-uart.0: ttymxc0 at MMIO 0x43f90000 (irq = 45) is a IMX
console [ttymxc0] enabled
imx-uart.1: ttymxc1 at MMIO 0x43f94000 (irq = 32) is a IMX
FEC Ethernet Driver
fec: PHY @ 0x0, ID 0x00221512 -- unknown PHY!
physmap platform flash device: 02000000 at a0000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Using buffer write method
Using auto-unlock on power-up/resume
cfi_cmdset_0001: Erase suspend on write enabled
mtd: partition size too small (0)
4 cmdlinepart partitions found on MTD device physmap-flash.0
Creating 4 MTD partitions on "physmap-flash.0":
0x000000000000-0x000000040000 : "uboot"
0x000000040000-0x000000060000 : "ubootenv"
0x000000060000-0x000000260000 : "kernel"
0x000000260000-0x000002000000 : "root"
mice: PS/2 mouse device common for all mice
Driver for 1-wire Dallas network protocol.
cpuidle: using governor ladder
TCP cubic registered
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 3
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
IP-Config: Complete:
device=eth0, addr=172.19.169.71, mask=255.255.0.0, gw=255.255.255.255,
host=172.19.169.71, domain=, nis-domain=(none),
bootserver=172.19.169.15, rootserver=172.19.169.15, rootpath=
VFS: Mounted root (jffs2 filesystem) on device 31:3.
Freeing init memory: 96K
Unable to handle kernel paging request at virtual address de609800
pgd = c0004000
[de609800] *pgd=00000000
Internal error: Oops: 805 [#1]
Modules linked in:
CPU: 0 Not tainted (2.6.31-rc8-rt9 #4)
PC is at __lru_cache_add+0x5c/0x84
LR is at add_to_page_cache_lru+0xa4/0xa8
pc : [<c006ace0>] lr : [<c0062430>] psr: a0000013
sp : c7819d04 ip : 00000190 fp : c7407648
r10: c740764c r9 : 0000005b r8 : 00100100
r7 : 00200200 r6 : 00000000 r5 : 00000002 r4 : c0305bc8
r3 : c78c0ea9 r2 : c78c0eaa r1 : c0305d58 r0 : c0342760
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 00c5387d Table: 80004008 DAC: 00000017
Process swapper (pid: 1, stack limit = 0xc7818268)
Stack: (0xc7819d04 to 0xc781a000)
9d00: c0342760 00000000 00000004 0000005b c0342760 00000000 c0069ecc
9d20: c788c380 c7819d38 c74059b8 00000001 c787d9c0 00000004 c0344b78 c033c3f8
9d40: c7407700 00000003 00000000 00000000 00000000 c7407648 c787d9c0 c787d9c0
9d60: 00000000 c0069f4c 00000003 c787d9c0 00000000 c006a328 00000000 00000001
9d80: 00000001 c0062dfc 00000001 c042f580 c0061930 c7819df4 c7819e88 c74075b0
9da0: c787da00 00000001 ffffffff 00000fff 00000000 00000000 00000000 00000000
9dc0: 00000000 c7819ec8 c787d9c0 00000000 c7819df4 c0063bac c031c814 c031c5b0
9de0: 00000000 000000d0 c7819e88 00000001 c031cb60 00000000 00000080 c78821a0
9e00: 00000000 00000080 00000000 00000000 00000000 c7815cc0 c7819e38 c787d9c0
9e20: fffffdee c7819ec8 c7819f18 c0088754 00000000 00000000 00000004 00000000
9e40: 00000000 00000001 ffffffff c787d9c0 00000000 00000000 00000000 00000000
9e60: c7815cc0 00000000 00000000 00000000 00000000 c7815cc0 c0049aac c7819e7c
9e80: c7819e7c c008498c 00000000 00000000 c031c5b0 c79abde0 c78028f0 000f4240
9ea0: 00000080 c7815cc0 c02ff9d0 c7815cc0 00000000 00000000 ffffffff 00000000
9ec0: c7824000 c004e0f8 c78821a0 00000080 00000017 c787d9c0 c78821a0 c7819f18
9ee0: c78821a0 00000080 c7819f78 c02fb8c4 00000000 c00893c8 fffffeff ffffffff
9f00: c7819f18 00000000 000089ed c78821a0 c02fb838 c008dad8 00000000 00000000
9f20: c7819f78 c78821a0 c74075b0 c008dbfc c78821a0 00000080 00000004 c02fb848
9f40: c7818000 c008e36c 00000000 00000000 c7819f60 c02a2740 c02fb8c4 c02fb838
9f60: 00000000 00000000 00000000 00000000 00000000 c0023a70 00000000 00000000
9f80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9fa0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9fc0: 00000000 c02fb8c4 c031cbd4 00000000 00000000 c0020514 c001bfa8 c001bfa8
9fe0: c001bfa8 c0008464 00000000 00000000 00000000 c002179c fffbfef1 ddcfe9fd
[<c006ace0>] (__lru_cache_add+0x5c/0x84) from [<0000005b>] (0x5b)
Code: e794200c e2823001 e2822002 e3530008 (e7810102)
---[ end trace bb332da858e3d4c4 ]---
Kernel panic - not syncing: Attempted to kill init!
[<c0025618>] (unwind_backtrace+0x0/0xe4) from [<c0246bcc>] (panic+0x3c/0x120)
[<c0246bcc>] (panic+0x3c/0x120) from [<c003913c>] (forget_original_parent+0x240/0x278)
[<c003913c>] (forget_original_parent+0x240/0x278) from [<c0039188>] (exit_notify+0x14/0x154)
[<c0039188>] (exit_notify+0x14/0x154) from [<c00393c4>] (do_exit+0xfc/0x294)
[<c00393c4>] (do_exit+0xfc/0x294) from [<c0024488>] (die+0xac/0xbc)
[<c0024488>] (die+0xac/0xbc) from [<c0026670>] (__do_kernel_fault+0x70/0x80)
[<c0026670>] (__do_kernel_fault+0x70/0x80) from [<c00268b4>] (do_translation_fault+0x6c/0x80)
[<c00268b4>] (do_translation_fault+0x6c/0x80) from [<c0020254>] (do_DataAbort+0x34/0x98)
[<c0020254>] (do_DataAbort+0x34/0x98) from [<c0020a4c>] (__dabt_svc+0x4c/0x60)
Exception stack(0xc7819cb8 to 0xc7819d00)
9ca0: c0342760 c0305d58
9cc0: c78c0eaa c78c0ea9 c0305bc8 00000002 00000000 00200200 00100100 0000005b
9ce0: c740764c c7407648 00000190 c7819d04 c0062430 c006ace0 a0000013 ffffffff
[<c0020a4c>] (__dabt_svc+0x4c/0x60) from [<c006ace0>] (__lru_cache_add+0x5c/0x84)
[<c006ace0>] (__lru_cache_add+0x5c/0x84) from [<0000005b>] (0x5b)
__lru_cache_add+0x5c/0x84
LR is at add_to_page_cache_lru+0xa4/0xa8
pc : [<c006ace0>] lr : [<c0062430>] psr: a0000013
sp : c7819d04 ip : 00000190 fp : c7407648
r10: c740764c r9 : 0000005b r8 : 00100100
r7 : 00200200 r6 : 00000000 r5 : 00000002 r4 : c0305bc8
r3 : c78c0ea9 r2 : c78c0eaa r1 : c0305d58 r0 : c0342760
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 00c5387d Table: 80004008 DAC: 00000017
Process swapper (pid: 1, stack limit = 0xc7818268)
Stack: (0xc7819d04 to 0xc781a000)
9d00: c0342760 00000000 00000004 0000005b c0342760 00000000 c0069ecc
9d20: c788c380 c7819d38 c74059b8 00000001 c787d9c0 00000004 c0344b78 c033c3f8
9d40: c7407700 00000003 00000000 00000000 00000000 c7407648 c787d9c0 c787d9c0
9d60: 00000000 c0069f4c 00000003 c787d9c0 00000000 c006a328 00000000 00000001
9d80: 00000001 c0062dfc 00000001 c042f580 c0061930 c7819df4 c7819e88 c74075b0
9da0: c787da00 00000001 ffffffff 00000fff 00000000 00000000 00000000 00000000
9dc0: 00000000 c7819ec8 c787d9c0 00000000 c7819df4 c0063bac c031c814 c031c5b0
9de0: 00000000 000000d0 c7819e88 00000001 c031cb60 00000000 00000080 c78821a0
9e00: 00000000 00000080 00000000 00000000 00000000 c7815cc0 c7819e38 c787d9c0
9e20: fffffdee c7819ec8 c7819f18 c0088754 00000000 00000000 00000004 00000000
9e40: 00000000 00000001 ffffffff c787d9c0 00000000 00000000 00000000 00000000
9e60: c7815cc0 00000000 00000000 00000000 00000000 c7815cc0 c0049aac c7819e7c
9e80: c7819e7c c008498c 00000000 00000000 c031c5b0 c79abde0 c78028f0 000f4240
9ea0: 00000080 c7815cc0 c02ff9d0 c7815cc0 00000000 00000000 ffffffff 00000000
9ec0: c7824000 c004e0f8 c78821a0 00000080 00000017 c787d9c0 c78821a0 c7819f18
9ee0: c78821a0 00000080 c7819f78 c02fb8c4 00000000 c00893c8 fffffeff ffffffff
9f00: c7819f18 00000000 000089ed c78821a0 c02fb838 c008dad8 00000000 00000000
9f20: c7819f78 c78821a0 c74075b0 c008dbfc c78821a0 00000080 00000004 c02fb848
9f40: c7818000 c008e36c 00000000 00000000 c7819f60 c02a2740 c02fb8c4 c02fb838
9f60: 00000000 00000000 00000000 00000000 00000000 c0023a70 00000000 00000000
9f80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9fa0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9fc0: 00000000 c02fb8c4 c031cbd4 00000000 00000000 c0020514 c001bfa8 c001bfa8
9fe0: c001bfa8 c0008464 00000000 00000000 00000000 c002179c fffbfef1 ddcfe9fd
[<c006ace0>] (__lru_cache_add+0x5c/0x84) from [<0000005b>] (0x5b)
Code: e794200c e2823001 e2822002 e3530008 (e7810102)
---[ end trace bb332da858e3d4c4 ]---
Kernel panic - not syncing: Attempted to kill init!
[<c0025618>] (unwind_backtrace+0x0/0xe4) from [<c0246bcc>] (panic+0x3c/0x120)
[<c0246bcc>] (panic+0x3c/0x120) from [<c003913c>] (forget_original_parent+0x240/0x278)
[<c003913c>] (forget_original_parent+0x240/0x278) from [<c0039188>] (exit_notify+0x14/0x154)
[<c0039188>] (exit_notify+0x14/0x154) from [<c00393c4>] (do_exit+0xfc/0x294)
[<c00393c4>] (do_exit+0xfc/0x294) from [<c0024488>] (die+0xac/0xbc)
[<c0024488>] (die+0xac/0xbc) from [<c0026670>] (__do_kernel_fault+0x70/0x80)
[<c0026670>] (__do_kernel_fault+0x70/0x80) from [<c00268b4>] (do_translation_fault+0x6c/0x80)
[<c00268b4>] (do_translation_fault+0x6c/0x80) from [<c0020254>] (do_DataAbort+0x34/0x98)
[<c0020254>] (do_DataAbort+0x34/0x98) from [<c0020a4c>] (__dabt_svc+0x4c/0x60)
Exception stack(0xc7819cb8 to 0xc7819d00)
9ca0: c0342760 c0305d58
9cc0: c78c0eaa c78c0ea9 c0305bc8 00000002 00000000 00200200 00100100 0000005b
9ce0: c740764c c7407648 00000190 c7819d04 c0062430 c006ace0 a0000013 ffffffff
[<c0020a4c>] (__dabt_svc+0x4c/0x60) from [<c006ace0>] (__lru_cache_add+0x5c/0x84)
[<c006ace0>] (__lru_cache_add+0x5c/0x84) from [<0000005b>] (0x5b)
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH] Re: Latest PreemptRT patch error on imx35
2009-08-31 13:22 ` Uwe Kleine-König
2009-08-31 15:29 ` Tim Sander
@ 2009-08-31 16:37 ` Tim Sander
2009-09-02 9:14 ` [PATCH 1/2] fec: fix recursive locking of mii_lock Uwe Kleine-König
2 siblings, 0 replies; 13+ messages in thread
From: Tim Sander @ 2009-08-31 16:37 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: linux-rt-users, David S. Miller, Sascha Hauer, Greg Ungerer,
netdev
Hi Uwe
> The exact problem is:
> fec_enet_mii (this takes &fep->mii_lock) and calls mip->mii_func
> which happens to be mii_queue. mii_queue in turn takes
> &fep->mii_lock again.
Mh, lets see, i tried this:
--- linux-2.6.30/drivers/net/fec.orig.c 2009-08-31 18:01:25.000000000 +0200
+++ linux-2.6.30/drivers/net/fec.c 2009-08-31 18:06:31.000000000 +0200
@@ -622,8 +622,7 @@
goto unlock;
}
- if (mip->mii_func != NULL)
- (*(mip->mii_func))(readl(fep->hwp + FEC_MII_DATA), dev);
+ mii_queue_locked(readl(fep->hwp + FEC_MII_DATA), dev);
mii_head = mip->mii_next;
mip->mii_next = mii_free;
@@ -637,17 +636,9 @@
}
static int
-mii_queue(struct net_device *dev, int regval, void (*func)(uint, struct
net_device *))
+mii_queue_locked(struct net_device *dev, int regval, void (*func)(uint,
struct net_device *))
{
- struct fec_enet_private *fep;
- unsigned long flags;
- mii_list_t *mip;
int retval;
-
- /* Add PHY address to register command */
- fep = netdev_priv(dev);
- spin_lock_irqsave(&fep->mii_lock, flags);
-
regval |= fep->phy_addr << 23;
retval = 0;
@@ -666,6 +657,22 @@
} else {
retval = 1;
}
+ return retval;
+}
+
+static int
+mii_queue(struct net_device *dev, int regval, void (*func)(uint, struct
net_device *))
+{
+ struct fec_enet_private *fep;
+ unsigned long flags;
+ mii_list_t *mip;
+ int retval;
+
+ /* Add PHY address to register command */
+ fep = netdev_priv(dev);
+ spin_lock_irqsave(&fep->mii_lock, flags);
+
+ retval=mii_queue_locked(dev,regval,net_device);
spin_unlock_irqrestore(&fep->mii_lock, flags);
return retval;
---
But it still gives me:
FEC Ethernet Driver
kernel BUG at kernel/rtmutex.c:807!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 805 [#1] PREEMPT
Modules linked in:
CPU: 0 Not tainted (2.6.31-rc8-rt9 #1)
PC is at __bug+0x1c/0x28
LR is at __bug+0x18/0x28
pc : [<c0024184>] lr : [<c0024180>] psr: 00000193
sp : c7891ef0 ip : c7891e30 fp : 00000002
r10: c7911c24 r9 : c031f9cc r8 : c0351e54
r7 : 40000113 r6 : c0195c74 r5 : c7890000 r4 : 600e0000
r3 : 00000000 r2 : 00000001 r1 : c7890000 r0 : 0000002a
Flags: nzcv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 00c5387d Table: 80004008 DAC: 00000017
Process irq/57-fec (pid: 243, stack limit = 0xc7890268)
Stack: (0xc7891ef0 to 0xc7892000)
1ee0: c025fb3c c025fd38 00000000 40000113
1f00: ffffffff c7891f10 c025fcd8 c0032124 00000000 c7891f20 c0031764 c781e01c
1f20: c78ffb40 00000017 00000000 c7819b20 c7891f74 600e0000 c7911800 c0195c74
1f40: c7911c24 c0351e54 c031f9cc c0351e58 00000002 c0195dfc c0351d64 c7911b20
1f60: c7911800 c7911c24 c0351e54 c0196794 c025ee80 c031f9c4 c79885a0 c7890000
1f80: c031f988 c79885c8 c031f9e4 c0062950 00000000 00000032 c7891fbc c781fe4c
1fa0: c79885a0 c006281c 00000000 00000000 00000000 00000000 00000000 c004c5e8
1fc0: 00000000 00000000 c7891fc8 c7891fc8 c7891fd0 c7891fd0 00000000 00000000
1fe0: c7891fe0 c7891fe0 00000000 00000000 00000000 c00218b4 ffebfef3 ddddebfd
[<c0024184>] (__bug+0x1c/0x28) from [<c025fd38>]
(rt_spin_lock_slowlock+0x220/0x234)
[<c025fd38>] (rt_spin_lock_slowlock+0x220/0x234) from [<c0195dfc>]
(mii_queue+0x20/0xb4)
[<c0195dfc>] (mii_queue+0x20/0xb4) from [<c0196794>]
(fec_enet_interrupt+0x84/0x104)
[<c0196794>] (fec_enet_interrupt+0x84/0x104) from [<c0062950>]
(irq_thread+0x134/0x1c0)
[<c0062950>] (irq_thread+0x134/0x1c0) from [<c004c5e8>] (kthread+0x7c/0x84)
[<c004c5e8>] (kthread+0x7c/0x84) from [<c00218b4>]
(kernel_thread_exit+0x0/0x8)
Code: e1a01000 e59f000c eb08e8b0 e3a03000 (e5833000)
---[ end trace 25de9c8d632021f6 ]---
exiting task "irq/57-fec" (243) is an active IRQ thread (irq 57)
Best regards
Tim
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 1/2] fec: fix recursive locking of mii_lock
2009-08-31 13:22 ` Uwe Kleine-König
2009-08-31 15:29 ` Tim Sander
2009-08-31 16:37 ` [PATCH] " Tim Sander
@ 2009-09-02 9:14 ` Uwe Kleine-König
2009-09-02 9:14 ` [PATCH 2/2] fec: don't enable irqs in hard irq context Uwe Kleine-König
2009-09-03 1:16 ` [PATCH 1/2] fec: fix recursive locking of mii_lock Greg Ungerer
2 siblings, 2 replies; 13+ messages in thread
From: Uwe Kleine-König @ 2009-09-02 9:14 UTC (permalink / raw)
To: linux-rt-users
Cc: Greg Ungerer, Ben Hutchings, Patrick McHardy, Sascha Hauer,
Matt Waddel, netdev, Tim Sander
mii_discover_phy is only called by fec_enet_mii (via mip->mii_func). So
&fep->mii_lock is already held and mii_discover_phy must not call
mii_queue which locks &fep->mii_lock, too.
This was noticed by lockdep:
=============================================
[ INFO: possible recursive locking detected ]
2.6.31-rc8-00038-g37d0892 #109
---------------------------------------------
swapper/1 is trying to acquire lock:
(&fep->mii_lock){-.....}, at: [<c01569f8>] mii_queue+0x2c/0xcc
but task is already holding lock:
(&fep->mii_lock){-.....}, at: [<c0156328>] fec_enet_interrupt+0x78/0x460
other info that might help us debug this:
2 locks held by swapper/1:
#0: (rtnl_mutex){+.+.+.}, at: [<c0183534>] rtnl_lock+0x18/0x20
#1: (&fep->mii_lock){-.....}, at: [<c0156328>] fec_enet_interrupt+0x78/0x460
stack backtrace:
Backtrace:
[<c00226fc>] (dump_backtrace+0x0/0x108) from [<c01eac14>] (dump_stack+0x18/0x1c)
r6:c781d118 r5:c03e41d8 r4:00000001
[<c01eabfc>] (dump_stack+0x0/0x1c) from [<c005bae4>] (__lock_acquire+0x1a20/0x1a88)
[<c005a0c4>] (__lock_acquire+0x0/0x1a88) from [<c005bbac>] (lock_acquire+0x60/0x74)
[<c005bb4c>] (lock_acquire+0x0/0x74) from [<c01edda8>] (_spin_lock_irqsave+0x54/0x68)
r7:60000093 r6:c01569f8 r5:c785e468 r4:00000000
[<c01edd54>] (_spin_lock_irqsave+0x0/0x68) from [<c01569f8>] (mii_queue+0x2c/0xcc)
r7:c785e468 r6:c0156b24 r5:600a0000 r4:c785e000
[<c01569cc>] (mii_queue+0x0/0xcc) from [<c0156b78>] (mii_discover_phy+0x54/0xa8)
r8:00000002 r7:00000032 r6:c785e000 r5:c785e360 r4:c785e000
[<c0156b24>] (mii_discover_phy+0x0/0xa8) from [<c0156354>] (fec_enet_interrupt+0xa4/0x460)
r5:c785e360 r4:c077a170
[<c01562b0>] (fec_enet_interrupt+0x0/0x460) from [<c0066674>] (handle_IRQ_event+0x48/0x120)
[<c006662c>] (handle_IRQ_event+0x0/0x120) from [<c0068438>] (handle_level_irq+0x94/0x11c)
...
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Greg Ungerer <gerg@uclinux.org>
Cc: Ben Hutchings <ben@decadent.org.uk>
Cc: Patrick McHardy <kaber@trash.net>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Matt Waddel <Matt.Waddel@freescale.com>
Cc: netdev@vger.kernel.org
Cc: Tim Sander <tim01@vlsi.informatik.tu-darmstadt.de>
---
drivers/net/fec.c | 22 +++++++++++++++++-----
1 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index c9fd82d..ef82606 100644
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -637,16 +637,15 @@ unlock:
}
static int
-mii_queue(struct net_device *dev, int regval, void (*func)(uint, struct net_device *))
+mii_queue_unlocked(struct net_device *dev, int regval,
+ void (*func)(uint, struct net_device *))
{
struct fec_enet_private *fep;
- unsigned long flags;
mii_list_t *mip;
int retval;
/* Add PHY address to register command */
fep = netdev_priv(dev);
- spin_lock_irqsave(&fep->mii_lock, flags);
regval |= fep->phy_addr << 23;
retval = 0;
@@ -667,6 +666,19 @@ mii_queue(struct net_device *dev, int regval, void (*func)(uint, struct net_devi
retval = 1;
}
+ return retval;
+}
+
+static int
+mii_queue(struct net_device *dev, int regval,
+ void (*func)(uint, struct net_device *))
+{
+ struct fec_enet_private *fep;
+ unsigned long flags;
+ int retval;
+ fep = netdev_priv(dev);
+ spin_lock_irqsave(&fep->mii_lock, flags);
+ retval = mii_queue_unlocked(dev, regval, func);
spin_unlock_irqrestore(&fep->mii_lock, flags);
return retval;
}
@@ -1373,11 +1385,11 @@ mii_discover_phy(uint mii_reg, struct net_device *dev)
/* Got first part of ID, now get remainder */
fep->phy_id = phytype << 16;
- mii_queue(dev, mk_mii_read(MII_REG_PHYIR2),
+ mii_queue_unlocked(dev, mk_mii_read(MII_REG_PHYIR2),
mii_discover_phy3);
} else {
fep->phy_addr++;
- mii_queue(dev, mk_mii_read(MII_REG_PHYIR1),
+ mii_queue_unlocked(dev, mk_mii_read(MII_REG_PHYIR1),
mii_discover_phy);
}
} else {
--
1.6.3.3
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/2] fec: don't enable irqs in hard irq context
2009-09-02 9:14 ` [PATCH 1/2] fec: fix recursive locking of mii_lock Uwe Kleine-König
@ 2009-09-02 9:14 ` Uwe Kleine-König
2009-09-03 1:14 ` Greg Ungerer
2009-09-03 1:16 ` [PATCH 1/2] fec: fix recursive locking of mii_lock Greg Ungerer
1 sibling, 1 reply; 13+ messages in thread
From: Uwe Kleine-König @ 2009-09-02 9:14 UTC (permalink / raw)
To: linux-rt-users
Cc: Greg Ungerer, Ben Hutchings, Patrick McHardy, Sascha Hauer,
Matt Waddel, netdev, Tim Sander
fec_enet_mii, fec_enet_rx and fec_enet_tx are both only called by
fec_enet_interrupt in interrupt context. So they must not use
spin_lock_irq/spin_unlock_irq.
This fixes:
WARNING: at kernel/lockdep.c:2140 trace_hardirqs_on_caller+0x130/0x194()
...
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Greg Ungerer <gerg@uclinux.org>
Cc: Ben Hutchings <ben@decadent.org.uk>
Cc: Patrick McHardy <kaber@trash.net>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Matt Waddel <Matt.Waddel@freescale.com>
Cc: netdev@vger.kernel.org
Cc: Tim Sander <tim01@vlsi.informatik.tu-darmstadt.de>
---
drivers/net/fec.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index ef82606..9c49d56 100644
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -427,7 +427,7 @@ fec_enet_tx(struct net_device *dev)
struct sk_buff *skb;
fep = netdev_priv(dev);
- spin_lock_irq(&fep->hw_lock);
+ spin_lock(&fep->hw_lock);
bdp = fep->dirty_tx;
while (((status = bdp->cbd_sc) & BD_ENET_TX_READY) == 0) {
@@ -486,7 +486,7 @@ fec_enet_tx(struct net_device *dev)
}
}
fep->dirty_tx = bdp;
- spin_unlock_irq(&fep->hw_lock);
+ spin_unlock(&fep->hw_lock);
}
@@ -509,7 +509,7 @@ fec_enet_rx(struct net_device *dev)
flush_cache_all();
#endif
- spin_lock_irq(&fep->hw_lock);
+ spin_lock(&fep->hw_lock);
/* First, grab all of the stats for the incoming packet.
* These get messed up if we get called due to a busy condition.
@@ -604,7 +604,7 @@ rx_processing_done:
}
fep->cur_rx = bdp;
- spin_unlock_irq(&fep->hw_lock);
+ spin_unlock(&fep->hw_lock);
}
/* called from interrupt context */
@@ -615,7 +615,7 @@ fec_enet_mii(struct net_device *dev)
mii_list_t *mip;
fep = netdev_priv(dev);
- spin_lock_irq(&fep->mii_lock);
+ spin_lock(&fep->mii_lock);
if ((mip = mii_head) == NULL) {
printk("MII and no head!\n");
@@ -633,7 +633,7 @@ fec_enet_mii(struct net_device *dev)
writel(mip->mii_regval, fep->hwp + FEC_MII_DATA);
unlock:
- spin_unlock_irq(&fep->mii_lock);
+ spin_unlock(&fep->mii_lock);
}
static int
--
1.6.3.3
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] fec: don't enable irqs in hard irq context
2009-09-02 9:14 ` [PATCH 2/2] fec: don't enable irqs in hard irq context Uwe Kleine-König
@ 2009-09-03 1:14 ` Greg Ungerer
2009-09-03 6:17 ` David Miller
0 siblings, 1 reply; 13+ messages in thread
From: Greg Ungerer @ 2009-09-03 1:14 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: linux-rt-users, Ben Hutchings, Patrick McHardy, Sascha Hauer,
Matt Waddel, netdev, Tim Sander
Hi Uwe,
Uwe Kleine-König wrote:
> fec_enet_mii, fec_enet_rx and fec_enet_tx are both only called by
> fec_enet_interrupt in interrupt context. So they must not use
> spin_lock_irq/spin_unlock_irq.
>
> This fixes:
> WARNING: at kernel/lockdep.c:2140 trace_hardirqs_on_caller+0x130/0x194()
> ...
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> Cc: Greg Ungerer <gerg@uclinux.org>
Looks good.
Acked-by: Greg Ungerer <gerg@uclinux.org>
> Cc: Ben Hutchings <ben@decadent.org.uk>
> Cc: Patrick McHardy <kaber@trash.net>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Matt Waddel <Matt.Waddel@freescale.com>
> Cc: netdev@vger.kernel.org
> Cc: Tim Sander <tim01@vlsi.informatik.tu-darmstadt.de>
> ---
> drivers/net/fec.c | 12 ++++++------
> 1 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/fec.c b/drivers/net/fec.c
> index ef82606..9c49d56 100644
> --- a/drivers/net/fec.c
> +++ b/drivers/net/fec.c
> @@ -427,7 +427,7 @@ fec_enet_tx(struct net_device *dev)
> struct sk_buff *skb;
>
> fep = netdev_priv(dev);
> - spin_lock_irq(&fep->hw_lock);
> + spin_lock(&fep->hw_lock);
> bdp = fep->dirty_tx;
>
> while (((status = bdp->cbd_sc) & BD_ENET_TX_READY) == 0) {
> @@ -486,7 +486,7 @@ fec_enet_tx(struct net_device *dev)
> }
> }
> fep->dirty_tx = bdp;
> - spin_unlock_irq(&fep->hw_lock);
> + spin_unlock(&fep->hw_lock);
> }
>
>
> @@ -509,7 +509,7 @@ fec_enet_rx(struct net_device *dev)
> flush_cache_all();
> #endif
>
> - spin_lock_irq(&fep->hw_lock);
> + spin_lock(&fep->hw_lock);
>
> /* First, grab all of the stats for the incoming packet.
> * These get messed up if we get called due to a busy condition.
> @@ -604,7 +604,7 @@ rx_processing_done:
> }
> fep->cur_rx = bdp;
>
> - spin_unlock_irq(&fep->hw_lock);
> + spin_unlock(&fep->hw_lock);
> }
>
> /* called from interrupt context */
> @@ -615,7 +615,7 @@ fec_enet_mii(struct net_device *dev)
> mii_list_t *mip;
>
> fep = netdev_priv(dev);
> - spin_lock_irq(&fep->mii_lock);
> + spin_lock(&fep->mii_lock);
>
> if ((mip = mii_head) == NULL) {
> printk("MII and no head!\n");
> @@ -633,7 +633,7 @@ fec_enet_mii(struct net_device *dev)
> writel(mip->mii_regval, fep->hwp + FEC_MII_DATA);
>
> unlock:
> - spin_unlock_irq(&fep->mii_lock);
> + spin_unlock(&fep->mii_lock);
> }
>
> static int
--
-----------------------------------------------------------------------
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] fec: fix recursive locking of mii_lock
2009-09-02 9:14 ` [PATCH 1/2] fec: fix recursive locking of mii_lock Uwe Kleine-König
2009-09-02 9:14 ` [PATCH 2/2] fec: don't enable irqs in hard irq context Uwe Kleine-König
@ 2009-09-03 1:16 ` Greg Ungerer
2009-09-03 6:17 ` David Miller
1 sibling, 1 reply; 13+ messages in thread
From: Greg Ungerer @ 2009-09-03 1:16 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: linux-rt-users, Ben Hutchings, Patrick McHardy, Sascha Hauer,
Matt Waddel, netdev, Tim Sander
Hi Uwe,
Uwe Kleine-König wrote:
> mii_discover_phy is only called by fec_enet_mii (via mip->mii_func). So
> &fep->mii_lock is already held and mii_discover_phy must not call
> mii_queue which locks &fep->mii_lock, too.
>
> This was noticed by lockdep:
>
> =============================================
> [ INFO: possible recursive locking detected ]
> 2.6.31-rc8-00038-g37d0892 #109
> ---------------------------------------------
> swapper/1 is trying to acquire lock:
> (&fep->mii_lock){-.....}, at: [<c01569f8>] mii_queue+0x2c/0xcc
>
> but task is already holding lock:
> (&fep->mii_lock){-.....}, at: [<c0156328>] fec_enet_interrupt+0x78/0x460
>
> other info that might help us debug this:
> 2 locks held by swapper/1:
> #0: (rtnl_mutex){+.+.+.}, at: [<c0183534>] rtnl_lock+0x18/0x20
> #1: (&fep->mii_lock){-.....}, at: [<c0156328>] fec_enet_interrupt+0x78/0x460
>
> stack backtrace:
> Backtrace:
> [<c00226fc>] (dump_backtrace+0x0/0x108) from [<c01eac14>] (dump_stack+0x18/0x1c)
> r6:c781d118 r5:c03e41d8 r4:00000001
> [<c01eabfc>] (dump_stack+0x0/0x1c) from [<c005bae4>] (__lock_acquire+0x1a20/0x1a88)
> [<c005a0c4>] (__lock_acquire+0x0/0x1a88) from [<c005bbac>] (lock_acquire+0x60/0x74)
> [<c005bb4c>] (lock_acquire+0x0/0x74) from [<c01edda8>] (_spin_lock_irqsave+0x54/0x68)
> r7:60000093 r6:c01569f8 r5:c785e468 r4:00000000
> [<c01edd54>] (_spin_lock_irqsave+0x0/0x68) from [<c01569f8>] (mii_queue+0x2c/0xcc)
> r7:c785e468 r6:c0156b24 r5:600a0000 r4:c785e000
> [<c01569cc>] (mii_queue+0x0/0xcc) from [<c0156b78>] (mii_discover_phy+0x54/0xa8)
> r8:00000002 r7:00000032 r6:c785e000 r5:c785e360 r4:c785e000
> [<c0156b24>] (mii_discover_phy+0x0/0xa8) from [<c0156354>] (fec_enet_interrupt+0xa4/0x460)
> r5:c785e360 r4:c077a170
> [<c01562b0>] (fec_enet_interrupt+0x0/0x460) from [<c0066674>] (handle_IRQ_event+0x48/0x120)
> [<c006662c>] (handle_IRQ_event+0x0/0x120) from [<c0068438>] (handle_level_irq+0x94/0x11c)
> ...
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> Cc: Greg Ungerer <gerg@uclinux.org>
Looks good too.
Acked-by: Greg Ungerer <gerg@uclinux.org>
> Cc: Ben Hutchings <ben@decadent.org.uk>
> Cc: Patrick McHardy <kaber@trash.net>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Matt Waddel <Matt.Waddel@freescale.com>
> Cc: netdev@vger.kernel.org
> Cc: Tim Sander <tim01@vlsi.informatik.tu-darmstadt.de>
> ---
> drivers/net/fec.c | 22 +++++++++++++++++-----
> 1 files changed, 17 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/fec.c b/drivers/net/fec.c
> index c9fd82d..ef82606 100644
> --- a/drivers/net/fec.c
> +++ b/drivers/net/fec.c
> @@ -637,16 +637,15 @@ unlock:
> }
>
> static int
> -mii_queue(struct net_device *dev, int regval, void (*func)(uint, struct net_device *))
> +mii_queue_unlocked(struct net_device *dev, int regval,
> + void (*func)(uint, struct net_device *))
> {
> struct fec_enet_private *fep;
> - unsigned long flags;
> mii_list_t *mip;
> int retval;
>
> /* Add PHY address to register command */
> fep = netdev_priv(dev);
> - spin_lock_irqsave(&fep->mii_lock, flags);
>
> regval |= fep->phy_addr << 23;
> retval = 0;
> @@ -667,6 +666,19 @@ mii_queue(struct net_device *dev, int regval, void (*func)(uint, struct net_devi
> retval = 1;
> }
>
> + return retval;
> +}
> +
> +static int
> +mii_queue(struct net_device *dev, int regval,
> + void (*func)(uint, struct net_device *))
> +{
> + struct fec_enet_private *fep;
> + unsigned long flags;
> + int retval;
> + fep = netdev_priv(dev);
> + spin_lock_irqsave(&fep->mii_lock, flags);
> + retval = mii_queue_unlocked(dev, regval, func);
> spin_unlock_irqrestore(&fep->mii_lock, flags);
> return retval;
> }
> @@ -1373,11 +1385,11 @@ mii_discover_phy(uint mii_reg, struct net_device *dev)
>
> /* Got first part of ID, now get remainder */
> fep->phy_id = phytype << 16;
> - mii_queue(dev, mk_mii_read(MII_REG_PHYIR2),
> + mii_queue_unlocked(dev, mk_mii_read(MII_REG_PHYIR2),
> mii_discover_phy3);
> } else {
> fep->phy_addr++;
> - mii_queue(dev, mk_mii_read(MII_REG_PHYIR1),
> + mii_queue_unlocked(dev, mk_mii_read(MII_REG_PHYIR1),
> mii_discover_phy);
> }
> } else {
--
------------------------------------------------------------------------
Greg Ungerer -- Principal Engineer EMAIL: gerg@snapgear.com
SnapGear Group, McAfee PHONE: +61 7 3435 2888
825 Stanley St, FAX: +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia WEB: http://www.SnapGear.com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] fec: fix recursive locking of mii_lock
2009-09-03 1:16 ` [PATCH 1/2] fec: fix recursive locking of mii_lock Greg Ungerer
@ 2009-09-03 6:17 ` David Miller
0 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2009-09-03 6:17 UTC (permalink / raw)
To: gerg
Cc: u.kleine-koenig, linux-rt-users, ben, kaber, s.hauer, Matt.Waddel,
netdev, tim01
From: Greg Ungerer <gerg@snapgear.com>
Date: Thu, 03 Sep 2009 11:16:16 +1000
> Hi Uwe,
>
> Uwe Kleine-König wrote:
>> mii_discover_phy is only called by fec_enet_mii (via mip->mii_func).
>> So
>> &fep->mii_lock is already held and mii_discover_phy must not call
>> mii_queue which locks &fep->mii_lock, too.
>> This was noticed by lockdep:
...
>> ...
>> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
>> Cc: Greg Ungerer <gerg@uclinux.org>
>
> Looks good too.
>
> Acked-by: Greg Ungerer <gerg@uclinux.org>
Applied to net-next-2.6
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] fec: don't enable irqs in hard irq context
2009-09-03 1:14 ` Greg Ungerer
@ 2009-09-03 6:17 ` David Miller
2009-09-07 14:01 ` Uwe Kleine-König
0 siblings, 1 reply; 13+ messages in thread
From: David Miller @ 2009-09-03 6:17 UTC (permalink / raw)
To: gerg
Cc: u.kleine-koenig, linux-rt-users, ben, kaber, s.hauer, Matt.Waddel,
netdev, tim01
From: Greg Ungerer <gerg@snapgear.com>
Date: Thu, 03 Sep 2009 11:14:24 +1000
> Hi Uwe,
>
> Uwe Kleine-König wrote:
>> fec_enet_mii, fec_enet_rx and fec_enet_tx are both only called by
>> fec_enet_interrupt in interrupt context. So they must not use
>> spin_lock_irq/spin_unlock_irq.
>> This fixes:
>> WARNING: at kernel/lockdep.c:2140
>> trace_hardirqs_on_caller+0x130/0x194()
>> ...
>> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
>> Cc: Greg Ungerer <gerg@uclinux.org>
>
> Looks good.
>
> Acked-by: Greg Ungerer <gerg@uclinux.org>
Applied to net-next-2.6
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] fec: don't enable irqs in hard irq context
2009-09-03 6:17 ` David Miller
@ 2009-09-07 14:01 ` Uwe Kleine-König
0 siblings, 0 replies; 13+ messages in thread
From: Uwe Kleine-König @ 2009-09-07 14:01 UTC (permalink / raw)
To: Thomas Gleixner, John Kacur; +Cc: linux-rt-users
Hi,
> Applied to net-next-2.6
who ever does the next .30-rt release, can you please cherry pick these
patches?
Assuming the commit ids don't change anymore it's:
$ git fetch git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6.git master
$ git cherry-pick -x 84177a20799072c65a69b62571660d4d9780823c
$ git cherry-pick -x 81538e74ca12a71ea37ce72f809ebc65a90b9538
Best regards and thanks
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2009-09-07 14:01 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-31 9:43 Latest PreemptRT patch error on imx35 Tim Sander
2009-08-31 11:48 ` Carsten Emde
2009-08-31 13:40 ` Tim Sander
2009-08-31 13:22 ` Uwe Kleine-König
2009-08-31 15:29 ` Tim Sander
2009-08-31 16:37 ` [PATCH] " Tim Sander
2009-09-02 9:14 ` [PATCH 1/2] fec: fix recursive locking of mii_lock Uwe Kleine-König
2009-09-02 9:14 ` [PATCH 2/2] fec: don't enable irqs in hard irq context Uwe Kleine-König
2009-09-03 1:14 ` Greg Ungerer
2009-09-03 6:17 ` David Miller
2009-09-07 14:01 ` Uwe Kleine-König
2009-09-03 1:16 ` [PATCH 1/2] fec: fix recursive locking of mii_lock Greg Ungerer
2009-09-03 6:17 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).