* sci spurious irq on sh7203
@ 2011-05-02 18:11 Federico Fuga
2011-05-02 20:48 ` Magnus Damm
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Federico Fuga @ 2011-05-02 18:11 UTC (permalink / raw)
To: linux-sh
Hi All,
I am working on a sh7203 based board, running the linux-sh kernel 2.6.37 [3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5]
I am experiencing a bug when using the sci0 as a console.
The serial port is working as expected, except when more than a certain number of characters are sent to the console; in this case, the kernels traps many spurious interrupts that triggers the __report_bad_irq() function and disables the IRQ vector 192.
I append a snapshot of the console output.
As you can see, I modified some kernel sources to output the status of some register - also not related to SCI.
I modified the sh_sci.c source to trigger an output of the irq registers when no irq routine is serviced - basically a flag that change state when sci_tx_interrupt or similar function are called from inside sci_mpxed_interrupt.
So I noted that the error is triggered when
ssr_status\0000060
scr_status\0000078
err_enabled\0000040
The strange thing is that the irq is triggered for TEND flag and TX FIFO Empty even if TIE is disabled.
I was investigating both tx and rx interrupt routines, but I see nothing strange happening. But it seems something related to Receiving too many characters (a stream of 15 bytes do not triggers the problem; 16+ bytes almost always triggers the problem), since Sending seems to work fine.
I also tried to update sh-sci.c/h and some other header file (in arch/... and include/linux/...) to the latest version, and compile, but the problem persists.
Actually I cannot test any other serial port for this problem, but I hope I can make this test soon.
Thank you in advance.
best regards
ing. Federico Fuga
Boot Log and .config follows.
## Booting kernel from Legacy Image at 20060000 ...
Image Name: Linux-2.6.37
Image Type: SuperH Linux Kernel Image (gzip compressed)
Data Size: 921445 Bytes = 899.8 KiB
Load Address: 0c001000
Entry Point: 0c002000
Verifying Checksum ... OK
kernel data at 0x20060040, len = 0x000e0f65 (921445)
## No init Ramdisk
ramdisk start = 0x00000000, ramdisk end = 0x00000000
Uncompressing Kernel Image ... OK
kernel loaded at 0x0c001000, end = 0x0c1cd414
Linux version 2.6.37 (happycactus@Boa) (gcc version 4.5.1 (Sourcery G++ Lite 2010.09-60) ) #137 Mon May 2 19:40:23 CE1
Boot params:
... MOUNT_ROOT_RDONLY - 00000000
... RAMDISK_FLAGS - 00000000
... ORIG_ROOT_DEV - 00000000
... LOADER_TYPE - 00000000
... INITRD_START - 00000000
... INITRD_SIZE - 00000000
debug: ignoring loglevel setting.
Booting machvec: MLCD
bootconsole [early_ttySC0] enabled
initrd disabled
Node 0: start_pfn = 0xc000, low = 0x10000
Zone PFN ranges:
Normal 0x0000c000 -> 0x00010000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0x0000c000 -> 0x00010000
On node 0 totalpages: 16384
free_area_init_node: node 0, pgdat 0c1b62fc, node_mem_map 0c1df000
Normal zone: 128 pages used for memmap
Normal zone: 0 pages reserved
Normal zone: 16256 pages, LIFO batch:0
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
pcpu-alloc: [0] 0
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 16256
Kernel command line: console=ttySC0,115200 earlyprintk=sh-sci.0,115200 console=ttySC0,115200 earlyprintk=serial ignor2
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
I-cache : n_ways=4 n_sets\x128 way_incr 48
I-cache : entry_mask=0x000007f0 alias_mask=0x00000000 n_aliases=0
D-cache : n_ways=4 n_sets\x128 way_incr 48
D-cache : entry_mask=0x000007f0 alias_mask=0x00000000 n_aliases=0
Memory: 63016k/65536k available (1167k kernel code, 583k data, 92k init)
virtual kernel memory layout:
fixmap : 0x5fff7000 - 0x5ffff000 ( 32 kB)
vmalloc : 0x40000000 - 0x5fff5000 ( 511 MB)
lowmem : 0x0c000000 - 0x10000000 ( 64 MB) (cached)
: 0x20000000 - 0x40000000 ( 512 MB) (uncached)
.init : 0x0c1b7000 - 0x0c1ce000 ( 92 kB)
.data : 0x0c124cd8 - 0x0c1b6a20 ( 583 kB)
.text : 0x0c001000 - 0x0c124cd8 (1167 kB)
NR_IRQS:512 nr_irqs:512 8
intc: Registered controller 'sh7203' with 127 IRQs
sh_cmt.0: used for clock events
sh_cmt.0: used for periodic clock events
sh_cmt.1: used for clock events
Calibrating delay loop (skipped)... 200.04 BogoMIPS PRESET (lpj\x1000248)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: SH7203
pfc: sh7203_pfc handling gpio 0 -> 329
bio: create slab <bio-0> at 0
cmdlinepart partition parsing not available
arch/sh/boards/mach-rsk/mlcdrs485txen.c: Registered mlcd ports proc entries
arch/sh/boards/mach-rsk/mlcdbuzzer.c: Registered mlcd buzzer proc entries
arch/sh/boards/mach-rsk/mlcdrtc.c: Registered mlcd rtc proc entries
arch/sh/boards/mach-rsk/mlcdswitches.c: Registered MLCD SW proc entries
arch/sh/boards/mach-rsk/mlcdad.c: Registered MLCD AD proc entries
JFFS2 version 2.2. �© 2001-2006 Red Hat, Inc.
ROMFS MTD (C) 2007 Red Hat, Inc.
msgmni has been set to 123
io scheduler noop registered (default)
sh7203-lcdc: memory at phys 0x0e100000-0x0e1257ff, size 150 KiB
sh7203-lcdc: 320x240 16bpp color (orientation normal)
sh7203-lcdc: LDICKR = 0x108
sh7203-lcdc: LDMTR = 0xc42b
sh7203-lcdc: LDDFR = 0x2d
sh7203-lcdc: LDSMR = 0x0
sh7203-lcdc: LDPMMR = 0x10
sh7203-lcdc: LDPSPR = 0xf60f
sh7203-lcdc: LDSARU = 0xe100000
sh7203-lcdc: LDSARL = 0xc000000
sh7203-lcdc: LDLAOR = 0x280
sh7203-lcdc: LDPALCR = 0x0
sh7203-lcdc: LDHCNR = 0x3234
sh7203-lcdc: LDHSYNR = 0x0
sh7203-lcdc: LDVDLNR = 0xef
sh7203-lcdc: LDVTLNR = 0x104
sh7203-lcdc: LDVSYNR = 0xf1
sh7203-lcdc: LDACLNR = 0xc
sh7203-lcdc: LDINTR = 0x0
sh7203-lcdc: LDCNTR = 0x0
sh7203-lcdc: LDLIRNR = 0x0
Image loading...
Image loaded.
LDCNTR:0x1
SuperH SCI(F) driver initialized
sh-sci.0: ttySC0 at MMIO 0xfffe8000 (irq = 192) is a scif
console [ttySC0] enabled, bootconsole disabled
console [ttySC0] enabled, bootconsole disabled
sh-sci.1: ttySC1 at MMIO 0xfffe8800 (irq = 196) is a scif
sh-sci.2: ttySC2 at MMIO 0xfffe9000 (irq = 200) is a scif
sh-sci.3: ttySC3 at MMIO 0xfffe9800 (irq = 204) is a scif
physmap platform flash device: 00800001 at 20000000
physmap-flash: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000001 Chip ID 0x001000
Amd/Fujitsu Extended Query Table at 0x0040
Amd/Fujitsu Extended Query version 1.3.
number of CFI chips: 1
cmdlinepart partition parsing not available
RedBoot partition parsing not available
Using physmap partition information
Creating 3 MTD partitions on "physmap-flash":
0x000000000000-0x000000060000 : "Bootloader"
0x000000060000-0x000000200000 : "Kernel"
0x000000200000-0x000000800000 : "Flash_FS"
input: et057003dh6_ts as /devices/virtual/input/input0
cpuidle: using governor ladder
sh_cmt sh_cmt.0: kept as earlytimer
sh_cmt sh_cmt.1: kept as earlytimer
oprofile: using timer interrupt.
VFS: Mounted root (jffs2 filesystem) on device 31:2.
Freeing unused kernel memory: 92k freed
Executing /etc/init.d/rc
Executing /etc/profile
~ # *** sci_mpxed_interrupt with flag = 0. irq\x192
ssr_status\0000060 / 00000020 (00000020)
scr_status\0000078 / 00000080 (00000000)
err_enabled\0000040
overruns= 0
irq 192: nobody cared (try booting with the "irqpoll" option)
Stack: (0x0e5a3d3c to 0x0e5a4000)
3d20: 0c04331e
3d40: 0e005664 0c122660 0c0434dc 000000c0 00000000 0e005640 0c043b18 0e880000
3d60: 0c1d6900 00000000 40000000 000000c0 000000c0 0e005640 0c0031d4 00000000
3d80: 0c1b456c 000000c0 0c008160 0c02f020 0c008160 0c0031a0 0e8a0000 0c02f020
3da0: 80000000 00000004 0c1b3308 f08007f0 00a630f1 0e2fcf01 0e3a6a9c 0e8a0000
3dc0: 0e3a68e4 00000020 00000000 0c1d6900 0e880000 0e5a3df4 0c02f020 0c063674
3de0: 40000000 00000000 00000016 000000dc 000000c0 00000000 00400000 00000000
3e00: 00020000 00000004 00020000 00020fff 0001ffff 00000000 73680040 0c06d530
3e20: 0c0a0d10 00000000 00000000 00000000 0e5a3ef4 0e3a0010 00020000 00000007
3e40: 00000122 00000000 0e3a0bc0 ffffe000 0e5a3fa4 00000002 0c1b69d0 00000000
3e60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3e80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3ea0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3ec0: 00000000 00000000 7f454c46 01020100 00000000 00000000 0002002a 00000001
3ee0: 00401630 00000034 0008cf34 0000810d 00340020 00030028 000f000e 0e3a6d20
3f00: 0e3a6bc0 0e900000 0e900034 00000000 0e901630 00020000 00000000 00000000
3f20: 80000052 0c06d054 00000002 00000000 0c03cd20 fffffff8 0e3a0010 0c1b3690
3f40: 0c1b39f0 0e5a3fa4 0e3a0012 0c06e2e0 00000000 0e5a3fa4 0e3a0010 00000001
3f60: 0e2985d8 0e19f9f0 0c06dba0 00000000 0c0038ea 0e19f9b8 0e2799fc 0e29a250
3f80: ffffff0f 00000071 0e5a3fa4 0e7a2000 0e2985d8 0e19f9f0 0c008296 00000100
3fa0: 0c0038c0 0000000b 0e250de4 0e299008 0000000b 0e19fbf1 0e19f9f0 0e2985d8
3fc0: 0e19f9c8 0e29a250 00000001 0e19fbf1 0e19f9f0 0e29a250 0e2799fc 0e19f9b8
3fe0: 0e19f9b8 0e250df2 0e267c58 00000000 00000000 00000000 66666667 0000004c
Call trace:
[<0c122660>] printk+0x0/0x28
[<0c0434dc>] note_interrupt+0x14c/0x1b0
[<0c043b18>] handle_level_irq+0xa8/0xe0
[<0c0031d4>] do_IRQ+0x34/0x60
[<0c008160>] ret_from_exception+0x0/0x14
[<0c02f020>] up_write+0x0/0x10
[<0c008160>] ret_from_exception+0x0/0x14
[<0c0031a0>] do_IRQ+0x0/0x60
[<0c02f020>] up_write+0x0/0x10
[<0c02f020>] up_write+0x0/0x10
[<0c063674>] do_mmap_pgoff+0x494/0xb00
[<0c06d530>] flush_old_exec+0x2b0/0x4b0
[<0c0a0d10>] load_elf_fdpic_binary+0x4f0/0xc80
[<0c06d054>] search_binary_handler+0x64/0x250
[<0c03cd20>] module_put+0x0/0x30
[<0c06e2e0>] do_execve+0x1a0/0x270
[<0c06dba0>] copy_strings+0x0/0x1f0
[<0c0038ea>] sys_execve+0x2a/0x70
[<0c008296>] syscall_call+0xc/0x10
[<0c0038c0>] sys_execve+0x0/0x70
handlers:
[<0c0fe640>] (sci_mpxed_interrupt+0x0/0x210)
Disabling IRQ #192
#
# Automatically generated make config: don't edit
# Linux/sh 2.6.37 Kernel Configuration
# Mon May 2 16:25:09 2011
#
CONFIG_SUPERH=y
CONFIG_SUPERH32=y
# CONFIG_SUPERH64 is not set
CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig"
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_IRQ_PER_CPU=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_CLOCKEVENTS=y
# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
CONFIG_SYS_SUPPORTS_CMT=y
CONFIG_SYS_SUPPORTS_MTU2=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_ARCH_NO_VIRT_TO_BUS=y
CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_DMA_NONCOHERENT=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_CONSTRUCTORS=y
CONFIG_HAVE_IRQ_WORK=y
CONFIG_IRQ_WORK=y
#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT2
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y
#
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
# CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED is not set
CONFIG_HAVE_SPARSE_IRQ=y
# CONFIG_GENERIC_IRQ_PROBE is not set
# CONFIG_GENERIC_PENDING_IRQ is not set
# CONFIG_AUTO_IRQ_AFFINITY is not set
# CONFIG_HARDIRQS_SW_RESEND is not set
CONFIG_SPARSE_IRQ=y
#
# RCU Subsystem
#
CONFIG_TINY_RCU=y
# CONFIG_PREEMPT_RCU is not set
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_IKCONFIG=y
# CONFIG_IKCONFIG_PROC is not set
CONFIG_LOG_BUF_SHIFT\x14
# CONFIG_CGROUPS is not set
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
# CONFIG_RD_BZIP2 is not set
# CONFIG_RD_LZMA is not set
# CONFIG_RD_LZO 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_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_AIO=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_USE_VMALLOC=y
#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_PERF_COUNTERS is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
# CONFIG_SLUB is not set
CONFIG_SLOB=y
# CONFIG_MMAP_ALLOW_UNINITIALIZED is not set
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=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=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_BLOCK=y
CONFIG_LBDAF=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_INTEGRITY is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"
# CONFIG_INLINE_SPIN_TRYLOCK is not set
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK is not set
# CONFIG_INLINE_SPIN_LOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
CONFIG_INLINE_SPIN_UNLOCK=y
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_READ_TRYLOCK is not set
# CONFIG_INLINE_READ_LOCK is not set
# CONFIG_INLINE_READ_LOCK_BH is not set
# CONFIG_INLINE_READ_LOCK_IRQ is not set
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
CONFIG_INLINE_READ_UNLOCK=y
# CONFIG_INLINE_READ_UNLOCK_BH is not set
CONFIG_INLINE_READ_UNLOCK_IRQ=y
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_WRITE_TRYLOCK is not set
# CONFIG_INLINE_WRITE_LOCK is not set
# CONFIG_INLINE_WRITE_LOCK_BH is not set
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
CONFIG_INLINE_WRITE_UNLOCK=y
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
# CONFIG_MUTEX_SPIN_ON_OWNER is not set
# CONFIG_FREEZER is not set
#
# System type
#
CONFIG_CPU_SH2=y
CONFIG_CPU_SH2A=y
# CONFIG_CPU_SUBTYPE_SH7619 is not set
# CONFIG_CPU_SUBTYPE_SH7201 is not set
CONFIG_CPU_SUBTYPE_SH7203=y
# CONFIG_CPU_SUBTYPE_SH7206 is not set
# CONFIG_CPU_SUBTYPE_SH7263 is not set
# CONFIG_CPU_SUBTYPE_MXG is not set
# CONFIG_CPU_SUBTYPE_SH7705 is not set
# CONFIG_CPU_SUBTYPE_SH7706 is not set
# CONFIG_CPU_SUBTYPE_SH7707 is not set
# CONFIG_CPU_SUBTYPE_SH7708 is not set
# CONFIG_CPU_SUBTYPE_SH7709 is not set
# CONFIG_CPU_SUBTYPE_SH7710 is not set
# CONFIG_CPU_SUBTYPE_SH7712 is not set
# CONFIG_CPU_SUBTYPE_SH7720 is not set
# CONFIG_CPU_SUBTYPE_SH7721 is not set
# CONFIG_CPU_SUBTYPE_SH7750 is not set
# CONFIG_CPU_SUBTYPE_SH7091 is not set
# CONFIG_CPU_SUBTYPE_SH7750R is not set
# CONFIG_CPU_SUBTYPE_SH7750S is not set
# CONFIG_CPU_SUBTYPE_SH7751 is not set
# CONFIG_CPU_SUBTYPE_SH7751R is not set
# CONFIG_CPU_SUBTYPE_SH7760 is not set
# CONFIG_CPU_SUBTYPE_SH4_202 is not set
# CONFIG_CPU_SUBTYPE_SH7723 is not set
# CONFIG_CPU_SUBTYPE_SH7724 is not set
# CONFIG_CPU_SUBTYPE_SH7757 is not set
# CONFIG_CPU_SUBTYPE_SH7763 is not set
# CONFIG_CPU_SUBTYPE_SH7770 is not set
# CONFIG_CPU_SUBTYPE_SH7780 is not set
# CONFIG_CPU_SUBTYPE_SH7785 is not set
# CONFIG_CPU_SUBTYPE_SH7786 is not set
# CONFIG_CPU_SUBTYPE_SHX3 is not set
# CONFIG_CPU_SUBTYPE_SH7343 is not set
# CONFIG_CPU_SUBTYPE_SH7722 is not set
# CONFIG_CPU_SUBTYPE_SH7366 is not set
#
# Memory management options
#
CONFIG_QUICKLIST=y
CONFIG_PAGE_OFFSET=0x00000000
CONFIG_FORCE_MAX_ZONEORDER\x14
CONFIG_MEMORY_START=0x0c000000
CONFIG_MEMORY_SIZE=0x04000000
# CONFIG_29BIT is not set
CONFIG_32BIT=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
CONFIG_MAX_ACTIVE_REGIONS=1
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_UNCACHED_MAPPING=y
CONFIG_PAGE_SIZE_4KB=y
# CONFIG_PAGE_SIZE_8KB is not set
# CONFIG_PAGE_SIZE_16KB is not set
# CONFIG_PAGE_SIZE_64KB is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=0
CONFIG_NR_QUICK=1
CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1
CONFIG_NEED_PER_CPU_KM=y
#
# Cache configuration
#
# CONFIG_CACHE_WRITEBACK is not set
CONFIG_CACHE_WRITETHROUGH=y
# CONFIG_CACHE_OFF is not set
#
# Processor features
#
# CONFIG_CPU_LITTLE_ENDIAN is not set
CONFIG_CPU_BIG_ENDIAN=y
CONFIG_SH_FPU=y
CONFIG_CPU_HAS_FPU=y
#
# Board support
#
CONFIG_SH_RSK=y
CONFIG_SH_RSK7203=y
#
# Timer and clock configuration
#
CONFIG_SH_TIMER_CMT=y
# CONFIG_SH_TIMER_MTU2 is not set
CONFIG_SH_PCLK_FREQ\x16670800
CONFIG_SH_CLK_CPG=y
CONFIG_SH_CLK_CPG_LEGACY=y
CONFIG_SH_CLK_MD=0
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
#
# DMA support
#
#
# Companion Chips
#
#
# Additional SuperH Device Drivers
#
# CONFIG_HEARTBEAT is not set
# CONFIG_PUSH_SWITCH is not set
#
# Kernel features
#
CONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ\x100
# CONFIG_SCHED_HRTICK is not set
# CONFIG_CRASH_DUMP is not set
# CONFIG_SECCOMP is not set
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_GUSA=y
#
# SuperH / SH-Mobile Driver Options
#
#
# Interrupt controller options
#
# CONFIG_INTC_MAPPING_DEBUG is not set
#
# Boot options
#
CONFIG_ZERO_PAGE_OFFSET=0x00001000
CONFIG_BOOT_LINK_OFFSET=0x00800000
CONFIG_ENTRY_OFFSET=0x00001000
# CONFIG_CMDLINE_OVERWRITE is not set
CONFIG_CMDLINE_EXTEND=y
CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=serial ignore_loglevel rootfstype=jffs2 root=/dev/mtdblock2"
#
# Bus options
#
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set
#
# Executable file formats
#
CONFIG_BINFMT_ELF_FDPIC=y
CONFIG_BINFMT_FLAT=y
CONFIG_BINFMT_ZFLAT=y
CONFIG_BINFMT_SHARED_FLAT=y
# CONFIG_HAVE_AOUT is not set
# CONFIG_BINFMT_MISC is not set
#
# Power management options (EXPERIMENTAL)
#
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
# CONFIG_PM_RUNTIME is not set
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
# CONFIG_NET is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
# CONFIG_DEVTMPFS is not set
# CONFIG_STANDALONE is not set
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
# CONFIG_FW_LOADER is not set
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
# CONFIG_MTD_TESTS is not set
CONFIG_MTD_CONCAT=y
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_CMDLINE_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_SM_FTL 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 is not set
CONFIG_MTD_CFI_AMDSTD=y
# CONFIG_MTD_CFI_STAA is not set
CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
#
# 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_PLATRAM is not set
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLOCK2MTD is not set
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
# CONFIG_MTD_NAND is not set
# CONFIG_MTD_ONENAND is not set
#
# LPDDR flash memory drivers
#
# CONFIG_MTD_LPDDR is not set
# CONFIG_MTD_UBI is not set
# CONFIG_PARPORT is not set
# CONFIG_BLK_DEV is not set
# CONFIG_MISC_DEVICES is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
#
# SCSI device support
#
CONFIG_SCSI_MOD=y
# CONFIG_RAID_ATTRS is not set
# CONFIG_SCSI is not set
# CONFIG_SCSI_DMA is not set
# CONFIG_SCSI_NETLINK is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
# CONFIG_INPUT_SPARSEKMAP is not set
#
# Userland interfaces
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_EVBUG=m
#
# 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=y
# CONFIG_TOUCHSCREEN_AD7879 is not set
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
# CONFIG_TOUCHSCREEN_HAMPSHIRE 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_W90X900 is not set
CONFIG_TOUCHSCREEN_ET057003DH6_ADS7843=y
# 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_DEVKMEM=y
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_SH_SCI=y
CONFIG_SERIAL_SH_SCI_NR_UARTS=4
CONFIG_SERIAL_SH_SCI_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_TIMBERDALE is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
# CONFIG_UNIX98_PTYS is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_TTY_PRINTK is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_RAMOOPS is not set
# CONFIG_I2C is not set
# CONFIG_SPI is not set
#
# PPS support
#
# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_GPIO_SYSFS is not set
#
# Memory mapped GPIO expanders:
#
# CONFIG_GPIO_BASIC_MMIO is not set
# CONFIG_GPIO_IT8761E is not set
# CONFIG_GPIO_VX855 is not set
#
# I2C GPIO expanders:
#
#
# PCI GPIO expanders:
#
#
# SPI GPIO expanders:
#
#
# AC97 GPIO expanders:
#
#
# MODULbus GPIO expanders:
#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set
# CONFIG_THERMAL is not set
# CONFIG_WATCHDOG is not set
CONFIG_SSB_POSSIBLE=y
#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
# CONFIG_MFD_SUPPORT is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set
#
# Graphics support
#
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_FOREIGN_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
# CONFIG_FB_MODE_HELPERS is not set
# CONFIG_FB_TILEBLITTING is not set
#
# Frame buffer hardware drivers
#
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_SH_MOBILE_LCDC is not set
CONFIG_FB_SH7203=y
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_LOGO_SUPERH_MONO=y
CONFIG_LOGO_SUPERH_VGA16=y
CONFIG_LOGO_SUPERH_CLUT224=y
# CONFIG_SOUND is not set
# CONFIG_HID_SUPPORT is not set
# CONFIG_USB_SUPPORT is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
# CONFIG_STAGING is not set
#
# File systems
#
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
# CONFIG_EXT4_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_GFS2_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
# CONFIG_DNOTIFY is not set
CONFIG_INOTIFY_USER=y
# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
# CONFIG_QUOTACTL 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_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_SYSCTL=y
CONFIG_SYSFS=y
# 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 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_LOGFS is not set
# CONFIG_CRAMFS is not set
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
CONFIG_ROMFS_FS=y
CONFIG_ROMFS_BACKED_BY_BLOCK=y
# CONFIG_ROMFS_BACKED_BY_MTD is not set
# CONFIG_ROMFS_BACKED_BY_BOTH is not set
CONFIG_ROMFS_ON_BLOCK=y
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_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 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_WARN_DEPRECATED=y
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN\x1024
CONFIG_MAGIC_SYSRQ=y
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_KERNEL is not set
# CONFIG_HARDLOCKUP_DETECTOR is not set
CONFIG_BKL=y
# CONFIG_SPARSE_RCU_POINTER is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_MEMORY_INIT is not set
# CONFIG_LKDTM is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_RING_BUFFER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set
# CONFIG_DYNAMIC_DEBUG is not set
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_SH_STANDARD_BIOS is not set
# CONFIG_DWARF_UNWINDER is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
# CONFIG_CRYPTO is not set
# CONFIG_VIRTUALIZATION is not set
# CONFIG_BINARY_PRINTF is not set
#
# Library routines
#
CONFIG_BITREVERSE=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_DECOMPRESS_GZIP=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_GENERIC_ATOMIC64=y
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: sci spurious irq on sh7203
2011-05-02 18:11 sci spurious irq on sh7203 Federico Fuga
@ 2011-05-02 20:48 ` Magnus Damm
2011-05-03 17:08 ` Federico Fuga
2011-05-14 10:50 ` Federico Fuga
2 siblings, 0 replies; 4+ messages in thread
From: Magnus Damm @ 2011-05-02 20:48 UTC (permalink / raw)
To: linux-sh
Hi Federico,
On Tue, May 3, 2011 at 3:11 AM, Federico Fuga <fuga@studiofuga.com> wrote:
> Hi All,
>
> I am working on a sh7203 based board, running the linux-sh kernel 2.6.37 [3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5]
> I am experiencing a bug when using the sci0 as a console.
> The serial port is working as expected, except when more than a certain number of characters are sent to the console; in this case, the kernels traps many spurious interrupts that triggers the __report_bad_irq() function and disables the IRQ vector 192.
> I append a snapshot of the console output.
> As you can see, I modified some kernel sources to output the status of some register - also not related to SCI.
> I modified the sh_sci.c source to trigger an output of the irq registers when no irq routine is serviced - basically a flag that change state when sci_tx_interrupt or similar function are called from inside sci_mpxed_interrupt.
> So I noted that the error is triggered when
>
> ssr_status\0000060
> scr_status\0000078
> err_enabled\0000040
>
> The strange thing is that the irq is triggered for TEND flag and TX FIFO Empty even if TIE is disabled.
> I was investigating both tx and rx interrupt routines, but I see nothing strange happening. But it seems something related to Receiving too many characters (a stream of 15 bytes do not triggers the problem; 16+ bytes almost always triggers the problem), since Sending seems to work fine.
> I also tried to update sh-sci.c/h and some other header file (in arch/... and include/linux/...) to the latest version, and compile, but the problem persists.
> Actually I cannot test any other serial port for this problem, but I hope I can make this test soon.
> Thank you in advance.
As usual with these things, please try to test on latest upstream if
possible. Your issue may be solved already and if so is a matter of
backporting.
I don't recall any recent sh7203 serial fixes though. You may want to
try to test without earlyprintk. From your description it sounds like
your issue may be related to TX errors (overrun), perhaps the TX error
interrupt is enabled even though TIE is disabled?
Thanks,
/ magnus
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: sci spurious irq on sh7203
2011-05-02 18:11 sci spurious irq on sh7203 Federico Fuga
2011-05-02 20:48 ` Magnus Damm
@ 2011-05-03 17:08 ` Federico Fuga
2011-05-14 10:50 ` Federico Fuga
2 siblings, 0 replies; 4+ messages in thread
From: Federico Fuga @ 2011-05-03 17:08 UTC (permalink / raw)
To: linux-sh
Hi Magnus,
thank you very much for your response!
As you suggested, I made both test - disabling the earlyprintk on the 2.6.37 [nothing changes] and trying the same test with the latest, git version. In the this case, after applying all changes to support my board (this means only some change to the arch/sh/boards/mach-rsk/devices-rsk7203.c, arch/sh/boards/mach-rsk/setup.c) the system doesn't output anything on the serial console, neither with nor without the earlyprintk option.
I'am stuck :-)
I double checked all my modifications, but there's nothing related to serial port sci0. And in my old (2.6.37) sh_sci.c there is no changes other than some debug message...
Any idea?
Thank you!
Regards,
Federico Fuga
Il giorno 02/mag/2011, alle ore 22.48, Magnus Damm ha scritto:
> Hi Federico,
>
> On Tue, May 3, 2011 at 3:11 AM, Federico Fuga <fuga@studiofuga.com> wrote:
>> Hi All,
>>
>> I am working on a sh7203 based board, running the linux-sh kernel 2.6.37 [3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5]
>> I am experiencing a bug when using the sci0 as a console.
>> The serial port is working as expected, except when more than a certain number of characters are sent to the console; in this case, the kernels traps many spurious interrupts that triggers the __report_bad_irq() function and disables the IRQ vector 192.
>> I append a snapshot of the console output.
>> As you can see, I modified some kernel sources to output the status of some register - also not related to SCI.
>> I modified the sh_sci.c source to trigger an output of the irq registers when no irq routine is serviced - basically a flag that change state when sci_tx_interrupt or similar function are called from inside sci_mpxed_interrupt.
>> So I noted that the error is triggered when
>>
>> ssr_status\0000060
>> scr_status\0000078
>> err_enabled\0000040
>>
>> The strange thing is that the irq is triggered for TEND flag and TX FIFO Empty even if TIE is disabled.
>> I was investigating both tx and rx interrupt routines, but I see nothing strange happening. But it seems something related to Receiving too many characters (a stream of 15 bytes do not triggers the problem; 16+ bytes almost always triggers the problem), since Sending seems to work fine.
>> I also tried to update sh-sci.c/h and some other header file (in arch/... and include/linux/...) to the latest version, and compile, but the problem persists.
>> Actually I cannot test any other serial port for this problem, but I hope I can make this test soon.
>> Thank you in advance.
>
> As usual with these things, please try to test on latest upstream if
> possible. Your issue may be solved already and if so is a matter of
> backporting.
>
> I don't recall any recent sh7203 serial fixes though. You may want to
> try to test without earlyprintk. From your description it sounds like
> your issue may be related to TX errors (overrun), perhaps the TX error
> interrupt is enabled even though TIE is disabled?
>
> Thanks,
>
> / magnus
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: sci spurious irq on sh7203
2011-05-02 18:11 sci spurious irq on sh7203 Federico Fuga
2011-05-02 20:48 ` Magnus Damm
2011-05-03 17:08 ` Federico Fuga
@ 2011-05-14 10:50 ` Federico Fuga
2 siblings, 0 replies; 4+ messages in thread
From: Federico Fuga @ 2011-05-14 10:50 UTC (permalink / raw)
To: linux-sh
Hi,
I isolated the problem and solved the issue in a very handicraft way...
The problem is that when on sh7203 an overrun occurs, the overrun isn't detected by the driver (why?) and consequently the flag isn't cleared.
So I applied this check at the end of the sci_mpxed_interrupt function, just before returning:
/* Check for buffer overrun */
lsr = sci_in(port, SCLSR);
if (lsr & 0x0001) {
struct tty_struct *tty = port->state->port.tty;
sci_out(port, SCLSR, 0x0000);
tty_insert_flip_char(tty, 0, TTY_OVERRUN);
tty_flip_buffer_push(tty);
dev_notice(port->dev, "overrun error\n");
}
this way the lockup is solved, and the problem still resides on the very poor performance of the serial port ...
Regards
Federico Fuga
Il giorno 03/mag/2011, alle ore 19.08, Federico Fuga ha scritto:
> Hi Magnus,
>
> thank you very much for your response!
> As you suggested, I made both test - disabling the earlyprintk on the 2.6.37 [nothing changes] and trying the same test with the latest, git version. In the this case, after applying all changes to support my board (this means only some change to the arch/sh/boards/mach-rsk/devices-rsk7203.c, arch/sh/boards/mach-rsk/setup.c) the system doesn't output anything on the serial console, neither with nor without the earlyprintk option.
> I'am stuck :-)
> I double checked all my modifications, but there's nothing related to serial port sci0. And in my old (2.6.37) sh_sci.c there is no changes other than some debug message...
> Any idea?
>
> Thank you!
>
> Regards,
>
>
> Federico Fuga
>
>
>
>
>
>
> Il giorno 02/mag/2011, alle ore 22.48, Magnus Damm ha scritto:
>
>> Hi Federico,
>>
>> On Tue, May 3, 2011 at 3:11 AM, Federico Fuga <fuga@studiofuga.com> wrote:
>>> Hi All,
>>>
>>> I am working on a sh7203 based board, running the linux-sh kernel 2.6.37 [3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5]
>>> I am experiencing a bug when using the sci0 as a console.
>>> The serial port is working as expected, except when more than a certain number of characters are sent to the console; in this case, the kernels traps many spurious interrupts that triggers the __report_bad_irq() function and disables the IRQ vector 192.
>>> I append a snapshot of the console output.
>>> As you can see, I modified some kernel sources to output the status of some register - also not related to SCI.
>>> I modified the sh_sci.c source to trigger an output of the irq registers when no irq routine is serviced - basically a flag that change state when sci_tx_interrupt or similar function are called from inside sci_mpxed_interrupt.
>>> So I noted that the error is triggered when
>>>
>>> ssr_status\0000060
>>> scr_status\0000078
>>> err_enabled\0000040
>>>
>>> The strange thing is that the irq is triggered for TEND flag and TX FIFO Empty even if TIE is disabled.
>>> I was investigating both tx and rx interrupt routines, but I see nothing strange happening. But it seems something related to Receiving too many characters (a stream of 15 bytes do not triggers the problem; 16+ bytes almost always triggers the problem), since Sending seems to work fine.
>>> I also tried to update sh-sci.c/h and some other header file (in arch/... and include/linux/...) to the latest version, and compile, but the problem persists.
>>> Actually I cannot test any other serial port for this problem, but I hope I can make this test soon.
>>> Thank you in advance.
>>
>> As usual with these things, please try to test on latest upstream if
>> possible. Your issue may be solved already and if so is a matter of
>> backporting.
>>
>> I don't recall any recent sh7203 serial fixes though. You may want to
>> try to test without earlyprintk. From your description it sounds like
>> your issue may be related to TX errors (overrun), perhaps the TX error
>> interrupt is enabled even though TIE is disabled?
>>
>> Thanks,
>>
>> / magnus
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" 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] 4+ messages in thread
end of thread, other threads:[~2011-05-14 10:50 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-02 18:11 sci spurious irq on sh7203 Federico Fuga
2011-05-02 20:48 ` Magnus Damm
2011-05-03 17:08 ` Federico Fuga
2011-05-14 10:50 ` Federico Fuga
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox