Messages in this thread | | | Date | Thu, 6 Feb 1997 12:51:30 -0600 (CST) | From | Ronnie Sanford <> | Subject | Porting the Digi driver |
| |
Hi All,
I am trying to port the latest Digi Serial driver to the 2.1.x series kernels (In this case 2.1.24). The driver works find under 2.0.28 but running under the new kernel it fails. In particular it fails the first time it actually attempts to access the board.
Here is the line it fails on : ch->txptr = memaddr + (((bc->tseg) << 4) & 0x1fffff);
The above pertinent parts are defined as such:
unsigned char *memaddr; volatile ushort tseg;
bc->tseg is actually referencing our board and is initialized as such:
bc = (volatile struct board_chan *) ((ulong)memaddr + CHANSTRUCT);
Above CHANSTRUCT = 0x1000, and memaddr = 0xd0000 The offset of tseg in the bc structure is 0x8. So the address below 000d1008 looks correct to me. We are trying to address the physical location on our board address 0x0d1008. ------------------------------------------------------------------ My question : Has the mapping changed here ? Do we need to do something similar to the way PCI address are handeled with an ioremap command ? If this is not correct how do you go about referencing physical memory.
I looked at some of the other serial type drivers, but gained no clues. Any help would be seriously appreciated !!!!!
Thanks,
Ronnie Sanford Digi International PS - Dump follows
A copy of the dump follows : ------------------------------------------------------------------ Unable to handle kernel paging request at virtual address 000d1008 current->tss.cr3 = 00d67000, %cr3 = 00d67000 *pde = 00000000 Oops: 0000 CPU: 0 EIP: 0010:[<c019b26e>] EFLAGS: 00013296 eax: 0007f2fb ebx: c021a7e8 ecx: 4000000d edx: 00015f90 esi: 00000002 edi: 000d0d10 ebp: 000d1000 esp: c0c4aed4 ds: 0018 es: 0018 ss: 0018 Process digiDload (pid: 230, process nr: 44, stackpage=c0c4a000) Stack: c01d30fb c01d30fb c01d30fb 00000000 00000000 c09de400 00006569 00000002 00000019 00003246 c019db00 00000124 00000002 00000020 00000000 c0219a28 000d0d10 000d0000 00000000 c019c1ce 00000000 c0c75000 00000000 c09de400 Call Trace: [<c019db00>] [<c019c1ce>] [<c0184674>] [<c0184674>] [<c01786f9>] [<c018a451>] [<c012e417>] [<c010a3f6>] Code: 66 8b 45 08 c1 e0 04 25 f0 7f 00 00 03 44 24 44 89 43 60 66
| |