Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-13306

Crash due to invalid V86 opcode when booting on 82Q35 chipset

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Fix Version/s: 0.4.6
    • Component/s: NTCore
    • Labels:
      None
    • Module:
    • Sprint:
      May 2017

      Description

      Reported by 'finger'. With some added debug prints:

      (ntoskrnl/kd/kdio.c:384) -----------------------------------------------------
      (ntoskrnl/kd/kdio.c:385) ReactOS 0.5-SVN (Build 20170522-r74622)
      (ntoskrnl/kd/kdio.c:387) 1 System Processor [2859 MB Memory]
      (ntoskrnl/kd/kdio.c:388) Command Line: DEBUG DEBUGPORT=COM1 BAUDRATE=115200 SOS MININT
      (ntoskrnl/kd/kdio.c:392) ARC Paths: multi(0)disk(0)cdrom(32) \ multi(0)disk(0)cdrom(32) \reactos\
      (ntoskrnl/ke/i386/cpu.c:450) Supported CPU features : KF_V86_VIS KF_RDTSC KF_CR4 KF_CMOV KF_GLOBAL_PAGE KF_LARGE_PAGE KF_MTRR KF_CMPXCHG8B KF_MMX KF_WORKING_PTE KF_PAT KF_FXSR KF_FAST_SYSCALL KF_XMMI   KF_XMMI64 KF_DTS KF_NX_BIT
      (ntoskrnl/ke/i386/cpu.c:722) Prefetch Cache: 64 bytes   L2 Cache: 3145728 bytes L2 Cache Line: 64 bytes L2 Cache Associativity: 12
      (ntoskrnl/mm/ARM3/mminit.c:1442) HAL I/O Mapping at FFFE0000 is unsafe
      (../hal/halx86/generic/bios.c:75) HAL: An invalid V86 opcode was encountered at address C000:3E68 (EFL 233202)
      Opcode: 66 EF 2E 8B 16 5E AA 66 ED 80
      (../hal/halx86/generic/bios.c:79) EFLAGS: 0x233202, EAX: 71410, EDX: 22ff00
      (../hal/halx86/generic/bios.c:89) TR: 0x28, PCR TSS: 80735000, TssBase: 80735000, TssLimit: 0x20ab
      (../hal/halx86/generic/bios.c:91) IoMapBase: 88
      (../hal/halx86/generic/bios.c:93) IoMap[0]: 0
      (../hal/halx86/generic/bios.c:94) IoMap[1fe0]: ff
       
      Entered debugger on embedded INT3 at 0x0008:0x80943fbe.

      Disassembly of the offending instructions:

         0:   66 ef                   out    dx,eax
         2:   2e 8b 16 5e aa          mov    dx,WORD PTR cs:0xaa5e
         7:   66 ed                   in     eax,dx

      The video bios is trying to write 0x00071410 to I/O port 0xff00.
      Turns out item 1fe0 in the IoMap is indeed always 'ff', despite HalpStoreAndClearIopm intending to clear it. This is because HalpSavedIoMap does not actually point to the I/O map array but to its parent structure.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ThFabba ThFabba
                Reporter:
                ThFabba ThFabba
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: