Re: [patch 2.6.13-git] 8250 tweaks

From: Sam Song
Date: Thu Jul 14 2005 - 02:13:34 EST


Russell King <rmk+lkml@xxxxxxxxxxxxxxxx> wrote:
> v. whining
>
> 1. To utter a plaintive, high-pitched,
> protracted sound, as in pain,
> fear, supplication, or complaint.
> 2. To complain or protest in a childish fashion.
> 3. To produce a sustained noise of relatively
> high pitch: jet engines
> whining.
>
> The kernel isn't doing any of those.

Oops, I misused this word. Thanks for your correction.

> Anyway, you're going to have to help me out a lot -

I'd love to:-)

> Also, having the contents of /sys/devices/platform
> or /sys/bus/platform/* would be useful.
>
> For some reason, it appears that the serial driver
> is being asked to register two serial ports at MMIO
> address 0, from one platform device,
> which it apparantly detects as being present. I
> suspect these are coming from some table included
> via asm-ppc/serial.h, but where that
> is I've no idea.
>
> It's then asked to add two more ports from the
> serial8250.0 device, which doesn't exist. These
> come from a platform device in arch/ppc.
> Again, where these come from I don't know.

It doesn't matter. Your notes is good enough to put
me the right direction to find out the bug in my
platform.

> So. The serial driver is being asked to create
> _four_ ports. It's created two, but can't create
> the other two, failing with error -22.
> 22 is EINVAL, which means there was something wrong
> with what was requested. That generally points to
> uartclk being zero, which would
> be a bug in the PPC architecture code. You can
> confirm this by applying this patch:

Sure. The uartclk printed zero. Your simple patch
did a good help. Then I tracked down to the _four_
port registering and finally picked out the "bug".

It turned out the conflict of uart init definition
like MPC10X_UART0_IRQ in ../syslib/mpc10x_common.c
and SERIAL_PORT_DFNS in ../platform/sandpoint.h. By
now, only MPC10X_UART0_IRQ stuff is needed.
SERIAL_PORT_DFNS should be omitted.

Seems it's time for me to stand with Russell:-)

I must confess that I am a stupid guy on kernel
programming. The result on PPC side, I mean sandpoint
board, still needs Mark's confirmation.

Following is the bug-fixed boot log on a custom
8241 board.

Loading kernel ......
Linux version 2.6.13-rc3 (root@xxxxxxxxxxx) (gcc
version 3.2.2 20030217 (Yellow Dog Linux 3.0 3.2.2-
......
Based on the Freescale Sandpoint Development System
Built 1 zonelists
Kernel command line: console=ttyS1,115200
root=/dev/nfs rw
nfsroot=192.168.57.200:/opt/eldk3/ppc_82xx
ip=192.168.57.243:192.1OpenPIC
Version 1.2 (1 CPUs and 11 IRQ sources) at fdf40000
OpenPIC timer frequency is 100.000000 MHz
PID hash table entries: 512 (order: 9, 8192 bytes)
time_init: decrementer frequency = 25.000000 MHz
Dentry cache hash table entries: 16384 (order: 4,
65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768
bytes)
Memory: 62848k available (1572k kernel code, 388k
data, 104k init, 0k highmem)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
PCI: Probing PCI hardware
PCI: Cannot allocate resource region 1 of device
0000:00:00.0
inotify syscall
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096
bytes)
Installing knfsd (copyright (C) 1996
okir@xxxxxxxxxxxx).
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports,
IRQ sharing disabled
ttyS0 at MMIO 0xfdf04500 (irq = 9) is a 16550A
ttyS1 at MMIO 0xfdf04600 (irq = 10) is a 16550A
io scheduler noop registered
RAMDISK driver initialized: 16 RAM disks of 4096K size
1024 blocksize
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
......
IP-Config: Guessing netmask 255.255.255.0
IP-Config: Complete:
device=eth0, addr=192.168.57.243,
mask=255.255.255.0,
gw=255.255.255.255,
host=8241, domain=, nis-domain=(none),
bootserver=192.168.57.200,
rootserver=192.168.57.200, rootpath=
Looking up port of RPC 100003/2 on 192.168.57.200
Looking up port of RPC 100005/1 on 192.168.57.200
VFS: Mounted root (nfs filesystem).
Freeing unused kernel memory: 104k init
INIT: version 2.84 booting
Welcome to DENX Embedded Linux Environment
Press 'I' to enter interactive startup.
Building the cache [ OK ]
Mounting proc filesystem: [ OK ]
Configuring kernel parameters: [ OK ]
......
Mounting NFS filesystems: [ OK ]
Mounting other filesystems: [ OK ]
Starting xinetd: [ OK ]

8241 login: root
Last login: Wed Dec 31 19:00:33 on console
bash-2.05b# ls
bash-2.05b# cd /
bash-2.05b# ls
bin dev images lib mnt root tmp var
boot etc proc sbin usr
bash-2.05b# cat /proc/interrupts
CPU0
0: 18707 OpenPIC Level eth0
10: 258 OpenPIC Level serial
BAD: 14

Thanks for your time,

Sam

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/