Discussion:
Add driver ethernet controller intel 82559
(too old to reply)
Paolo
2007-04-18 12:30:50 UTC
Permalink
Hi,
I have a problem with the Intel 82559 driver.
My hardware is a Computer On Module based on AMD Geode LX800 with
CS5536 chipset. The ethernet controller is a Intel 82559.

I download the AMD BSP and, thank your suggestion :) , I build a
working Image of WinCE 5.0.

I have now a problem with the ethernet controller. I download the
Intel driver, I put e100ce5.ddl in C:\WINCE500\PLATFORM\Geodelx\Files\
subdir and I modify the files platform.bib and platform.reg as per
Intel installing istructions.

The ethernet controller doesn't work..
I try to install a realtek 8139 on PCI BUS and I buid a Image with its
driver. The 8139 chip work perfectly.
Can you help me?

Thank You

Paolo

The serial debug of a boot with Intel driver is this:

0x83fcf800: PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI
\Instance\E100CE51) returned open exist.continue search
0x83fcf800: DEVICE!RegReadActivationValues RegQueryValueEx(Drivers
\BuiltIn\PCI\Instance\ddi_agx1\BusPrefix) returned 2
0x83fcf800: DEVICE!CreateDevice: illegal entry point combination in
driver DLL 'ddi_agx.dll'
0x83fcf800: CreateDevice: creation of type 'DDI', index 1, lib
'ddi_agx.dll' returning 0x00000000, error code 1
0x83fcf800: DEVICE!I_ActivateDeviceEx: couldn't activate: prefix DDI,
index 1, dll ddi_agx.dll, context 0x23ea8896
0x83fcf800: DeviceFolder::LoadDevice!Enumerate Found deprecated load
instructions at (Drivers\BuiltIn\PCI\Instance\E100CE52). Driver cannot
be unloaded.
0x83fcf800: ==>NdisInitializeWrapper
0x83fcf800: <==NdisInitializeWrapper
0x83fcf800: ==>NdisMRegisterMiniport: NdisWrapperHandle 0004F0E0
0x83fcf800: ==>ndisRegisterMiniportDriver: NdisWrapperHandle 0004F0E0
0x83fcf800: <==ndisRegisterMiniportDriver: MiniBlock 0004F150
0x83fcf800: NdisMRegisterMiniport: MiniBlock 0004F150
0x83fcf800: <==NdisMRegisterMiniport: MiniBlock 0004F150, Status 0
0x83fcf800:
0x83fcf800: ndisMInitializeAdapter: Miniport 0004F370, 0x83fcf800:
==>ndisQueueMiniportOnDriver: Miniport 0004F370, MiniBlock 0004F150
0x83fcf800: <==ndisQueueMiniportOnDriver: Miniport 0004F370, MiniBlock
0004F150, rc 1
0x83fcf800: ==>NdisMSetAttributesEx: Miniport 0004F370
0x83fcf800: ==>NdisMDeregisterAdapterShutdownHandler: Miniport
0004F370
0x83fcf800: <==NdisMDeregisterAdapterShutdownHandler: Miniport
0004F370
0x83fcf800: ***NDIS*** (b, 2078) 0x83fcf800: INIT FAILURE:
Dequeueing the miniport from the driver block.
0x83fcf800: ==>ndisDeQueueMiniportOnDriver, Miniport 0004F370,
MiniBlock 0004F150
0x83fcf800: <==ndisDeQueueMiniportOnDriver: Miniport 0004F370,
MiniBlock 0004F150
0x83fcf800: ***NDIS*** (b, 2105) 0x83fcf800: INIT FAILURE:
Dereferencing the miniport block.
0x83fcf800: ndisDereferenceMiniport:Miniport 0004F370, Ref = 0
0x83fcf800: ==>ndisMUnload: DriverObject 0004F040
0x83fcf800: ndisMUnload: MiniBlock 0004F150
0x83fcf800: <==ndisMUnload: DriverObject 0004F040, MiniBlock 0004F150
Ashutosh Zade
2007-04-18 14:28:53 UTC
Permalink
Are you sure your 82559 controller worked before or works on another
hardware/platform?
What is the debug output from RTL8139? Performing diff on two debug outputs
might give you some lead.

Ashutosh Zade

Applied Data Systems

Microsoft WEP Gold-Level Member
Post by Paolo
Hi,
I have a problem with the Intel 82559 driver.
My hardware is a Computer On Module based on AMD Geode LX800 with
CS5536 chipset. The ethernet controller is a Intel 82559.
I download the AMD BSP and, thank your suggestion :) , I build a
working Image of WinCE 5.0.
I have now a problem with the ethernet controller. I download the
Intel driver, I put e100ce5.ddl in C:\WINCE500\PLATFORM\Geodelx\Files\
subdir and I modify the files platform.bib and platform.reg as per
Intel installing istructions.
The ethernet controller doesn't work..
I try to install a realtek 8139 on PCI BUS and I buid a Image with its
driver. The 8139 chip work perfectly.
Can you help me?
Thank You
Paolo
0x83fcf800: PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI
\Instance\E100CE51) returned open exist.continue search
0x83fcf800: DEVICE!RegReadActivationValues RegQueryValueEx(Drivers
\BuiltIn\PCI\Instance\ddi_agx1\BusPrefix) returned 2
0x83fcf800: DEVICE!CreateDevice: illegal entry point combination in
driver DLL 'ddi_agx.dll'
0x83fcf800: CreateDevice: creation of type 'DDI', index 1, lib
'ddi_agx.dll' returning 0x00000000, error code 1
0x83fcf800: DEVICE!I_ActivateDeviceEx: couldn't activate: prefix DDI,
index 1, dll ddi_agx.dll, context 0x23ea8896
0x83fcf800: DeviceFolder::LoadDevice!Enumerate Found deprecated load
instructions at (Drivers\BuiltIn\PCI\Instance\E100CE52). Driver cannot
be unloaded.
0x83fcf800: ==>NdisInitializeWrapper
0x83fcf800: <==NdisInitializeWrapper
0x83fcf800: ==>NdisMRegisterMiniport: NdisWrapperHandle 0004F0E0
0x83fcf800: ==>ndisRegisterMiniportDriver: NdisWrapperHandle 0004F0E0
0x83fcf800: <==ndisRegisterMiniportDriver: MiniBlock 0004F150
0x83fcf800: NdisMRegisterMiniport: MiniBlock 0004F150
0x83fcf800: <==NdisMRegisterMiniport: MiniBlock 0004F150, Status 0
==>ndisQueueMiniportOnDriver: Miniport 0004F370, MiniBlock 0004F150
0x83fcf800: <==ndisQueueMiniportOnDriver: Miniport 0004F370, MiniBlock
0004F150, rc 1
0x83fcf800: ==>NdisMSetAttributesEx: Miniport 0004F370
0x83fcf800: ==>NdisMDeregisterAdapterShutdownHandler: Miniport
0004F370
0x83fcf800: <==NdisMDeregisterAdapterShutdownHandler: Miniport
0004F370
Dequeueing the miniport from the driver block.
0x83fcf800: ==>ndisDeQueueMiniportOnDriver, Miniport 0004F370,
MiniBlock 0004F150
0x83fcf800: <==ndisDeQueueMiniportOnDriver: Miniport 0004F370,
MiniBlock 0004F150
Dereferencing the miniport block.
0x83fcf800: ndisDereferenceMiniport:Miniport 0004F370, Ref = 0
0x83fcf800: ==>ndisMUnload: DriverObject 0004F040
0x83fcf800: ndisMUnload: MiniBlock 0004F150
0x83fcf800: <==ndisMUnload: DriverObject 0004F040, MiniBlock 0004F150
Paolo
2007-04-18 16:35:39 UTC
Permalink
Thank for your attention..
The 82559 chip in on board on the Module and I have a test report in
which it is OK.
I'm trying to find what is the "Found deprecated load instructions"
that provokes the error.
But I'm not sure that is this the problem..

I have a similar problem with the audio driver, the AMD GeodeLX/553x
UAM audio controller don't work..
But in this case there is not error in the debug output.
I would like solve all problems step by step :) :(

Regards

Paolo

The debug output from RTL8139 is this..

0x83fcf800: DEVICE!RegReadActivationValues RegQueryValueEx(Drivers
\BuiltIn\PCI\Instance\RTL81391\BusPrefix) returned 2
0x83fcf800: NDIS:ndisAddPCMCIADevice INdisOpenDeviceKey failed
0x83fcfce0: [NOTIFY] HandleSystemEvent 7 /ADD HCD2:
0x83fcf800: NDIS:: CE_AddBusFriendlyName() [successfully created] [HKLM
\Comm\BusFriendlyNames\PCI_0_10_0\RTL81391]
0x83fcf800: ==>NdisInitializeWrapper
0x83fcf800: <==NdisInitializeWrapper
0x83fcf800: ==>NdisMRegisterMiniport: NdisWrapperHandle 0005ACB0
0x83fcf800: ==>ndisRegisterMiniportDriver: NdisWrapperHandle 0005ACB0
0x83fcf800: <==ndisRegisterMiniportDriver: MiniBlock 0005AD20
0x83fcf800: NdisMRegisterMiniport: MiniBlock 0005AD20
0x83fcf800: <==NdisMRegisterMiniport: MiniBlock 0005AD20, Status 0
0x83fcf800:
0x83fcf800: ndisMInitializeAdapter: Miniport 0005AF40, 0x83fcf800:
==>ndisQueueMiniportOnDriver: Miniport 0005AF40, MiniBlock 0005AD20
0x83fcf800: <==ndisQueueMiniportOnDriver: Miniport 0005AF40, MiniBlock
0005AD20, rc 1
0x83fcf800: RTL8139:: Interrupt Number read: [10]
0x83fcf800: ==>NdisMSetAttributesEx: Miniport 0005AF40
0x83fcf800: Speed/Duplex Mode selected:1
0x83fcf800: Already in Auto-Negotiation mode, do not restart
0x83fcf800: ***NDIS*** (a, 534) 0x83fcf800: ==>NdisMRegisterInterrupt:
Miniport 0005AF40 Vector 10
0x83fcf800: NDIS:: CeConnectInterrupt() --> IRQ[10] SYSINTR[18]
0x83fcf800: ***NDIS*** (a, 753) 0x83fcf800: <==NdisMRegisterInterrupt:
Miniport 0005AF40, Status 0
Post by Ashutosh Zade
Are you sure your 82559 controller worked before or works on another
hardware/platform?
What is the debug output from RTL8139? Performing diff on two debug outputs
might give you some lead.
Ashutosh Zade
Applied Data Systems
Microsoft WEP Gold-Level Member
Post by Paolo
Hi,
I have a problem with the Intel 82559 driver.
My hardware is a Computer On Module based on AMD Geode LX800 with
CS5536 chipset. The ethernet controller is a Intel 82559.
I download the AMD BSP and, thank your suggestion :) , I build a
working Image of WinCE 5.0.
I have now a problem with the ethernet controller. I download the
Intel driver, I put e100ce5.ddl in C:\WINCE500\PLATFORM\Geodelx\Files\
subdir and I modify the files platform.bib and platform.reg as per
Intel installing istructions.
The ethernet controller doesn't work..
I try to install a realtek 8139 on PCI BUS and I buid a Image with its
driver. The 8139 chip work perfectly.
Can you help me?
Thank You
Paolo
0x83fcf800: PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI
\Instance\E100CE51) returned open exist.continue search
0x83fcf800: DEVICE!RegReadActivationValues RegQueryValueEx(Drivers
\BuiltIn\PCI\Instance\ddi_agx1\BusPrefix) returned 2
0x83fcf800: DEVICE!CreateDevice: illegal entry point combination in
driver DLL 'ddi_agx.dll'
0x83fcf800: CreateDevice: creation of type 'DDI', index 1, lib
'ddi_agx.dll' returning 0x00000000, error code 1
0x83fcf800: DEVICE!I_ActivateDeviceEx: couldn't activate: prefix DDI,
index 1, dll ddi_agx.dll, context 0x23ea8896
0x83fcf800: DeviceFolder::LoadDevice!Enumerate Found deprecated load
instructions at (Drivers\BuiltIn\PCI\Instance\E100CE52). Driver cannot
be unloaded.
0x83fcf800: ==>NdisInitializeWrapper
0x83fcf800: <==NdisInitializeWrapper
0x83fcf800: ==>NdisMRegisterMiniport: NdisWrapperHandle 0004F0E0
0x83fcf800: ==>ndisRegisterMiniportDriver: NdisWrapperHandle 0004F0E0
0x83fcf800: <==ndisRegisterMiniportDriver: MiniBlock 0004F150
0x83fcf800: NdisMRegisterMiniport: MiniBlock 0004F150
0x83fcf800: <==NdisMRegisterMiniport: MiniBlock 0004F150, Status 0
==>ndisQueueMiniportOnDriver: Miniport 0004F370, MiniBlock 0004F150
0x83fcf800: <==ndisQueueMiniportOnDriver: Miniport 0004F370, MiniBlock
0004F150, rc 1
0x83fcf800: ==>NdisMSetAttributesEx: Miniport 0004F370
0x83fcf800: ==>NdisMDeregisterAdapterShutdownHandler: Miniport
0004F370
0x83fcf800: <==NdisMDeregisterAdapterShutdownHandler: Miniport
0004F370
Dequeueing the miniport from the driver block.
0x83fcf800: ==>ndisDeQueueMiniportOnDriver, Miniport 0004F370,
MiniBlock 0004F150
0x83fcf800: <==ndisDeQueueMiniportOnDriver: Miniport 0004F370,
MiniBlock 0004F150
Dereferencing the miniport block.
0x83fcf800: ndisDereferenceMiniport:Miniport 0004F370, Ref = 0
0x83fcf800: ==>ndisMUnload: DriverObject 0004F040
0x83fcf800: ndisMUnload: MiniBlock 0004F150
0x83fcf800: <==ndisMUnload: DriverObject 0004F040, MiniBlock 0004F150
Remi de Gravelaine
2007-04-19 07:31:29 UTC
Permalink
Hi,
Post by Paolo
I'm trying to find what is the "Found deprecated load instructions"
that provokes the error.
But I'm not sure that is this the problem..
You are right: the problem is not there.
The error is most probably a configuration issue.
Can you send us your config.bib MEMORY section and the Registry keys you add
to enable the driver?

Remi
Paolo
2007-04-19 08:57:59 UTC
Permalink
Hi,
Post by Remi de Gravelaine
You are right: the problem is not there.
The error is most probably a configuration issue.
Can you send us your config.bib MEMORY section and the Registry keys you add
to enable the driver?
the output in the post is generate with the configuration of Intel
( attached at the and of the post )

The situation is changed. I look how RTL8139 is set on common.reg and
I comment the line "Entry"="NdisPCIBusDeviceInit".
Now the debug is the following.. The error seems in the miniport
setup.

0x83fcf800: DEVICE!RegReadActivationValues RegQueryValueEx(Drivers
\BuiltIn\PCI\Instance\E100CE52\BusPrefix) returned 2
0x83fcf800: NDIS:ndisAddPCMCIADevice INdisOpenDeviceKey failed
0x83fcfce0: [NOTIFY] HandleSystemEvent 7 /ADD HCD2:
0x83fcf800: NDIS:: CE_AddBusFriendlyName() [successfully created] [HKLM
\Comm\BusFriendlyNames\PCI_0_19_0\E100CE52]
0x83fcf800: ==>NdisInitializeWrapper
0x83fcf800: <==NdisInitializeWrapper
0x83fcf800: ==>NdisMRegisterMiniport: NdisWrapperHandle 00054FA0
0x83fcf800: ==>ndisRegisterMiniportDriver: NdisWrapperHandle 00054FA0
0x83fcf800: <==ndisRegisterMiniportDriver: MiniBlock 00056EB0
0x83fcf800: NdisMRegisterMiniport: MiniBlock 00056EB0
0x83fcf800: <==NdisMRegisterMiniport: MiniBlock 00056EB0, Status 0
0x83fcf800:
0x83fcf800: ndisMInitializeAdapter: Miniport 00057070, 0x83fcf800:
==>ndisQueueMiniportOnDriver: Miniport 00057070, MiniBlock 00056EB0
0x83fcf800: <==ndisQueueMiniportOnDriver: Miniport 00057070, MiniBlock
00056EB0, rc 1
0x83fcf800: ==>NdisMSetAttributesEx: Miniport 00057070
0x83fcf800: ==>NdisMDeregisterAdapterShutdownHandler: Miniport
00057070
0x83fcf800: <==NdisMDeregisterAdapterShutdownHandler: Miniport
00057070
0x83fcf800: ***NDIS*** (b, 2078) 0x83fcf800: INIT FAILURE:
Dequeueing the miniport from the driver block.
0x83fcf800: ==>ndisDeQueueMiniportOnDriver, Miniport 00057070,
MiniBlock 00056EB0
0x83fcf800: <==ndisDeQueueMiniportOnDriver: Miniport 00057070,
MiniBlock 00056EB0
0x83fcf800: ***NDIS*** (b, 2105) 0x83fcf800: INIT FAILURE:
Dereferencing the miniport block.
0x83fcf800: ndisDereferenceMiniport:Miniport 00057070, Ref = 0
0x83fcf800: ==>ndisMUnload: DriverObject 00054F00
0x83fcf800: ndisMUnload: MiniBlock 00056EB0
0x83fcf800: <==ndisMUnload: DriverObject 00054F00, MiniBlock 00056EB0
0x83fcf800: DEVICE!LaunchDevice: Init() failed for device 0x000566f0
0x83fcf800: DEVICE!I_ActivateDeviceEx: couldn't activate: prefix NDS,
index 1, dll NDIS.dll, context 0x602da0c


There is also another problem.. Those lines are repeated for another
E100CE5 Instance ( named E100CE51 ) that i don't set..

Have you any idea?

Thank You
Best Regards

Paolo


INTEL CONFIGURATION

platform.bib

; Include the GD82559ER driver in the image
e100ce5.dll $(_FLATRELEASEDIR)\e100ce5.dll NK
SH


platform.reg

[HKEY_LOCAL_MACHINE\Comm\E100CE5]
"DisplayName"="Intel(R) Fast Ethernet Controller"
"Group"="NDIS"
"ImagePath"="e100ce5.dll"

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\E100CE5]
;PCI Bus Enumeration Information
"Class"=dword:02
"SubClass"=dword:00
"ProgIF"=dword:0

"VendorID"=multi_sz:"8086","8086","8086","8086","8086","8086","8086","8086","8086","8086","8086","8086","8086","8086"

"DeviceID"=multi_sz:"1209","1229","2449","1031","1032","1033","1034","1035","1036","1037","1038","1039","103A","103B"
"Dll"="NDIS.dll"
"Entry"="NdisPCIBusDeviceInit"
"Transceiver"=dword:3
"MiniPort"="E100CE5"
;Installable ISR Handler Information
"IsrDll"="giisr.dll"
"IsrHandler"="ISRHandler"
"PortIsIO"=dword:0
"PortOffset"=dword:0
"PortSize"=dword:4
"PortMask"=dword:20F0
;Settings for DHCP IP Configuration, if enabled
IF DHCP
[HKEY_LOCAL_MACHINE\COMM\PCI\E100CE51\Parms\TcpIp]
"EnableDHCP"=dword:1
; This should be MULTI_SZ
"DefaultGateway"=""
; Use zero for broadcast address? (or 255.255.255.255)
"UseZeroBroadcast"=dword:0
; This should be MULTI_SZ, the IP address list
"IpAddress"="0.0.0.0"
; This should be MULTI_SZ, the subnet masks for the above IP
addresses
"Subnetmask"="0.0.0.0"
ENDIF ;//DHCP

;Settings for static IP configuration, if enabled
IF STATIC_IP
[HKEY_LOCAL_MACHINE\COMM\PCI\E100CE51\Parms\TcpIp]
"EnableDHCP"=dword:0
; This should be MULTI_SZ
"DefaultGateway"="1.2.3.0"
; Use zero for broadcast address? (or 255.255.255.255)
"UseZeroBroadcast"=dword:0
; This should be MULTI_SZ, the IP address list
"IpAddress"="1.2.3.4"
; This should be MULTI_SZ, the subnet masks for the above IP
addresses
"Subnetmask"="255.0.0.0"
ENDIF ;//Static IP
Remi de Gravelaine
2007-04-19 09:44:56 UTC
Permalink
Paolo,

I think some of your problems can come from the "PortMask"=dword:20F0 bad
value. Google this group for E100CE for more information (see
http://groups.google.fr/group/microsoft.public.windowsce.platbuilder/browse_thread/thread/e3f73c5cfd33cc06/a924b45e9236ad48?lnk=gst&q=E100CE&rnum=5&hl=fr#a924b45e9236ad48).
The F000 value is much more effective!

The NdisPCIBusDeviceInit entry is needed and you should not comment it out.
It appears that you have 2 instances of an E100 device! If it is not the
case, the answer might be in the VendorID/DeviceID list of your
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\E100CE5] key.

HTH
Remi
Paolo
2007-04-20 08:20:59 UTC
Permalink
On 19 Apr, 11:44, "Remi de Gravelaine" <gravelaine at aton dash sys
Post by Remi de Gravelaine
Paolo,
I think some of your problems can come from the "PortMask"=dword:20F0 bad
value. Google this group for E100CE for more information (seehttp://groups.google.fr/group/microsoft.public.windowsce.platbuilder/...).
The F000 value is much more effective!
I try F000 value but doesn't work.
Post by Remi de Gravelaine
The NdisPCIBusDeviceInit entry is needed and you should not comment it out.
I test the configuration with and without NdisPCIBusDeviceInit entry
but with the same results.

The only difference is that with the NdisPCIBusDeviceInit entry there
is this message

DeviceFolder::LoadDevice!Enumerate Found deprecated load instructions
at (Drivers\BuiltIn\PCI\Instance\E100CE52). Driver cannot be unloaded.
Post by Remi de Gravelaine
It appears that you have 2 instances of an E100 device! If it is not the
case, the answer might be in the VendorID/DeviceID list of your
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\E100CE5] key.
I try to identify the chip and on the Intel website.. The ID is 1229
but if I put only this value the Device is not found.

Here in Italy we say "I don't know which fish take" :(

Thank You for support

Paolo
Remi de Gravelaine
2007-04-20 08:44:37 UTC
Permalink
Hi,

Can you give us a snapshot of your PCI configuration?

To do this, the simplest way is to boot a debug image with the PCIBUS debug
zones enabled.
This can be done by setting

HKCU\Pegasus\Zones\PCIBUS=dword:0xB

on the *host* PC.

Also, if your CEPC has a BIOS, you should make sure that PCI NoConfig option
is set in the Target Registry:

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI]
"NoConfig"=dword:1

This will prevent Windows CE from doing its own PCI configuration, which
usually works well only for simple configs.

Remi

Loading...