4 Replies Latest reply on Jun 7, 2012 10:43 AM by Kirk

    N270, 945GSE, IEGD, Windows 7, BSOD, iegd3dg3.dll

    Community Member

      We have a nagging BSOD problem on our custom SBC.  We are running Windows Embedded Standard 7 SP1.  It tends to happen occasionally on logoff/logon/restart but it's been known to happen at any time.  I've tried IEGD 10.1, 10.3, 10.4.1.  I've also tried the mobile Intel 945 express driver and that was more problematic. When using a standard VGA driver, the BSOD never occurs.  The problem with that is that it doesn't support 3D rendering and we need that function.  With regards to loading full up Windows 7, rather than the embedded version, we've done this but if you do it the old fashion way it will bluescreen on the install.  You have to boot to safe mode at some point during the installation to actually load Windows.

       

      So, since I have an official Intel Roe River development platform, I decided to load WES7 on that and see what happens.  I have done this twice, the first time I never saw the BSOD.  Left it running for a couple weeks.  Last night I loaded a WES7 SP1 image from the DVD that comes with the Microsoft Image configuration editor tool.  This is the simplest way to build a WES7 image and it's as complete an image as I know how.  Anyways, the mobile intel 945 express driver is what gets installed by Windows by default.  Today, I had a BSOD on an official Intel Roe River development platform. Unfortunately I didn't have the system recovery set to dump the kernel and I don't have that yet so I'm waiting for it to fail so I can analyze the kernel dump.

       

      I have seen a couple threads on this forum that make it sound like Intel is looking into this.  Has this problem been resolved?  Is it an Intel problem or a Windows problem?

       

      Thanks,

      SDDOUBLEE

       

       

      Below are a couple of analyzed minidumps from our custom SBC:  I believe the first one is from a BSOD with IEGD 10.1, and I "think" the second one is with the 945 express driver.

       


      Microsoft (R) Windows Debugger Version 6.11.0001.404 X86
      Copyright (c) Microsoft Corporation. All rights reserved.

       


      Loading Dump File [D:\cruzer backup 524012\031612-10218-01.dmp]
      Mini Kernel Dump File: Only registers and stack trace are available

       

      Symbol search path is: SRV*c:\symbols *http://msdl.microsoft.com/download/symbols
      Executable search path is:
      Windows 7 Kernel Version 7601 (Service Pack 1) MP (2 procs) Free x86 compatible
      Product: WinNt, suite: TerminalServer EmbeddedNT SingleUserTS
      Built by: 7601.17514.x86fre.win7sp1_rtm.101119-1850
      Machine Name:
      Kernel base = 0x82809000 PsLoadedModuleList = 0x82953850
      Debug session time: Fri Mar 16 22:16:25.953 2012 (GMT-7)
      System Uptime: 0 days 0:01:44.484
      Loading Kernel Symbols
      ...............................................................
      ................................................................
      ..............
      Loading User Symbols
      Loading unloaded module list
      .....
      *******************************************************************************
      *                                                                             *
      *                        Bugcheck Analysis                                    *
      *                                                                             *
      *******************************************************************************

       

      Use !analyze -v to get detailed debugging information.

       

      BugCheck A, {7500a8, 2, 1, 82c1e829}

       

      Unable to load image \SystemRoot\System32\iegddis.dll, Win32 error 0n2
      *** WARNING: Unable to verify timestamp for iegddis.dll
      *** ERROR: Module load completed but symbols could not be loaded for iegddis.dll
      Probably caused by : iegddis.dll ( iegddis+1d27 )

       

      Followup: MachineOwner
      ---------

       

      1: kd> !analyze -v
      *******************************************************************************
      *                                                                             *
      *                        Bugcheck Analysis                                    *
      *                                                                             *
      *******************************************************************************

       

      IRQL_NOT_LESS_OR_EQUAL (a)
      An attempt was made to access a pageable (or completely invalid) address at an
      interrupt request level (IRQL) that is too high.  This is usually
      caused by drivers using improper addresses.
      If a kernel debugger is available get the stack backtrace.
      Arguments:
      Arg1: 007500a8, memory referenced
      Arg2: 00000002, IRQL
      Arg3: 00000001, bitfield :
          bit 0 : value 0 = read operation, 1 = write operation
          bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
      Arg4: 82c1e829, address which referenced memory

       

      Debugging Details:
      ------------------

       


      WRITE_ADDRESS: GetPointerFromAddress: unable to read from 82973718
      Unable to read MiSystemVaType memory at 829531a0
      007500a8

       

      CURRENT_IRQL:  2

       

      FAULTING_IP:
      hal!KeAcquireInStackQueuedSpinLockRaiseToSynch+19
      82c1e829 8711            xchg    edx,dword ptr [ecx]

       

      CUSTOMER_CRASH_COUNT:  1

       

      DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT

       

      BUGCHECK_STR:  0xA

       

      PROCESS_NAME:  csrss.exe

       

      TRAP_FRAME:  91ddf528 -- (.trap 0xffffffff91ddf528)
      ErrCode = 00000002
      eax=91ddf5c8 ebx=00000000 ecx=007500a8 edx=91ddf5c8 esi=00750074 edi=807c4120
      eip=82c1e829 esp=91ddf59c ebp=91ddf5e0 iopl=0         nv up ei pl zr na pe nc
      cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010246
      hal!KeAcquireInStackQueuedSpinLockRaiseToSynch+0x19:
      82c1e829 8711            xchg    edx,dword ptr [ecx]  ds:0023:007500a8=????????
      Resetting default scope

       

      LAST_CONTROL_TRANSFER:  from 82c1e829 to 8284a5cb

       

      STACK_TEXT: 
      91ddf528 82c1e829 badb0d00 91ddf5c8 00650069 nt!KiTrap0E+0x2cf
      91ddf598 8288a5cb ffb89008 00750074 ffb2d010 hal!KeAcquireInStackQueuedSpinLockRaiseToSynch+0x19
      91ddf5e0 82893fe4 00750074 00000001 91ddf604 nt!ExAcquireResourceExclusiveLite+0xd4
      91ddf5f0 8ffe2503 00750074 ffb8b218 8ffe3268 nt!ExEnterCriticalRegionAndAcquireResourceExclusive+0x1c
      91ddf5fc 8ffe3268 91ddf694 8fe81d27 00750074 win32k!GreAcquireSemaphore+0x16
      91ddf604 8fe81d27 00750074 ffb87008 00000900 win32k!EngAcquireSemaphore+0xd
      WARNING: Stack unwind information not available. Following frames may be wrong.
      91ddf694 8ff2536b ffb2d010 01cf7c7b ffb89008 iegddis+0x1d27
      91ddf6d0 8ff4e691 ffb2d010 ffb89008 ffbbcce8 win32k!WatchdogDrvEnableSurface+0x35
      91ddf6ec 8ff4e29a 01cf7dcf 00000000 ffbbcce8 win32k!PDEVOBJ::bMakeSurface+0x43
      91ddf764 8ff4aeac ffbbcce8 ffbbd540 ffbb0c08 win32k!hCreateHDEV+0x7b8
      91ddf920 8ff498f8 00000000 00000000 00000000 win32k!DrvCreateMDEV+0x5fd
      91ddfa2c 8ff48950 00000000 00000000 00000000 win32k!DrvInternalChangeDisplaySettings+0x50b
      91ddfb48 8ff3a5cd 00000000 00000000 00000000 win32k!DrvChangeDisplaySettings+0x3ae
      91ddfba0 8ff3d081 00000000 91ddfcf0 00000009 win32k!InitVideo+0x60
      91ddfbc8 8ff3d1e3 91ddfbf0 00000009 91ddfcf0 win32k!RemoteConnect+0x308
      91ddfd20 828471ea 003af668 0000000a 003af768 win32k!NtUserRemoteConnect+0xa4
      91ddfd20 77a770b4 003af668 0000000a 003af768 nt!KiFastCallEntry+0x12a
      003af780 00000000 00000000 00000000 00000000 0x77a770b4

       


      STACK_COMMAND:  kb

       

      FOLLOWUP_IP:
      iegddis+1d27
      8fe81d27 ??              ???

       

      SYMBOL_STACK_INDEX:  6

       

      SYMBOL_NAME:  iegddis+1d27

       

      FOLLOWUP_NAME:  MachineOwner

       

      MODULE_NAME: iegddis

       

      IMAGE_NAME:  iegddis.dll

       

      DEBUG_FLR_IMAGE_TIMESTAMP:  4a5d46ba

       

      FAILURE_BUCKET_ID:  0xA_iegddis+1d27

       

      BUCKET_ID:  0xA_iegddis+1d27

       

      Followup: MachineOwner
      ---------------------------------------------------------------------


      Microsoft (R) Windows Debugger Version 6.11.0001.404 X86
      Copyright (c) Microsoft Corporation. All rights reserved.

       


      Loading Dump File [C:\Users\kellys.CARCGNT\Desktop\050312-11781-01.dmp]
      Mini Kernel Dump File: Only registers and stack trace are available

       

      Symbol search path is: SRV*c:\symbols *http://msdl.microsoft.com/download/symbols
      Executable search path is:
      Windows 7 Kernel Version 7600 MP (2 procs) Free x86 compatible
      Product: WinNt, suite: TerminalServer EmbeddedNT SingleUserTS
      Built by: 7600.16529.x86fre.win7_gdr.100214-1506
      Machine Name:
      Kernel base = 0x8260e000 PsLoadedModuleList = 0x82756810
      Debug session time: Thu May  3 10:24:33.750 2012 (GMT-7)
      System Uptime: 0 days 0:00:18.203
      Loading Kernel Symbols
      ...............................................................
      .............................................
      Loading User Symbols
      Loading unloaded module list
      .....
      Unable to load image igdkmd32.sys, Win32 error 0n2
      *** WARNING: Unable to verify timestamp for igdkmd32.sys
      *** ERROR: Module load completed but symbols could not be loaded for igdkmd32.sys
      *******************************************************************************
      *                                                                             *
      *                        Bugcheck Analysis                                    *
      *                                                                             *
      *******************************************************************************

       

      Use !analyze -v to get detailed debugging information.

       

      BugCheck 10000050, {de4d5360, 0, 8db60e76, 2}

       


      Could not read faulting driver name
      Probably caused by : igdkmd32.sys ( igdkmd32+121e76 )

       

      Followup: MachineOwner
      ---------

       

      0: kd> !analyze -v
      *******************************************************************************
      *                                                                             *
      *                        Bugcheck Analysis                                    *
      *                                                                             *
      *******************************************************************************

       

      PAGE_FAULT_IN_NONPAGED_AREA (50)
      Invalid system memory was referenced.  This cannot be protected by try-except,
      it must be protected by a Probe.  Typically the address is just plain bad or it
      is pointing at freed memory.
      Arguments:
      Arg1: de4d5360, memory referenced.
      Arg2: 00000000, value 0 = read operation, 1 = write operation.
      Arg3: 8db60e76, If non-zero, the instruction address which referenced the bad memory
          address.
      Arg4: 00000002, (reserved)

       

      Debugging Details:
      ------------------

       


      Could not read faulting driver name

       

      READ_ADDRESS: GetPointerFromAddress: unable to read from 82776718
      Unable to read MiSystemVaType memory at 82756160
      de4d5360

       

      FAULTING_IP:
      igdkmd32+121e76
      8db60e76 668b4210        mov     ax,word ptr [edx+10h]

       

      MM_INTERNAL_CODE:  2

       

      CUSTOMER_CRASH_COUNT:  1

       

      DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT

       

      BUGCHECK_STR:  0x50

       

      PROCESS_NAME:  csrss.exe

       

      CURRENT_IRQL:  0

       

      LAST_CONTROL_TRANSFER:  from 8db5ed6a to 8db60e76

       

      STACK_TEXT: 
      WARNING: Stack unwind information not available. Following frames may be wrong.
      8c1e7974 8db5ed6a 851c6740 8c1e7994 8db5eead igdkmd32+0x121e76
      8c1e7980 8db5eead 851c6740 8448f430 851c6740 igdkmd32+0x11fd6a
      8c1e7994 8db44d83 8c1e79ac 82a23ba9 0000013a igdkmd32+0x11fead
      8c1e7a38 8db497bb 85e48648 8448f430 00000057 igdkmd32+0x105d83
      8c1e7a4c 8da6c65b 85260000 8c1e7a60 00000000 igdkmd32+0x10a7bb
      8c1e7a64 8da665e5 85260000 badb0d00 00000000 igdkmd32+0x2d65b
      8c1e7ad8 8df9eb66 85260000 8c1e7c58 8c1e7b84 igdkmd32+0x275e5
      8c1e7b00 8df9e826 8525de90 85260000 8c1e7c58 dxgkrnl!DpiDxgkDdiStartDevice+0x3a
      8c1e7c70 8df9e35c 8525c920 00000001 00000000 dxgkrnl!DpiFdoStartAdapter+0x40d
      8c1e7c98 8df8919f 00000000 887d59c8 00000040 dxgkrnl!DpiFdoStartAdapterThread+0xe8
      8c1e7ca0 887d59c8 00000040 00000000 91a85911 dxgkrnl!DpiSessionCreateCallback+0x25
      8c1e7cb8 887d5e09 8c1e7cd0 91a84322 00000001 watchdog!SMgrSessionOpen+0xa4
      8c1e7cc0 91a84322 00000001 ffffbc97 8c1e7d18 watchdog!SMgrNotifySessionChange+0x19
      8c1e7cd0 91a85e98 00000001 00000000 91c73870 win32k!DrvNotifySessionStateChange+0x42
      8c1e7d18 91a85992 0026fa18 8c1e7d34 8265147a win32k!InitializeGreCSRSS+0x16
      8c1e7d24 8265147a 00000040 00000044 0026fa34 win32k!NtUserInitialize+0x81
      8c1e7d24 773464f4 00000040 00000044 0026fa34 nt!KiFastCallEntry+0x12a
      0026fa34 00000000 00000000 00000000 00000000 0x773464f4

       


      STACK_COMMAND:  kb

       

      FOLLOWUP_IP:
      igdkmd32+121e76
      8db60e76 668b4210        mov     ax,word ptr [edx+10h]

       

      SYMBOL_STACK_INDEX:  0

       

      SYMBOL_NAME:  igdkmd32+121e76

       

      FOLLOWUP_NAME:  MachineOwner

       

      MODULE_NAME: igdkmd32

       

      IMAGE_NAME:  igdkmd32.sys

       

      DEBUG_FLR_IMAGE_TIMESTAMP:  4aba7471

       

      FAILURE_BUCKET_ID:  0x50_igdkmd32+121e76

       

      BUCKET_ID:  0x50_igdkmd32+121e76

       

      Followup: MachineOwner
      ---------

        • Re: N270, 945GSE, IEGD, Windows 7, BSOD, iegd3dg3.dll
          Kirk Brown Belt

          I've periodically seen that IRQ error with IEGD, but it was usually caused by a bad install of WIN7 / WES7.  What I believe may be happening is that you are attempting to install the IEGD driver over the top of an exisiting GMA driver install.  That rarely works out.  I believe the GMA driver leaves some residual modules that do not interact well with IEGD.  What you need to do is remove the GMA driver completely, reboot into VGA mode, DO NOT allow an auto install of the 945 driver, THEN use the IEGD SETUP to install.  Unfortuantely in a development environment (installing multiple graphics driver over the top of others repeatedly) can get he registry twisted up to the point you just have to reinstall Windows to straighten it out (something I have done MANY times doing debug).

           

          You should not see any sort of BSOD on install although you might get nagged about the EMGD driver not being WHQL (because we allow YOU to configure the driver and WHQL requires a static .INF file that we are letting you configure to your needs).

           

          If you do see a BSOD upon install, then something whacky is really going on.  I agree about that WES7 image being the most WIN7 compatible.  IEGD does not need much in the terms of system libraries and functions but it is possible to try to strip out TOO MUCH thus rendering the graphics driver from functioning but that does not sound like the case here.

           

          Something else to check either in your BIOS, or with your BIOS vendor woul dbe the size of your Graphics Aperature.  For IEGD to operate it needs enough "room to stretch" to access the graphics memory.  If your aperature is set too small, there may be a chance the driver is stepping outside of the aperature when accessing graphics memory triggering those unmapped memory areas.  The User's Guide should talk about that and minimum requirements.  As a try, you might crank that thing wide open and see if that changes anything.

           

           

          One last thing is that IEGD is an XPDM driver- if you have anything that requires a WDDM graphics driver model features, then it just is not going to work.  I understand things like RDP (remote desktop) do not like playing nice with XPDM graphics drivers.

           

          Hope this helps.

          1 of 1 people found this helpful
            • Re: N270, 945GSE, IEGD, Windows 7, BSOD, iegd3dg3.dll
              Community Member

              Kirk,

               

              Thank you this was very helpful.

               

              One question we have still is whether the N270/945GSE chipset can support a single 2GB RAM stick and be stable.  We have been using both 1GB and 2GB and the question is if the 2GB RAM would possibly be less stable than 1GB.  We've been using 2GB sticks because the performance is so much better.

               

              I don't have a way to change the size of the graphics aperture in either the Roe River or our custom SBC BIOS.  What I understand is that the aperture size is identical on both systems but I'm not sure how to determine that or where to look.

               

              I also don't know how to prevent the auto installation of the 945 driver.  I will ask a WES7 expert I know about that.

               

              The only time I see a BSOD on installation of the OS is with full up Windows 7, never with WES7.

               

              Steve

                • Re: N270, 945GSE, IEGD, Windows 7, BSOD, iegd3dg3.dll
                  Kirk Brown Belt

                  Wow, I am not sure about RAM size (I am a graphics software person) but I know the chipset is designed to support it.  I've heard, and experienced difficulties with certian RAM brands on some boards, but nothing in general about N270 and RAM.

                   

                  Weird on the Roe River as usually the Intel BIOS do have an option for that in the "Southbridge" settings or sometimes in a unique Graphics area of the BIOS.  As for your board, you just might need to ask your BIOS vendor what they default it to and see if it is being artifically restricted.

                   

                  To stop the 945 driver from getting loaded, you might need to uninstall and delete the driver from the Device Manager of the Control Panel.  You might also need to hunt down the files and manually delete them.  Safe Mode may be your friend for this task IF there is no uninstall for the GMA driver.

                   

                  And getting a BSOD on full Win 7 is REALLY odd but that still might be the "residue" of the GMA driver in memory if you did not manage to exorsize the whole GMA driver set.

                   

                  Kirk  

                    • Re: N270, 945GSE, IEGD, Windows 7, BSOD, iegd3dg3.dll
                      Kirk Brown Belt

                      One other suggestion-

                       

                      Use device manager and uninstall the GMA 945 driver,

                      Reboot but use the F8 key to bring up the Windows boot menu

                      Select, "Start in VGA mode" (it might only offer Safe Mode but that works also)

                      Once booted, install IEGD using the SETUP in the utilities folder of the install set.

                      Reboot into "normal" mode - that should avoid having any lurking graphics code interfering with the install.