Like I thought. I just ioremap()'d the PCI8bit, and "presto."
I faithfully copied all of Matthieu's code from 8250_ts_ser1.c to parport_pc.c,
but this is just a hack. I rename COM1,2,3 as COMA,B and verified writing to
the port addresses works. But the parport_pc.c file is now a Fraken-file that
also handles TS-SER2 serial ports. Hence I ask about packaging. What seems
like a good idea for the structure? Anyone care?
It will be a few days until I can verify everything, but right now it is
looking pretty good!
>
> --- In "burnster" <cdunson@> wrote:
> >
> > Sorry to be such a hacker folks, but it looks as though I have missed
> > something very important. The 2.6.29-ts distribution only has
> > "ts7400_defconfig" whereas Matthieu Crapet's build has a number of other
> > options that might make all of this work. Apologies for my ignorance, I
> > somehow came to the conclusion that they are one in the same thing.
> >
> > Apparently they are not, and I am a confused newbie.
> > So following the reasoning that the supported driver from TS on LINUX ARM
> > for the TS-SER1 card appears to be "8250_ts_ser1" for ARM Linux, it might
> > be the place to start figuring out how to finish this project. Is that
> > correct? Does anyone believe that modprobe-ing the right combination of
> > supplied TS serial modules will result in the kernel allowing us to
> > read/write the parallel port addresses on the TS-SER2?
> >
> > 8250_ts_ser1 fails initialization, and I can tell yet whether it fails
> > insertion because I have jumper disabled the serial ports on TS-SER2, or
> > because it only works with TS-SER1. I am about to disassemble everything
> > and check it out. Am I barking up the wrong tree?
> >
> > Again our config is listed in detail here:
> >
> > http://www.quakefinder.com/smf/index.php/topic,103.msg518.html#msg518
> >
> > We are considering three options to pursue this week:
> >
> > 1) Set up a second system and build Crapet's kernel, etc.
> > 2) Continue looking for our connector-injected signals in /dev/mem (doesn't
> > work)
> > 3) Determine the differences applied in the serial modules and transfer
> > these lessons to a patched parport_pc driver.
> >
> > Any insights will be greatly appreciated. Thank a lot! Our schedule is
> > simple: a few more days, and then we must take it up with TS directly.
> >
> > --- In "burnster" <cdunson@> wrote:
> > >
> > > Made some more progress on this. Having instrumented parport_pc.c in
> > > detail, now I see much more:
> > >
> > > First, we have jumpered our TS-SER2 for 0x378 and IRQ 7, and entered
> > > various options attempting to get things working into
> > > /etc/modprobe.d/parport.conf. And again we have stock 2.6.29-ts with
> > > gnueabi-gcc-3.4.4, with the only mod to the stock build being addition of
> > > the parallel support:
> > >
> > > CONFIG_PARPORT=m
> > > CONFIG_PARPORT_PC=m
> > > # CONFIG_PARPORT_PC_FIFO is not set
> > > # CONFIG_PARPORT_PC_SUPERIO is not set
> > > # CONFIG_PARPORT_GSC is not set
> > > CONFIG_PARPORT_AX88796=m
> > > CONFIG_PARPORT_1284=y
> > > CONFIG_PARPORT_NOT_PC=y
> > > # CONFIG_I2C_PARPORT is not set
> > > # CONFIG_I2C_PARPORT_LIGHT is not set
> > >
> > >
> > > Lessons learned and questions.
> > >
> > >
> > > 1. Do not enable the superio option: CONFIG_PARPORT_PC_SUPERIO! This is
> > > experimental code and it segfaults superio os irrelevant for TS boards
> > > anyway.
> > >
> > >
> > > 2. There is no evidence of parport_pc ever having been ported to ARM.
> > > For example, it has hexadecimally hard coded Intel port addresses such as
> > > this very important statement found at line 2235:
> > >
> > > if (base != 0x3bc) {
> > >
> > > According to everything I have read from TS and this group, we must use
> > > the address 0x11e03bc, etc. as the port address
> > >
> > >
> > > 3. The driver gives a segmentation fault when executing this emulated
> > > statement at line 1694 of parport_pc.c:
> > >
> > > outb (r, CONTROL (pb));
> > >
> > > which nets us:
> > >
> > > Jan 21 19:34:38 cmn899 kernel: Unable to handle kernel paging request at
> > > virtual address 11e0037a
> > >
> > > This line shows that our port address assignment, which we did via
> > > /etc/modprobe.d/parport.conf succeeded. But the kernel is not happy with
> > > our attempt to access this address. The rest of the kernel complaints
> > > are below.
> > >
> > > What do I need to do to get the kernel to allow me to access those
> > > addresses? Am I on the right track? Thanks a lot! The folks at TS told
> > > my buyer that it "should" work on ARM. I am dubious now, but no matter,
> > > we must push forward anyway. Thanks again!
> > >
> > > - Clark
> > >
> > >
> > > Jan 21 19:34:38 cmn899 kernel: Unable to handle kernel paging request at
> > > virtual address 11e0037a
> > > Jan 21 19:34:38 cmn899 kernel: pgd = cc1ac000
> > > Jan 21 19:34:38 cmn899 kernel: [11e0037a] *pgd=00000000
> > > Jan 21 19:34:38 cmn899 kernel: Internal error: Oops: 805 [#1] PREEMPT
> > > Jan 21 19:34:38 cmn899 kernel: Modules linked in: parport_pc(+) parport
> > > usbhid hid zd1201 firmware_class ext3 jbd vfat fat usb_storage sd_mod
> > > scsi_mod evdev input_core ohci_hcd rtc_ep93xx usbcore 8250 tssdcard
> > > Jan 21 19:34:38 cmn899 kernel: CPU: 0 Not tainted (2.6.29-ts #12)
> > > Jan 21 19:34:38 cmn899 kernel: PC is at parport_pc_probe_port+0x1d8/0x9ac
> > > [parport_pc]
> > > Jan 21 19:34:38 cmn899 kernel: LR is at vprintk+0x30c/0x378
> > > Jan 21 19:34:38 cmn899 kernel: pc : [<bf126f6c>] lr : [<c0045d08>]
> > > psr: 60000013
> > > Jan 21 19:34:38 cmn899 kernel: sp : cc64fc88 ip : cc64fbf8 fp : cc64fcdc
> > > Jan 21 19:34:38 cmn899 kernel: r10: 11e00378 r9 : 0000000c r8 : 00000000
> > > Jan 21 19:34:38 cmn899 kernel: r7 : cc6fb5a8 r6 : cd4e8728 r5 :
> > > cc6fb5a8 r4 : c03086c8
> > > Jan 21 19:34:38 cmn899 kernel: r3 : 11e00378 r2 : cc64e000 r1 :
> > > c02da420 r0 : 00000020
> > > Jan 21 19:34:38 cmn899 kernel: Flags: nZCv IRQs on FIQs on Mode SVC_32
> > > ISA ARM Segment user
> > > Jan 21 19:34:38 cmn899 kernel: Control: c000717f Table: e41ac000 DAC:
> > > 00000015
> > > Jan 21 19:34:38 cmn899 kernel: Process modprobe (pid: 899, stack limit =
> > > 0xcc64e268)
> > > Jan 21 19:34:38 cmn899 kernel: Stack: (0xcc64fc88 to 0xcc650000)
> > > Jan 21 19:34:38 cmn899 kernel: fc80: 00000000 00000000
> > > cc64e000 cc6fb5c8 cc0dde40 cc5f88e0
> > > Jan 21 19:34:38 cmn899 kernel: fca0: 00000000 cc1c58a0 ffffffff 11e00778
> > > cc64fccc 00000001 bf12c404 bf12c404
> > > Jan 21 19:34:38 cmn899 kernel: fcc0: 11e00378 bf12c134 cc64e000 00000000
> > > cc64fd0c cc64fce0 bf12c2ec bf126da4
> > > Jan 21 19:34:38 cmn899 kernel: fce0: 00000000 d84156c5 cc64fd34 00000007
> > > 00004a1f bf12955c 00000000 cc64e000
> > > Jan 21 19:34:38 cmn899 kernel: fd00: cc64ff7c cc64fd10 c0025308 bf12c144
> > > 00000000 00000780 0000000f 00000000
> > > Jan 21 19:34:38 cmn899 kernel: fd20: cc64fd6c cc64fd30 c0093940 c0093208
> > > cc64fd6c cc64fd40 c0093434 c0092e88
> > > Jan 21 19:34:38 cmn899 kernel: fd40: cc64fd6c cd409524 cd4071e0 cd408900
> > > cd409500 cd4071e0 c03283e0 00000010
> > > Jan 21 19:34:38 cmn899 kernel: fd60: cc64fd84 cc64fda0 ffffffff 00000001
> > > c0093434 cd4048e0 00000001 c0308ae4
> > > Jan 21 19:34:38 cmn899 kernel: fd80: c0475524 c00ddd04 c031e228 c03092e0
> > > cc64fdbc cc64fda0 c0268ab0 c0062630
> > > Jan 21 19:34:38 cmn899 kernel: fda0: 00000000 cd5afe30 cc64fe28 cd5b8fc8
> > > cc64fdcc cc64fdc0 c0268b24 c0268a08
> > > Jan 21 19:34:38 cmn899 kernel: fdc0: cc64fe24 cc64fdd0 c00dde74 c0268b24
> > > c00de0d0 c015fd68 cc64fe04 cc64fde8
> > > Jan 21 19:34:38 cmn899 kernel: fde0: c0093220 c0093238 00000000 000004b0
> > > 00000032 d84156c5 cc64fe44 cc64fe08
> > > Jan 21 19:34:38 cmn899 kernel: fe00: c0093940 c0093208 00000001 c041df60
> > > c031c484 c008dd68 cc64fe4c cd4001c0
> > > Jan 21 19:34:38 cmn899 kernel: fe20: cd405df0 cd557c20 a0000013 c008dd68
> > > ce1f4000 00000000 cc64fe6c cc64fe48
> > > Jan 21 19:34:38 cmn899 kernel: fe40: c00945c4 c00936b4 c00749e0 00000005
> > > cd557c20 00000000 00000001 ce1f68e4
> > > Jan 21 19:34:38 cmn899 kernel: fe60: cc64fe8c cc64fe70 c008dd68 c0094518
> > > 0000001c cd5b8d88 bf12955c 0000001c
> > > Jan 21 19:34:38 cmn899 kernel: fe80: cc64fe9c cc64fe90 c008ddbc c008dca4
> > > cc64ff7c cc64fea0 c00683d4 c008dd94
> > > Jan 21 19:34:38 cmn899 kernel: fea0: 00000000 cc64ff08 08100077 00000438
> > > cc66b2d0 c026c424 c026c424 0000001c
> > > Jan 21 19:34:38 cmn899 kernel: fec0: 00000ba0 00000bb8 c004ad6c bf128b28
> > > 00000000 000000bb 000000bb 0000006c
> > > Jan 21 19:34:38 cmn899 kernel: fee0: 00000068 00000050 cc64e000 0000000a
> > > 00000014 0000001b 0000001a ce1f805c
> > > Jan 21 19:34:38 cmn899 kernel: ff00: cd557248 ce1f67f0 00000000 00000000
> > > 60000013 00000004 00000000 00000000
> > > Jan 21 19:34:38 cmn899 kernel: ff20: 00000268 00000040 00000000 00000000
> > > 00000000 00000000 c031e228 c03059a4
> > > Jan 21 19:34:38 cmn899 kernel: ff40: cc64ff6c 00004a1f bf12955c 00000000
> > > 00000000 00004a1f bf12955c 00000000
> > > Jan 21 19:34:38 cmn899 kernel: ff60: 00000000 c0026088 cc64e000 00000000
> > > cc64ffa4 cc64ff80 c0068514 c00252b0
> > > Jan 21 19:34:38 cmn899 kernel: ff80: 00000000 00008edc 00009064 00000000
> > > 00008edc 00000080 00000000 cc64ffa8
> > > Jan 21 19:34:38 cmn899 kernel: ffa0: c0025ee0 c006847c 00009064 00000000
> > > 4014d000 00004a1f 0001d570 00004a1f
> > > Jan 21 19:34:38 cmn899 kernel: ffc0: 00009064 00000000 00008edc 00000080
> > > 00000000 00000000 40025000 bef39984
> > > Jan 21 19:34:38 cmn899 kernel: ffe0: 00000000 bef398fc 0000b6b0 400e8f34
> > > 60000010 4014d000 00000000 00000000
> > > Jan 21 19:34:38 cmn899 kernel: Backtrace:
> > > Jan 21 19:34:38 cmn899 kernel: [<bf126d94>]
> > > (parport_pc_probe_port+0x0/0x9ac [parport_pc]) from [<bf12c2ec>]
> > > (parport_pc_init+0x1b8/0x28c [parport_pc])
> > > Jan 21 19:34:38 cmn899 kernel: [<bf12c134>] (parport_pc_init+0x0/0x28c
> > > [parport_pc]) from [<c0025308>] (do_one_initcall+0x68/0x1b0)
> > > Jan 21 19:34:38 cmn899 kernel: r7:cc64e000 r6:00000000 r5:bf12955c
> > > r4:00004a1f
> > > Jan 21 19:34:38 cmn899 kernel: [<c00252a0>] (do_one_initcall+0x0/0x1b0)
> > > from [<c0068514>] (sys_init_module+0xa8/0x1ac)
> > > Jan 21 19:34:38 cmn899 kernel: [<c006846c>] (sys_init_module+0x0/0x1ac)
> > > from [<c0025ee0>] (ret_fast_syscall+0x0/0x2c)
> > > Jan 21 19:34:38 cmn899 kernel: r7:00000080 r6:00008edc r5:00000000
> > > r4:00009064
> > > Jan 21 19:34:38 cmn899 kernel: Code: e1a01006 e59650f4 eb3c7b82 e5963000
> > > (e5c39002)
> > > Jan 21 19:34:38 cmn899 kernel: ---[ end trace 5421d086b0d5a7f3 ]---
> > >
> >
>
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|