We are trying to use the Maxim 3100 SPI-to-serial based UART and driver (developed by Christian Pellegrin) with the MPC8313 Freescale micro. Has anyone been able to get the driver to recognize data that gets received from the (TTL) side of the device and captured over the SPI bus?
We're are able to transmit data reliably over the SPI bus and out the MAX3100 TxD (TTL) pin using “echo Test 3100 > ttymax” so it appears the SPI configuration and chip enable line are configured correctly. However, we cannot get the device to initiate an interrupt in order for the receive data to be fetched and processed from the receive buffer.
It appears that the MAX300 interrupt line never gets asserted low because the 3100 appears to be entering power down mode.
I would expect that by issuing “cat ttymax > file” would cause the TTL data, that is being injected at the MAX3100 RxD pin, to get captured into the file but no data is being captured.
Below I've captured the U-Boot output.
Any recommendation would be greatly appreciated.
Regards,
Bob Morgan
Eaton Connectivity Group
Robertmmorgan@eaton.com
(919) 431-6360
NAND boot... transfering control
U-Boot 2010.06 (Sep 28 2011 - 10:26:40) MPC83XX
Reset Status:
CPU: e300c3, MPC8313, Rev: 2.1 at 266.667 MHz, CSB: 133.333 MHz
Board: PowerXpert MiniSlot Card
I2C: ready
DRAM: 128 MiB
NAND: 1024 MiB
Using default environment
In: serial
Out: serial
Err: serial
Net: TSEC0: No support for PHY id 221513; assuming generic
TSEC0
Hit any key to stop autoboot: 0
Creating 1 MTD partitions on "nand0":
0x000000500000-0x000040000000 : "mtd=1"
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
nand_read_bbt: Bad block at 0x000002da0000
nand_read_bbt: Bad block at 0x0000045c0000
nand_read_bbt: Bad block at 0x000007d40000
nand_read_bbt: Bad block at 0x00000c140000
nand_read_bbt: Bad block at 0x00000fae0000
nand_read_bbt: Bad block at 0x000012de0000
nand_read_bbt: Bad block at 0x000013940000
nand_read_bbt: Bad block at 0x0000145a0000
nand_read_bbt: Bad block at 0x000016500000
nand_read_bbt: Bad block at 0x00001fac0000
nand_read_bbt: Bad block at 0x000020c20000
nand_read_bbt: Bad block at 0x000022080000
nand_read_bbt: Bad block at 0x000023420000
nand_read_bbt: Bad block at 0x000026da0000
nand_read_bbt: Bad block at 0x000027260000
nand_read_bbt: Bad block at 0x000029ee0000
nand_read_bbt: Bad block at 0x00002ae80000
nand_read_bbt: Bad block at 0x00002fd40000
nand_read_bbt: Bad block at 0x000031300000
nand_read_bbt: Bad block at 0x000035600000
nand_read_bbt: Bad block at 0x00003b1c0000
nand_read_bbt: Bad block at 0x00003d780000
nand_read_bbt: Bad block at 0x00003dca0000
nand_read_bbt: Bad block at 0x00003dec0000
nand_read_bbt: Bad block at 0x00003fac0000
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 129024 bytes
UBI: smallest flash I/O unit: 2048
UBI: sub-page size: 512
UBI: VID header offset: 512 (aligned 512)
UBI: data offset: 2048
UBI: attached mtd1 to ubi0
UBI: MTD device name: "mtd=1"
UBI: MTD device size: 1019 MiB
UBI: number of good PEBs: 8123
UBI: number of bad PEBs: 29
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 1
UBI: available PEBs: 0
UBI: total number of reserved PEBs: 8123
UBI: number of PEBs reserved for bad PEB handling: 81
UBI: max/mean erase counter: 2/1
UBIFS: recovery needed
UBIFS: recovery deferred
UBIFS: mounted UBI device 0, volume 0, name "container"
UBIFS: mounted read-only
UBIFS: file system size: 1035675648 bytes (1011402 KiB, 987 MiB, 8027 LEBs)
UBIFS: journal size: 9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)
UBIFS: media format: w4/r0 (latest is w4/r0)
UBIFS: default compressor: LZO
UBIFS: reserved for root: 0 bytes (0 KiB)
Loading file '/part' to addr 0x00200000 with size 1 (0x00000001)...
Done
Total of 1 byte were the same
Speed: 100, full duplex
Using TSEC0 device
TFTP from server 192.168.1.11; our IP address is 192.168.1.10
Filename 'uImage'.
Load address: 0x200000
Loading: #################################################################
##############################################
done
Bytes transferred = 1629316 (18dc84 hex)
Speed: 100, full duplex
Using TSEC0 device
TFTP from server 192.168.1.11; our IP address is 192.168.1.10
Filename 'px-ms.dtb'.
Load address: 0x800000
Loading: #
done
Bytes transferred = 5806 (16ae hex)
## Booting kernel from Legacy Image at 00200000 ...
Image Name: Linux-2.6.39
Created: 2011-10-12 16:21:05 UTC
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 1629252 Bytes = 1.6 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 00800000
Booting using the fdt blob at 0x800000
Uncompressing Kernel Image ... OK
Loading Device Tree to 007fb000, end 007ff6ad ... OK
IntFixup: detected TSEC0, fixing interrupts for rev 2.1 8313 silicon
IntFixup: TSEC1 not configured, skipping interrupt fixup.
Using MPC831x RDB machine description
Linux version 2.6.39 (bob@bob-desktop) (gcc version 4.5.1 (GCC) ) #75 PREEMPT We
d Oct 12 12:21:01 EDT 2011
bootconsole [udbg0] enabled
setup_arch: bootmem
mpc831x_rdb_setup_arch()
arch: exit
Zone PFN ranges:
DMA 0x00000000 -> 0x00008000
Normal empty
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0x00000000 -> 0x00008000
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: ubi.mtd=1 root=ubi0:container rw rootfstype=ubifs initlo=/r
ootfs1.img init=/linuxrc
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 126508k/131072k available (3164k kernel code, 4564k reserved, 120k data,
68k bss, 156k init)
Kernel virtual memory layout:
* 0xfffdf000..0xfffff000 : fixmap
* 0xfdffc000..0xfe000000 : early ioremap
* 0xc9000000..0xfdffc000 : vmalloc & ioremap
SLUB: Genslabs=15, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:512 nr_irqs:512 16
IPIC (128 IRQ sources) at c9000700
clocksource: timebase mult[7800001] shift[22] registered
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
NET: Registered protocol family 16
bio: create slab <bio-0> at 0
Freescale Elo / Elo Plus DMA driver
Switching to clocksource timebase
Switched to NOHz mode on CPU #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
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
WDT driver for MPC8xxx initialized. mode:reset timeout=65535 (32 seconds)
fsl-elo-dma e00082a8.dma: #0 (fsl,elo-dma-channel), irq 71
fsl-elo-dma e00082a8.dma: #1 (fsl,elo-dma-channel), irq 71
fsl-elo-dma e00082a8.dma: #2 (fsl,elo-dma-channel), irq 71
fsl-elo-dma e00082a8.dma: #3 (fsl,elo-dma-channel), irq 71
squashfs: version 4.0 (2009/01/31) Phillip Lougher
aufs 2.1-39-rcN
msgmni has been set to 247
io scheduler noop registered
io scheduler deadline registered (default)
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xe0004500 (irq = 16) is a 16550A
console [ttyS0] enabled, bootconsole disabled
console [ttyS0] enabled, bootconsole disabled
serial8250.0: ttyS1 at MMIO 0xe0004600 (irq = 17) is a 16550A
brd: module loaded
loop: module loaded