• Welcome to OS2World OLD-STATIC-BACKUP Forum.
 

News:

This is an old OS2World backup forum for reference only. IT IS READ ONLY!!!

If you need help with OS/2 - eComStation visit http://www.os2world.com/forum

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Peter400

#1
Networking / No longer an issue
2010.09.17, 22:34:10
Hi folks,

I was not able to get to the bootom of the original problem and solve it. I still think there's something wrong with the interrupts from the PC Cards - they do not reach the driver.

Anyway, I found another Xircom card: RealPort CardBus Ethernet 10/100 + Modem 56. This is a newer and better card (the other ones I tried were just PCMCIA cards, not CardBus), and the driver is newer, too. And the best part is that it all works! DHCP works, too! (well, most of the time...)
So I no longer need to solve the PC Card problem ...

I did not have to change any settings. I'm not using any socket and card services (as instructed by Xircom).

Interestingly, while the driver loads, it displays the following message:

Xircom CardBus Ethernet 10/100 Adapter NDIS v3.14 (010612)
...
PCI IRQ routing unavailable - the driver is using ISA IRQ routing
Memory address 5B800000, IO Address F500, IRQ 11, Node Address <node-addr>


I do not really understand the IRQ routing secrets, but the message above seems to confirm that there's probably something unusual with my laptop's CardBus controller TI-1225, something that confuses OS/2 only, because Windows and Linux did not have a problem.

Once again thanks for everyone's help

Peter

#2
Quote from: Andi on 2010.08.26, 23:53:43
You suppose the driver can set up IO-Addresses and IRQs as in another post you wrote you'll try to use addresses starting at 320 and IRQ 10 which is different to what you use in W98. I've never seen a PCMCIA network card/driver which can do this. That does not mean that it is impossible. But in my experience it is not very likely. Or maybe I'm only used to older cards/drivers which definitely can not do such things.

Yes, you are right. I expect the driver to assign IO address and IRQ as configured. (Whether the card will work after that is a completely different matter.)
If it was not the case, the card would have a hard-coded IRQ of 3. I find this unlikely, because by default this IRQ had been used by serial communication ports for decades. It just happens that this is the lowest unused IRQ on my laptop, so both Windows and Linux grab and use it for the card.

Also, if I do not specify any IRQ, the driver says "A working IRQ could not be found" and then "The network is running in polled mode" before the boot process freezes.

Furthermore, the .NIF file description for the IRQ setting lists this piece of help: "This parameter selects a hardware interrupt for use by the adapter.", suggesting that the driver is in control of which IRQ will be used.

Peter

#3
Quote from: warpcafe on 2010.08.25, 14:12:58
well, there still is this one:
http://os2warp.be/index2.php?name=nicpak

It's a link to Chuck McKinnis' Nicpak which also lists a zip file for PCMCIA cards (an the ZIP can be downloaded).
This ZIP from Chuck has drivers for various Xircom pccards (listed on the page).
While Nicpak installer cannot detect PCMCIA cards and thus install drivers automatically, it at least HAS drivers in case we need. ;)
(Just as a last resort in case there is someting fishy about Peters drivers...)

I downloaded this package + pcmcia.zip and I see that the driver contained there is the same I'm already using.
But speaking of Chuck McKinnis, here's an old note from him on Xircom card success:

http://www.os2voice.org/VNL/past_issues/VNL0701H/vnewsft.htm

Unfortunately, this does not work on my laptop >:(

Peter
#4
Quote from: RobertM on 2010.08.25, 23:35:32
IF I recall correctly, the base address for MIDI/Game was usually 300, 330, or (configured to) something inbetween (such as 320) usually in increments of 10 (ie: 300/310/320/330). If memory serves, it's usually 330 and otherwise 300 by default on most of the common sound cards, but I have found other variants (310, 320, 500s, and so on).

hth,
Rob

I double checked, and there's no conflict. I do have a sound card, but it uses some addresses in the 500s range.
Nevertheless I tried to use 2C0 for a change, but the result is identical - The driver talks to the card, but all transmissions fail.

Peter
#5
Hi Andi,

Quote from: Andi on 2010.08.25, 11:31:42
Quote from: Peter400 on 2010.08.25, 04:49:51
....
I also tried it without enforcing IO mode, and without enforcing line speed - no success.
I'm using 10 Mbit setting, because the card is said to work in full duplex mode at this speed. Only half-duplex is possible with 100 Mbit.

Peter

Usually forcing Link speed/mode is a bad thing. It is guaranteed to work ONLY when the link partner is forced to the same settings too. Of course most times it will work if the other one is in Auto mode, but not for sure.

Your are sure your cabling is okay? Have you tried this setup with other OSes?

Yes, my router should handle 10 Mbit Ethernet. And another reason I went with 10 Mbit is that the Xircom dongle has a little light which is supposed to go on when the card works in 10 Mbit mode. The light goes on, so it provides me yet another assurance that the driver actually talks to the card.

The setup works without any changes in Linux and Windows 98.
Linux says on startup (dmesg):
   eth0: Xircom: port 0x300, irq 3, hwaddr <MAC-address-here>

In Windows I see the following resources:
  Input/Output Range   1020-102F
  Interrupt Request  03
  Memory Range    0A000000 - 0A000FFF
  Memory Range    0A001000 - 0A001FFF

In case you wonder, yes, I tried using IRQ 3 as well. It made no difference.

Peter
#6
Quote from: warpcafe on 2010.08.25, 14:12:58
And another request from my side:
Peter, can you add a line "VERBOSE=YES" to the protocol.ini section in question?
This will turn on diagnostic messages (like pccard controller detected et cetera).

HTH,
Thomas

Well, with VERBOSE=YES the driver crashes the boot badly. I get a register dump on the screen (I did not care to write down the values) and I have to turn the power down and up to get going ... and I did not notice any useful information displayed just before the crash either.

Peter
#7
Quote from: warpcafe on 2010.08.25, 11:32:15
Hi Peter,

okay, there is one thing that looks "wrong" with the protocol.ini in my mind:
For the operation mode ("MODE=...") you have selected "IO" however, there is no IO-Address specified... and I'm pretty sure the driver is not capable of "auto-assigning" itself an IO address even if "IOADDRESS=AUTO" is in there... which in theory means it will fallback to a default IO address (in the best case - otherwise it will simply fail). And even if it is assigned a default IOAddress, that particular one might already be used by something else.

I suggest you try
IOADDRESS=320
as an additional entry in protocol.ini... obviously, one should use an address that is available, however I can't tell how to check if that is free, IIRC there is something like "rmview /IO" on the command-line that shows the adresses in use... if that helps.

Yes, it uses the default IO addres 320 - see below.

Quote
Make sure you have the right socket (1,...4) specified.
BTW - is there no error message displayed at driver load?
There are loads of messages built into the driver like
- A card was not detected in the selected slot
- The specified IRQ failed resource checking
- The selected I/O address is in use
et cetera...
This could really be helpful ;)

When the driver loads, it displays the following message:

Xircom CreditCard Ethernet Adapter NDIS v2.90 (000107)
Copyright (C) Xircom, Inc. 1995-1999 All Rights Reserved
Resource checking has been disabled
Forcing 10 Mbit operation
Using Socket 1
IO Address 320, IRQ 10, Node Address <MAC-address-here>

Quote
In order for this to work, you must remove the "NOCHECK" line - because right now, with that "nocheck", the resources allocated by the driver will not be checked and you will not be given error messages in case they are unavailable. Here's a complete protocol.ini (the included IOADDRESS is "inactive" and just for information because mode is "MEM"ory...)

[CE3OS2_nif]
  DriveName = XIRCOM$
  IRQ = 10
  SOCKET = 1
  MODE = "MEM"
  MEMORY=0xD2000
  IOADDRESS=320
  LINESPEED = 10

I remember that for me it was a question of a couple of reboots (with power off/back on to ensure proper hardware re-initialization) until I had a working combination of IRQ and memory address.

Keeping fingers crossed... please let us know if your driver issues useful error messages at load time...
Thomas

If I remove NOCHECK, the driver says "The specified IRQ failed resource checking", no matter what IRQ I put in (and I have still a few unused ones). Then it says that it starts in "polled mode". And I back to my original problem - the boot does not complete (see my earlier posts) ...

Peter
#8
Hi Thomas,

My PROTOCOL.INI says:

[CE3OS2_nif]
  DriveName = XIRCOM$
  IRQ = 10
  SOCKET = 1
  MODE = "IO"
  NOCHECK
  LINESPEED = 10


Adding SHAREIRQ made no difference.

I also tried it without enforcing IO mode, and without enforcing line speed - no success.
I'm using 10 Mbit setting, because the card is said to work in full duplex mode at this speed. Only half-duplex is possible with 100 Mbit.

Peter
#9
Hi Thomas,

Thanks for your replay. I'll post my current protocol.ini after I get home tonight.
My Xircom card model is CE3B-100.
I downloaded the driver from Hobbes http://hobbes.nmsu.edu/download/pub/os2/system/drivers/network/ce3b-os2.zip
As you can see, the NIF file does not list any options for IRQ sharing, but of course I'll try it anyway!

Peter

I
#10
Update:

After many tests, also with a different PCMCIA card, I came to the conclusion that there's nothing wrong with the networking setup, the problem is with the PCMCIA controller. The interrupts do not pass from the card to the driver, they are lost on their way somewhere in the PCMCIA controller or bridge.
Trying wireless MA401 (with generic Prism driver), I saw on my router service page (from a different computer, of course) that it leased an IP address to my OS/2 laptop - yet OS/2 never recognized this, and the corresponding LAN was in a permanent "configuring" state.

I tried to manually configure many different IRQs, and to reserve them using RESERVE.SYS. The Xircom driver says on boot-up that it accepts the given IRQ (I still have to disable the resource checking though). Generic Prism driver does not work with other IRQs either.

So DHCP does not work, because the driver never sees the response. The same with ping, because the driver never sees the acknowledgement packet which arrives as the reponse (the ping packets are reported as sent, but not "successfully").

I also tried using CBENABLE.SYS from Veit Kannegieser (this required using a different socket driver, TI1225CB.SYS, and also his SPCIIRQ package), but it made no difference.

The hardware is not defective, both cards work just fine under Linux.

So, my original subject line is no longer correct, now I have to figure out how to unblock these interrupts in the PCMCIA controller so they'll reach the Xircom driver.

Peter

#11
Quote from: Andi on 2010.08.10, 13:40:33
Quote from: Peter400 on 2010.08.10, 01:29:35
.....
However, the network still does not work. I tried using DHCP or a static IP address, it makes no difference and it looks like no packets are sent out or nothing is received.
I would test the network with ifconfig lan0 or ifconfig lan1 (depends on how many network cards you've configured).
f.i. issuing from a command line 'ifconfig lan0 192.168.1.1' results in 'sioaffc error' (or similar) or 'interface not available' the driver does not work and no need to play with tcpcfg2 any further. Might save you some time....

Yes, the driver is there ... here are the results:

>ifconfig lan1 192.168.4.1                      <= my router IP address
ioctl (SIOCAIFADDR): File exists

>ifconfig lan1 192.168.4.44

>ifconfig lan1
lan1: flags=8843<UP,BROADCAST,RUNNING,MULTICAST,LOOPBRD>
        inet 192.168.4.44  netmask 0xffffff00 broadcast 192.168.4.255

>ifconfig lan2 192.168.4.34                     <= lan2 is not configured
ioctl (SIOCAIFADDR): Invalid argument

When the driver loads, a light on the router comes up, indicating an active link.
But when I try to ping the router:
>ping 192.168.4.1

nothing is sent successfully

Peter
#12
Oh, and I thought it might be useful to say that the laptop is an old HP OmniBook 900 (circa 1998), and the PCMCIA chipset seems to be TI-1225.  (which was also used on some Thinkpads).

Peter
#13
Networking / Some progress, apparently
2010.08.10, 01:29:35
Hi guys,

Thanks for all responses.

I found the following parametre for the driver:

[NOCHECK]
Display   = "Disable resource checking?"
Type      = None
Set       = "Yes", "No"
Optional  = Yes
help = "This parameter disables verification of adapter resources.
If the driver resource detection and verification code is causing
problems when the driver loads, this keyword can be used to turn
the feature off."

When I set this parameter to "Yes", and specify IRQ manually, OS/2 boot completes! This is a step in the right direction, I hope, as Xircom apparently knew a thing or two about issues with their driver on boot.

To be more precise: it looks like the boot hangs if and only if the network adapter driver says it is started in "polled mode". It starts in polled mode if I do not specify an IRQ, or if it goes back to polled mode on its own after claiming that the specified IRQ failed resource checking ...

However, the network still does not work. I tried using DHCP or a static IP address, it makes no difference and it looks like no packets are sent out or nothing is received.

I looked carefully at the config.sys file from ThinkpadConfig.zip.
There's one line there, which looks like a point enabler:
   DEVICE=E:\OS2\BOOT\AUTODRV2.SYS E:\OS2\AUTODRV2.INI

Andi, do you still have the contents of your AUTODRV2.INI anywhere?

In version 5 of PC Card Director (this is what I got), AUTODRV2.SYS is loaded by BASEDEV, not DEVICE, and the documentation does not mention any parameters that can be specified, so I'm not sure it this is a good route to go, but perhaps it is worth giving it a try.

As for specifying the /s0= parameter for IBM2SS01.SYS, this did not work. First of all, the file I got with PCCard Director is named a bit differently, IBM2SS14.SYS. And it does not accept /s0=, saying "invalid parameter specified" during boot.

So, currently I try to use the driver without any socket and card services, and my config.sys file looks like this:

Rem BASEDEV=PCMCIA.SYS
Rem BASEDEV=IBM2SS14.SYS /S0=1 /IG0=1
Rem BASEDEV=AUTODRV2.SYS
Rem DEVICE=E:\PCMCIA\VPCMCIA.SYS
Rem DEVICE=E:\PCMCIA\PCMSSDIF.SYS
Rem DEVICE=E:\PCMCIA\PCM2SRAM.SYS
Rem DEVICE=E:\PCMCIA\FLSH2MTD.SYS
Rem DEVICE=E:\PCMCIA\PCM2FLSH.SYS

CALL=E:\IBMCOM\PROTOCOL\NETBIND.EXE
RUN=E:\IBMCOM\LANMSGEX.EXE

SET ETC=E:\MPTN\ETC
DEVICE=E:\IBMCOM\MACS\NULLNDIS.OS2

SET TMP=e:\tcpip\tmp
DEVICE=e:\tcpip\bin\vdostcp.sys

BASEDEV=OS2PCARD.DMD
Rem DEVICE=E:\OS2\$ICPMOS2.SYS /G
DEVICE=E:\IBMCOM\MACS\CE3NDIS.OS2                      <---- this is my Xircom card driver
DEVICE=E:\MPTN\PROTOCOL\SOCKETS.SYS
DEVICE=E:\MPTN\PROTOCOL\AFOS2.SYS
DEVICE=E:\MPTN\PROTOCOL\AFINET.SYS
DEVICE=E:\MPTN\BIN\VDOSTCP.VDD
RUN=E:\MPTN\BIN\CNTRL.EXE
CALL=E:\OS2\CMD.EXE /Q /C E:\MPTN\BIN\MPTSTART.CMD >NUL
RUN=E:\MPTN\BIN\VDOSCTL.EXE

The next thing I'm going to do is to use AUTODRV2.SYS (point enabler) which came with PCCardDirector 5. The documentation says that custom scripts can be prepared, so I'm going to give it try. This might not be easy though, as I'm not sure I know what I'll be doing ...

As usual, any suggestions will be appreciated

Peter
#14
OK, I educated myself a bit on the subject now ...

It looks like all Xircom drivers include buil-in point enablers. Xircom documentation does not use the term "point enabler", but it says to "disable Socket and Card Services according to the IBM instructions".
The only IBM instructions I was able to find are enclosed with PC Card Director, where one can open one or more PCMCIA sockets for a card that is not capable of using or not requiring the socket services. Coincidently, IBM instructions list Xircom cards as an example of such cards.

My original attempts to configure the Xircom card were not using the PC Card Director or any PCMCIA drivers at all.

I installed PC Card Director 5, "disabled" one socket (the one with the Xircom card inserted), but there's no change in behavior, except that my LANTRAN.LOG file is now empty. It looks like this is not the right way to go.

One more detail: regardless of whether PC card director is installed or not, the Xircom driver is not capable of finding any available IRQs, and always starts in "polling mode". But I know for sure that there are unused IRQs.

When I configure the driver (in MPTS configuration dialog) to use a specific IRQ (and I tried a few of them), the driver says "the specified IRQ failed resource checking" and reports starting in polling mode again. I also tried to use RESERVE.SYS driver to "reserve" the specified IRQ, but it made no difference.

So I'm running out of ideas - I do not know what else to try.

Any suggestions are welcome!

Peter
#15
Thanks guys for your suggestions.
I removed "IBM 802.3" protocol from the configuration, and added "-d 0" to DHCPSTRT.CMD
The system still does not boot and hangs at the same place, i.e. when MPTSTART.CMD is invoked.

The contents of MPTSTART.CMD:
@ECHO OFF
IF NOT EXIST E:\MPTN\BIN\SETUP.CMD GOTO NBSETUP
INETWAIT 1>NUL
IF ERRORLEVEL 1 GOTO END
CALL E:\MPTN\BIN\SETUP.CMD
:NBSETUP
IF NOT EXIST E:\MPTN\BIN\NBSETUP.CMD GOTO END
CALL E:\MPTN\BIN\NBSETUP.CMD
:END

The contents of SETUP.CMD:
route -fh
REM ifconfig lan0
ifconfig lan1
REM ifconfig lan2
REM ifconfig lan3
REM ifconfig lan4
REM ifconfig lan5
REM ifconfig lan6
REM ifconfig lan7
dhcpstrt -i lan1 -d 0
REM ifconfig sl0
ipgate off

There's no NBSETUP.CMD

And here's the contents of PROTOCOL.INI:
[PROT_MAN]

   DRIVERNAME = PROTMAN$

[IBMLXCFG]

   tcpip_nif = tcpip.nif
   NONETADP_nif = NONETADP.NIF
   CE3OS2_nif = CE3OS2.nif

[tcpip_nif]

   DriverName = TCPIP$
   Bindings = NONETADP_nif,CE3OS2_nif

[NONETADP_nif]

   DriverName = NULLNDS$

[CE3OS2_nif]

   DriverName = XIRCOM$
   SOCKET = 1

And now my LANTRAN.LOG contains just two lines:
IBM OS/2 LANMSGDD [04/18/00] 5.05 is loaded and operational.
IBM OS/2 LAN Netbind

I'll now try to search for "point enabler" and see whether it'll help.

Peter