Cardbus enabler for Realtek 8139/8130/810x and compatibles

마루 0 6,521 2020.08.30 21:56

This package is intended for making more use of CardBus cards.

Included parts


 * cbenable.sys - a device driver that uses OS/2 Card services to

                  enable any CardBus card you insert in a slot

                  and assign an IRQ line and and IO window.

 * cbe_msg.exe  - send a on off message to cbenable.sys

 * oemhlp2.sys  - some System BIOS do not scan on CardBus bus,

                  if they are asked to look for a PCI device.

                  Imagine that there would be a common PCI Chipset

                  with drivers and no special CardBus client.

                  if the device is present at boot time and the

                  PCI driver uses the OEMHLP$ driver (included in

                  OS2KRNL), chaning OEMHLP$ to OEMH2$ would let

                  the PCI driver find the CardBus device.

                  Of course you must make sure that the card

                  is in the socket all the time...

 * ppcmcia.exe  - original PCMCIA.SYS has a bug that prevents use

                  of CardBus cards. This program patches PCMCIA.SYS.

                  The patch was tested with version 10.056.

                  PPCMCIA creates a backup file if it can not find one.

 * cscinfo.exe  - simple program to show card informations



  1. First install Card Services. cbenable.sys checks for

     version 5.00, make sure that you use

     BaseDev=PCMCIA.SYS /R:500

     in config.sys.

  2. run ppcmcia.exe. It will patch PCMCIA.SYS on your boot drive,

     it will try to find it in \os2\ and \os2\boot\.

     You can specify the full path to PCMCIA.SYS if you run

     from an maintenance partition.

  3. Add CBENABLE.SYS and OEMHLP2.SYS to config.sys, OEMHLP2.SYS

     CBENABLE.SYS must be after PCMCIA.SYS, OEMHLP2.SYS can be



       OEMHLP2.SYS has no parameters.

     BaseDev=CBENABLE.SYS <CardBusBridge Bus> <CS Socket> <IRQ> <IO Window>




       <CardBusBridge Bus> are 3 values for Bus, Device and Function

       of the CardBus bridge. You have most likely only one chip and

       let CBENABLE.SYS search for it by using * for each.

       <CS Socket> is an number from 0 to 7.

       <IRQ> is the set of allowed IRQ to use for the CardBus card.

       Separate IRQs using ","

       <IO Window> is the base address and the window size to assign

       to the CardBus card. Make sure (RMVIEW /IO) this area is not

       already used. Or use base address 0 to let the Card Services

       find a free IO area. Window size of 256 ($100) should be

       sufficient for most devices.

       <Ti1225_Burst> Optional hardware depended Option for

       Texas Instruments 1225 and compatible chips (values 0/1).

       For value 1, the "Memory read burst enable upstream" bit

       is set. Measured Realtek 8139 NETIO throughput goes

       from 3,2 MB/s to 11 MB/s on the development system.

       <Ti1225_IRQMode> Optional hardware dependend Option for

       Texas Instruments 1225 and compatible chips (values 0/1/2/3).

       Modifies Interrupt mode:

         0 = Parallel PCI interrupts only

         1 = Parallel IRQ and parallel PCI interrupts

         2 = IRQ serialized interrupts and parallel PCI interrupt

         3 = IRQ and PCI serialized interrupts (default)

       <Function_code> Optional parameter to restrict card types

       that are processed. Possible values are:

         0 = Multi-Function

         1 = Memory

         2 = Serial Port

         3 = Parallel Port

         4 = Fixed Disk

         5 = Video Adapter

         6 = Network Adapter

         7 = Auto Incrementing Mass Storage

         8 = SCSI

         9 = Security

         10..253 = Reserved

         254 = Vendor-Specific

         * = ignore value (default)


       BaseDev=CBENABLE.SYS * * 0 0 10,11,12 $1800 $0100

                            ^^^^^ ^ ^^^^^^^^ ^^^^^^^^^^^

                           Bridge Socket IRQ IO-Window

Resource Manager


  You will find CBENABLE.SYS and OEMHLP.SYS using "RMVIEW /D",

  Resources allocated by CBENABLE will appear allocated by

  "Socket_0", "Socket_1" ...

  Currently, IRQ are assigned exclusive (driver only knows AT

  and Microchannel ?).

Power on+off, Hotinsert


  Power on/off and remove/reinsert is only possible if

  the adapter device driver supports the notification hook

  in CBENABLE.SYS. The "Realtek 8139 OS/2 NDIS" driver is

  planed to include support for this. If you remove a card

  or remove the power from it (Card Director) without

  coordination with the driver, you most likely get a system

  halt. Another way to power off a card is to execute the

  included cbe_msg.exe program. Its parameters are socket

  number (0..7) and 0/1 for off/on. Example for removing

  power for first socket: "cbe_msg 0 0".

APM Suspend/Resume


  The "DEVICE=E:\OS2\boot\$ICPMOS2.SYS" driver in config.sys

  prevents APM Suspend if CBENABLE.SYS has enabled a card.

  You perhaps want to comment it off by inserting "REM "

  in front of that line.

Enabler Conflicts


  CBENABLE would most likely conflict with similar enabler

  clients, use for example "/FunctionID:6" to restrict CBENABLE

  to only try Network cards.

  Remember to hide any socket from Card Services, where

  "point enabler" software (build-in card services) is used.

  Example: cbendis/ibmcndis.os2 (Xircom/IBM EtherJet 10/100)

Beep codes


  short very high beep (8000 Hz)

    card enabled successful.

  medium/high/medium beep (2000/3000/2000)

    card configuration failed

      adjust IRQ or use Base IO address 0.

  long low/middle beep (1000/2000/1000/2000 Hz)

    can not get card configuration, bad pcmcia.sys detected

      run ppcmcia.exe and reboot.

Known Problems


  * Removing powered on Cards causes Resource Manager IO reservations

    leaks. This does not seem to happen if CBE_MSG is used.

    Possible fix:

    - search PCMCIA.SYS problem

    - free RM resources in CBENABLE.SYS




 ?corrected errors in ppcmcia.cmd

 ?added TI 1225 interrupt and burst mode options

 ?Search IOBase if it does not work, or 0 is specified

 ?Uses OEMHLP$/OEMHLP2.SYS for PCI access


 ?cscinfo shows manufacturer from GetCardServicesInfo buffer

 ?removed ppcmcia.cmd and enhanced ppcmcia.exe

 ?/FunctionID filter added

 ?cbenable.sys: copy excpected PCI address of inserted card

   to IOCTL data buffer


  • 현재 접속자 88 명
  • 오늘 방문자 1,253 명
  • 어제 방문자 2,124 명
  • 최대 방문자 4,250 명
  • 전체 방문자 1,990,610 명
  • 전체 게시물 2,980 개
  • 전체 댓글수 4,538 개
  • 전체 회원수 95 명

- 쇼핑몰 : Softbox
- 예전 문서 / Old docs
- FTP Server:
Facebook Twitter GooglePlus KakaoStory NaverBand