News: This forum is now permanently frozen.
Pages: [1] 2
Topic: Nokia IP110/IP120/IP130 trap 12 crash fix  (Read 17108 times)
« on: December 22, 2007, 01:47:33 »
bruce_walter *
Posts: 5

I'm happy to say that I have resolved the issue causing the trap 12 on the Nokia IP110, IP120 and IP130's.  I've run the changes past John Baldwin of the FreeBSD project and the patch will likely be committed to the RELENG_6 & RELENG_7 branches at some point in the future.  It should apply cleanly to 6.1 and 6.2 as well.

I am attaching the patch to this post.  It should be applied to your FreeBSD sources as follows:

cd /usr/src/sys/i386/pci
patch < /path/to/freebsd_nokia_ip1X0.diff

Assuming both chunks are applied successfully, the resulting kernel will no longer crash on boot.  My next efforts will be trying to find where Nokia hid the MAC addresses for the ethernet controllers.

Thank you all for your work on this great project!

- Bruce

(PS: I had to add a .txt to the diff file to upload it to the forum)

* freebsd_nokia_ip1X0.diff.txt (1.68 KB - downloaded 443 times.)
« Reply #1 on: December 22, 2007, 16:36:11 »
deanlester *
Posts: 11

omg hurray! Great work Bruce!

For those of us that are not yet up to FreeBSD kernel hacking kung-fu as you, do you mind sharing a patched CF image we can use until the patch is added to the kernel?

Many thanks,
Dean Lester
« Reply #2 on: December 22, 2007, 18:00:28 »
bruce_walter *
Posts: 5

I'll see what I can do...  I actually use pfSense but I cross-posted because I knew there were quite a few Nokia folks lurking here as well.
« Reply #3 on: January 08, 2008, 14:47:44 »
Cadoc *
Posts: 4

Has this fix been applied to the latest beta release?
« Reply #4 on: January 13, 2008, 01:01:04 »
omvanderwiele *
Posts: 3

Many thanks for the patch for the IP120. Effectivily, this will allow later on also pfSense on the IP120 platform. But I have something in return...

My next efforts will be trying to find where Nokia hid the MAC addresses for the ethernet controllers.

The MAC addresses are not hidden, they are not in EEPROM. SOlution is simple: add them to the EEPROM. See my forum post http://forum.m0n0.ch/index.php/topic,1471.0.html
« Reply #5 on: January 14, 2008, 11:35:57 »
KimTuomi *
Posts: 18


If there would be any chance to get the kernel patch to be implemented in some m0n0wall beta release (hopefully soon), I could perform the test for it in the following boxes:

Nokia IP120, IP260 (or was it IP265...), IP350, IP380, IP530, IP650, IP740

I wonder if Manuel is going to release a m0n0wall with patched kernel at all, or is he waiting for official FreeBSD release.
« Reply #6 on: January 15, 2008, 03:11:34 »
bruce_walter *
Posts: 5

omvanderwiele:

Most excellent!  I have some friends at an Intel lab.  I'll see if I can find out exactly what the erupdate utility does.  If it can be ported to *nix we can have a fix for this once and for all.  At worst, I suppose dos could be emulated from an installed bsd/linux system on the hard drive.

KimTuomi:

This patch should only affect the 1X0 Nokia's (e.g. 110/120/130) as they are based on the Geode support chipset.  I have a couple of 330's which seem to be happy with all BSD's.  The problem was in the way that the PCI interrupts were being routed.  It would only affect systems that all of the following:

1) The BIOS uses a $PIR table for interrupt routing.

2) The PCI bus has at least one device with only a single possible IRQ.

3) The BIOS reacts badly to remapping an already mapped IRQ to the same pin.

The 1X0's have all three, but very few other systems do.  This is likely why it went unfixed for so long.

Cheers all!  And again, many thanks for the info on the blank eeproms... I had just assumed that the driver was looking in the wrong place!

- Bruce
« Reply #7 on: January 15, 2008, 08:24:22 »
KimTuomi *
Posts: 18


I think (I have heard) that it works fine with IP330 (have not tried myself), but I know that it crashes in just about anything else.. IP1x0 are indeed with Geode CPU's, where others are based on genuine Intel Pentiums. However, the exact same panic occurs with them (with m0n0 v1.3).

That's why I'd like to try the fixed kernel but I have no skill to patch it myself.
« Reply #8 on: January 15, 2008, 21:50:21 »
Manuel Kasper
Administrator
*****
Posts: 364

This patch is now in m0n0wall 1.3b9 - thanks, Bruce!
« Reply #9 on: January 16, 2008, 09:56:37 »
KimTuomi *
Posts: 18

Excellent, Manuel & Bruce!

Will try that maybe this evening, I will report if everything works, with the other Nokia IP series platforms.


EDIT: It seems that it doesn't work with other hardware. I tried with IP260 and IP380(/350). In IP260, it gives "trap 9" and in IP380/350 it doesn't give anything; just reboots.

This is the terminal output of IP380:

Code:
+------------------------------------------------------------------------------+
|          System BIOS Configuration, (C) 2000 General Software, Inc.          |
+---------------------------------------+--------------------------------------+
| System CPU           : Pentium III    | Low Memory           : 637KB         |
| Coprocessor          : Enabled        | Extended Memory      : 255MB         |
| Floppy 0 Type        : Not installed  | Serial Ports 1-2     : 03F8 02F8     |
| Floppy 1 Type        : Not installed  | Serial Ports 3-4     :               |
| Ide 0 Type           : 3              | Parallel Ports       :               |
| Ide 1 Type           : 3              | ROM Shadowing        : Disabled      |
| Embedded BIOS Date   : 05/09/02       | Manufacturing Mode   : Disabled      |
+---------------------------------------+--------------------------------------+
Consoles: internal video/keyboard 
BIOS drive C: is disk0
BIOS 637kB/261120kB available memory

FreeBSD/i386 bootstrap loader, Revision 1.1
(root@mb62.neon1.net, Sat Dec  9 17:20:01 CET 2006)
/kernel text=0x480ac8 data=0x99954+0x324d0 syms=[0x4+0x59ba0+0x4+0x7050a]
Copyright (c) 1992-2007 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 6.2-RELEASE-p10 #0: Tue Jan 15 20:11:29 CET 2008
    root@mb62.neon1.net:/usr/src/sys/i386/compile/M0N0WALL_GENERIC
T

The char "T" is the last one, then a reboot.


Here is the terminal output of IP260:

Code:
F... E... D... C... B... A... 9... 8... 7... 6... 5... 4... 3... 2... 1... 0...
Nokia Baja bootstrap loader, Version 2.02
Copyright (c) 1997-2005, Nokia, Inc.
Baja motherboard type 5981, Manu. Rev 9, Board Rev 1
CPU Id 0x06B0 stepping 4, Rev 0, L2 Cache 256KB
512MB SDRAM memory
DIMM 0 256 MBytes, Single Sided  DIMM 1 256 MBytes, Single Sided 
THIS MACHINE HAS NOT YET PASSED MANUFACTURE-TIME DIAGNOSTICS
pci0: probing for devices:
pci0: device 0/0 found (Intel 82815E Host-Hub bridge, type 0x11308086)
pci0: device 1/0 found (Intel 82815E AGP bridge, type 0x11318086)
        PCI-to-PCI bridge found
pci0: device 30/0 found (Intel Hub interface to PCI bridge , type 0x244E8086)
        PCI-to-PCI bridge found
pci0: device 31/0 found (Intel ICH2 LPC Interface bridge, type 0x24408086)
pci0: device 31/1 found (Intel ICH2 IDE controller , type 0x244B8086)
pci0: device 31/3 found (Intel ICH2 SMBus controller, type 0x24438086)
pci1: (connected via pci0) probing for devices:
pci2: (connected via pci0) probing for devices:
pci2: device 0/0 found (Broadcom 5823, type 0x582314E4)
pci2: device 1/0 found (TI 1250 PCMCIA, type 0xAC55104C)
        PCI-to-PCMCIA bridge found
pci2: device 1/1 found (TI 1250 PCMCIA, type 0xAC55104C)
        PCI-to-PCMCIA bridge found
pci2: device 2/0 found (Intel 82559ER, type 0x12098086)
pci2: device 3/0 found (Intel 82559ER, type 0x12098086)
pci2: device 4/0 found (Intel 82559ER, type 0x12098086)
pci2: device 5/0 found (Intel 82559ER, type 0x12098086)
Loading kernel from BIOS_BOOT
Loading master boot sector...
Transferring control to the master bootstrap loader...
/
FreeBSD/i386 boot
Default: 0:ad(0,a)/boot/loader
boot: Consoles: internal video/keyboard 
BIOS drive C: is disk0
BIOS 640kB/523264kB available memory

FreeBSD/i386 bootstrap loader, Revision 1.1
(root@mb62.neon1.net, Sat Dec  9 17:20:01 CET 2006)
/kernel text=0x480ac8 data=0x99954+0x324d0 syms=[0x4+0x59ba0+0x4+0x7050a]
Copyright (c) 1992-2007 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 6.2-RELEASE-p10 #0: Tue Jan 15 20:11:29 CET 2008
    root@mb62.neon1.net:/usr/src/sys/i386/compile/M0N0WALL_GENERIC
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Celeron(TM) CPU                 400MHz (400.91-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x6b4  Stepping = 4
  Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
real memory  = 67502080 (64 MB)
avail memory = 39915520 (38 MB)
wlan: mac acl policy registered
kbd1 at kbdmux0
ath_hal: 0.9.17.2 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
cpu0 on motherboard
pcib0: <Intel 82815 (i815 GMCH) Host To Hub bridge> pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pcib2: <PCI-PCI bridge> at device 30.0 on pci0
pci2: <PCI bus> on pcib2
pci2: <processor> at device 0.0 (no driver attached)
cbb0: <TI1520 PCI-CardBus Bridge> mem 0x80010000-0x80010fff irq 11 at device 1.0 on pci2
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
cbb0: bad Vcc request. ctrl=0x400, status=0x30000206
cbb_power: 0V
cbb1: <TI1520 PCI-CardBus Bridge> mem 0x80040000-0x80040fff irq 11 at device 1.1 on pci2
cardbus1: <CardBus bus> on cbb1
pccard1: <16-bit PCCard bus> on cbb1
fxp0: <Intel 82559ER Embedded 10/100 Ethernet> port 0x3040-0x307f mem 0x80080000-0x80080fff,0x800a0000-0x800bffff irq 5 at device 2.0 on pci2
miibus0: <MII bus> on fxp0
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp1: <Intel 82559ER Embedded 10/100 Ethernet> port 0x3080-0x30bf mem 0x800d0000-0x800d0fff,0x800e0000-0x800fffff irq 6 at device 3.0 on pci2
miibus1: <MII bus> on fxp1
inphy1: <i82555 10/100 media interface> on miibus1
inphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp2: <Intel 82559ER Embedded 10/100 Ethernet> port 0x30c0-0x30ff mem 0x80110000-0x80110fff,0x80120000-0x8013ffff irq 7 at device 4.0 on pci2
miibus2: <MII bus> on fxp2
inphy2: <i82555 10/100 media interface> on miibus2
inphy2:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp3: <Intel 82559ER Embedded 10/100 Ethernet> port 0x3400-0x343f mem 0x80150000-0x80150fff,0x80160000-0x8017ffff irq 9 at device 5.0 on pci2
miibus3: <MII bus> on fxp3
inphy3: <i82555 10/100 media interface> on miibus3
inphy3:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH2 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x2000-0x200f at device 31.1 on pci0
ata0: <ATA channel 0> on atapci0
ata1: <ATA channel 1> on atapci0
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)


Fatal trap 9: general protection fault while in kernel mode
instruction pointer     = 0x70:0x6cb3
stack pointer           = 0x28:0xfd0
frame pointer           = 0x28:0x169
code segment            = base 0xc00f0000, limit 0xffff, type 0x1b
                        = DPL 0, pres 1, def32 0, gran 0
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 0 (swapper)
trap number             = 9
panic: general protection fault
Uptime: 1s
Automatic reboot in 15 seconds - press a key on the console to abort


If someone's (Bruce?) is willing to pursue this issue further, I'm gladly lending a hand. If need be, I can give it a run with some debug build or whatever. I just need an image to write to a hard disk or CF + some instructions.
« Last Edit: January 16, 2008, 19:51:11 by KimTuomi »
« Reply #10 on: February 02, 2008, 04:40:11 »
bruce_walter *
Posts: 5

Hrm...  I don't have access to anything but IP120's and IP330's.  I'll see what I can dig up from the trap information.

IIRC, the 380 and 260 are both true Intel CPU's, is that correct?

- Bruce
« Reply #11 on: February 25, 2008, 10:26:23 »
KimTuomi *
Posts: 18

Yes, they are true, Genuine Intel Pentium III machines.

If you have somekind of quick instruction, I can run the thing in the boxes and get further debug data if it's possible. Somekind of FreeBSD debug build or something?
« Reply #12 on: March 24, 2008, 23:52:18 »
PipoCanaja *
Posts: 3

Hi,

I do also have an IP 380 box and I'm trying to run an other OS than IPSO on it. Up to now :
 + FreeBSD: Same crash as described before
 + Linux: As far as USB support is disabled, the unit will boot but no way to enable the networking (the module won't load, so no way to manually specify any mac address)
 + NetBSD: As far as USB support is disable the unit will boot smoothly, but the mac address is not settable in NetBSD's ifconfig, and doing the "bridge" trick does not help. Trying to manually patch the kernel driver to set a mac address from the interface number right now (but not enough time so far to do it). So the networking is not working yet, I can send packets but no reception on the Nokia Box.
 + OpenBSD: I experienced crashes up to now, but did not really investigate on them.

I can do testing for debug. (right now, the netbsd is installed, but I have a spare hard disk somewhere).

May be we can start a dedicated post.

Bye,
PipoCanaja
« Reply #13 on: July 15, 2008, 23:14:24 »
Wirelesspirat *
Posts: 1

Hi,

is there anything new about this problem.
I've got a nokia ip 350 and faced the same problem as described a few posts above --> reboot loop  Sad Angry

cu, Simon
« Reply #14 on: October 21, 2008, 12:06:01 »
KimTuomi *
Posts: 18


Let's pull this up a bit..

I faced another problem with these series of devices, posted to Bug Reports a while back:

http://forum.m0n0.ch/index.php/topic,2373.0.html
 
Pages: [1] 2
 
 
Powered by SMF 1.1.20 | SMF © 2013, Simple Machines