Zitat von diderius6 im Beitrag #32Hi @Mov AX, 0xDEAD May be, there are only one or two devices on this motherboard, which gives this BSOD with next Bios f20. And this can be tested, just to switch them off in Bios, if possible. ... Your BSOD happens because of method _INI. Have you tested, if this is the only method, which causes Acpi BSOD?
- acpi code in dsdt table is independ of enabled/disabled device, it is static and maded at time of creation bios - i have no tested other methods because i isolate ALL new code (exception _dsm), my "own" overkill way and i do not recommend it
Zitat von diderius6 im Beitrag #27 This is clear for me. I only want to have a tool, with which I can see, what is going on via ACPI in XP.
there no magic, acpi.sys doesnt know nothing about new acpi commands and when it found it at time of parsing, it generate 0x000000A5 error with 4 subcodes (errcode, adress, global code error from ntstatus.h, method where parser found problem) in my case was (0x03,adr,0xC0140001 ,_INI)
Zitat von diderius6 im Beitrag #27 And, have you ever had an XP SP3 on a z170 board, where ACPI works without any mod? This would be very helpfull to understand, which component of the board with BSOD 0xA is faulty in DSDT table, Dietmar
I have gigabyte h110m hd2 board, first version bios (F1) doesnt use acpi2.0 commands in critical for winxp parts of dsdt table. next versions (f20 for kabylake support) start using new syntax, i never had about special winxp compatible bioses. I see that moving blocks to expression "if os >=vista do {....}" solve problem 0xa5 with any bios
Zitat von diderius6 im Beitrag #25Hi all, I just find, that with the checked version of acpi.sys from XP you can start a windbg session. Hard job, but via this way you can repair step by step the Bios DSDT table. After long search I found the whole Checked Version of XP SP3, containing also the wished acpi.sys checked version. Now fun can start..
checked version helps for reversing, it still usual version and no support acpi2.0+ syntax
Zitat von deSSy2724 im Beitrag #3Hmm interesting, you mention DOS and 98SE...... is it possible to run games designed for the original DOS or DOS via 98SE? Can you boot DOS from 98SE or does it crash?
No problem with DOS, only need reconfigure HIMEM setting in config.sys to limit ram amount or use alternative like himemX Videocard bios must support Vesa 1.2/2.0/3.0 for SVGA modes NTFS4DOS+DOSLFN allow works with NTFS partitions
Zitat von the_soft45 im Beitrag #26An update on the situation: - Bluetooth still doesn't show up on Windows 7, which I found extremely odd. I dug around, and my laptop uses a Realtek RTL8723BE which includes both WiFi and Bluetooth integrated on the same chip, being that the Bluetooth portion interacts through USB.
- HP Wireless Button Driver loaded in win7 ? - HPRadioMgr86.exe is show anything on screen ?
Zitat von diderius6 im Beitrag #19@Mov AX, 0xDEAD Do you think it is possible, just do make a small hack to acpi.sys in XP SP3, so that it does not worry about "wrong" acpi 2.0 syntax from Bios?
probably yes, but this will be not simple hack 1) code example from my gigabyte bios:
This method ARPC called from other method _INI, so WinXP will parse this part ToHexString & ToInteger are new syntax, we need to skip it some way. ToHexString(ARG0) mean ARG0(maybe integer/string) => convert to String=>Concatenate ("NRPN: "+"0xYYYYZZZZ") ToInteger(ARG0) mean ARG0(maybe integer/string/buffer/etc) "0x000XXYY"=> convert to Integer=>Case(integer expected) we cannot just skip these command because they are parts of expressions and do some things with converting data/change types acpi.sys need new logic to skip these command and do equalent actions
2) deny winxp parsing any _INI methods, winxp will skip parsing most of code, but winxp run not only _INI method, theres is other methods and i do not know how, when and what is runned (_sta,_sun,_crs,_srs and many other), and if vendor added debug lines with new syntax (like gigabyte did) to some of these method we get 0xa5 error again. EDIT: gigabyte used in _crs new syntax too (
Also skipping _INI may have some effects with devices. This method may work for some motherboards without patching acpi tables if vendor not much modified acpi code
Zitat von Pill Monster im Beitrag #24@the_soft45: HP aren't blocking you. Microsoft are.
OEMs also sale notebooks with freedos/linux. m$ block oem to developing drivers for any OS too ? ormaybe m$ block oem to creating universal compatible driver for all windows family ? ))
Zitat von the_soft45 im Beitrag #17@Mov AX, 0xDEAD So... what would I need to do to activate those devices on W7? Install the debug/checked version of it? I do have access to that version, if needed.
1) decompile dsdt binary to text DSL 2) change 4 lines: If ((OSYS >= 0x07DC)) { Local0 = 0x0F } to one line: Local0 = 0x0F
3) compile back to binary 4) replace binary in bios (too danger!) or 5) use clover bootloader to override dsdt binary(i hope clover allow run not only MacOs X) or) 6) replace acpi.sys with checked version. search internet how to force load dsdt table from registry (not much info in public, i know tables stored in \HKLM\System\CurrentControlSet\Services\ACPI\Parameters, need key "Action" with some value).
Zitat von the_soft45 im Beitrag #15@Mov AX, 0xDEAD Wow, incredible discoveries... I actually found a driver for the HP Wireless Button driver dating all the way back in 2012... maybe that one would work. BTW, any luck finding the Realtek Bluetooth HWID in there, to see if it's blocked aswell?
i think realtek controlled by EC (embedded controller, separate chip to control keyboard/touchpad/power/peritherals)
full chain as i understand: custom software(HP Radio Manager) -> wirelessbuttondriver (access to acpi/hpq6001) -> acpi bytecode change some bits in memory/run EC's methods->EC physical enable/disable devices on i2c/usb/sm bus. maybe in acpi stage we trigger some code from BIOSs. and somewhere is stored settings about status of devices, because they store in NV memory (cmos/bios/ec ?)
I think HP disabled the device because it didn't want to write drivers for win7, the existing driver for win 10 x64 won't work, it's compiled for the new ntoskrnl.exe. EDIT: But x32 variant may works on win7, but you need patch dsdt table. As i know in checked/debug version of windows 7 exist available to override acpi table by loading binary from registry
Scope (_SB) { Device (WLBU) { Name (_HID, EisaId ("HPQ6001")) // _HID: Hardware ID Name (PRSN, 0xFF) Method (_STA, 0, NotSerialized) // _STA: Status { If ((PRSN == 0xFF)) { Local0 = Zero ^^PCI0._INI () If ((OSYS >= 0x07DC)) { Local0 = 0x0F }
PRSN = Local0 }
Return (PRSN) /* \_SB_.WLBU.PRSN */ }
_STA - method STATUS wlbu - wireless button (?) PRSN - persistence (?) OSYS >= 0x07DC mean OS Windows 8+/Win Server 2012+ in case win7(and low) method _STA return PRSN=Local0=Zero, this mean device is not present for OS
Zitat von the_soft45 im Beitrag #10I'll leave a link to it. It's the latest one (updated 9th November) and the BIOS files are inside the executable (you can open it with 7-ZIP or similar).
seems binary bios files inside are crypted/protected, no usual efi rom image
Zitat von the_soft45 im Beitrag #8@Fernando as far as I can tell, the devices do not work on W7 @Mov AX, 0xDEAD I think the Bluetooth functionality is software controlled, not hardware in this laptop's case... I enabled Bluetooth on Windows 10 and rebooted into Windows 7 and nothing.
can you upload bios ? i think HP does some tricks with ACPI\VEN_HPQ&DEV_6001 in acpi tables
Zitat von deSSy2724 im Beitrag #109 THe keyboard is wireless (unify receiver or whstever it is called) from Logitech and its connected to USB 3.0 on my motherboard just underneath the PS/2 connector. I dont understand how thsts possible if XP has no usb 3.0 drivers for this motherboard.?
Keyboard/mouse emulated as ps/2 ports, usb3.0 controlled by bios. Every time you press some key, bios enter low-level SMM mode and stop OS, do things with usb, gives control back to OS. This is compatibility mode and bad for emulating mouse (freezes/drops movements/etc)
Zitat von Fernando im Beitrag #4@the_soft45: I do not believe your suspicion, that Windows 7 doesn't detect devices, which are definitively connected with the mainboard. Even Windows XP detects modern hardware and shows them as "Unknown devices", but cannot handle them.
Hiding devices from OS is ok with notebooks: - Vendors write own programs for permanent enable/disable radio devices - Depending on OS these disabled device may not disappear completely from device manager
For example my lenovo (bios designed for win8) has special "energy power managment software", after installing it i can disable wi-fi or bluetooth module on USB bus (notebook has no physical buttons to control these devices). If devices are off, winxp and win7 do not see their, but win8 and win10 still see bluetooth module as USB/VID_105B&PID_E065 (BCM43142 from broadcomm)
Zitat von infuscomus im Beitrag #16 could you patch my ACPI Table for me please? you seem to know what you're doing and I don't want to break things, so I'd appreciate it.
sorry, i don't do that.
Zitat von infuscomus im Beitrag #16 is the ACPI Table stored in UEFI?
yes, dsdt binary table stored in uefi, short "how-to find,extract and decompile acpi tables" is here