Zitat von diderius6 im Beitrag #82On the giga board I enabled ToInteger in Method(STRT) for XP, because this works also on the Asus z97-k board. Interesting, no BSOD 0xA5 happens!
because winxp doesnt parse this method (this method not used in _ini, _crs and other parsed methods)
Zitat von diderius6 im Beitrag #77@Mov AX, 0xDEAD do you think, that in the DSDT table the question If ((OSYS >= 0x07D6)) blocks any important information for XP?
I can run winxp with original DSDT table, it still has bug with timer and Plug-n-Play/Resourse Management subsystem works different. WinXP for main acpi device *PNP0C08* assign only one irq #15 Win7 assign large list #81-#190 (110 irqs !) to same device
i was right, HAL doesnt receive call from acpi.sys about carry handle acpi.sys register ISR/DPC handler for hardware interrupt, check that interrupt was caused carry situation and call hal.dll to increase high 8 bit counter every 4 sec. this works well on virtual winxp (under qemu), but not on real hardware. i want to dig deeper and currently build uart<->rs232 converter to normal kernel windbg debugging instead slow and ugly "intel system debugger"
...24bit timer is OK on previous chipsets, windows xp has logic to handle it, something wrong on new platform, maybe windows no receive event about handle carry...
forced do not use pm_timer, now moorhuhn works ): [[File:pm_ok.png|none|fullsize]] WinXP SP(?) auto uses pm_timer instead RDTSC if found FACP table version 2 or higher (skylake has 6 version) USE_PLATFORM_CLOCK=1 in FACP Flags, switch /usepmtimer need to force using acpi timer if USE_PLATFORM_CLOCK=0
perftimer reset about every 3.5s, i have сhecked FACP table, resolution of pm timer (TMR_VAL_EXT) is 24 bit, i think: - winxp use PM Timer (because this utility show 3.5Mhz) - overflow 24bit is 4 secs, overflow 32bits is 20 mins - winxp read it as 32 bit and doesnt care about high 8 bit (they are zero, this leads to negative result of operation currentime()-previoustime())
in FACP exist interesting bit USE_PLATFORM_CLOCK=1 (OSPM use HPET (if exist) or ACPI PM Timer)
Zitat von diderius6 im Beitrag #63I found out, that with the modded DSDT table in Bios (Acpi) all programs work normal for about 1 second, but then changes behavior
confirm same problem, windows return wrong timer to applications [[File:timer bug.PNG]] i think this can be fixed, just need find proper way
Zitat von deSSy2724 im Beitrag #58Congratulation Dietmar...... can you confirm if Hyper Threading is working and does the OS and other programs like CPU-Z detect the correct number of threads for your i5 8700K( 6 cores /12 threads) and does Intel Speedstep work (auto clock/downclock). I think, both of those feautures should be tied to ACPI.....
- intel speedstep work, official method to enable - power saving mode must be ON - i dont have HT cpu so cannot report
I found some of power management problem, in ThrotleStop i see cpu is 50-60% of time in C0 power state, task manager cpu utilization is 0%. ThrotleStop also report about 0% time in any power saving states C1,C2,.. state. In win7 power states are normal, 2-6% in C0 and 95% in C7
Zitat von diderius6 im Beitrag #59 This Bios mod makes a problem I think with the timer. Via changing computer Acpimultiprocessor->Standard PC this is gone, so it really belongs to the modded DSDT table.
And he deleted at a lot of places ADBG (Concatenate... lines for example ADBG (Concatenate ("CNRSs ", ToDecimalString (Timer)))
- what is problem with timer ? - adbg is text debug message to COM port/RAM/etc and nothing more
we cannot keep this line as is, because ToDecimalString is new command
Zitat von Lost_N_BIOS im Beitrag #125Can any of you tell if this is what is blocking 50654 ES/QS CPUID? Or do you know from past experience what other modules I need to be looking at? Thanks! I also find 3D 50 06 05 in a few other modules too (CPUMpDXE, a Raw and padding section, MemCacheInit, and VTF) , so probably need to edit those if this is it.
why do you think stoping on postcode means "blocking" ? usualy this mean what bios doesnt know some capabilies/features of inserted cpu/pci subsystem/memory controller/system agent/other_device_in_ cpu. cpupolicy does many check of cpuid families, but as i understand this engineer version belong to same family like usual cpus, so family check is positive. checks maybe different ways, for examling 4-bit shifting of cpuid 0x00050654=>0x00005065, then check like "cmp r9d, 5065h" (see adress 0x144A in PlatformCpuPolicy)
Found interesting bug in one device in dsdti table for kabylake+ gigabyte's bioses (in skylake bioses this device not presented), device is IOTR (I/O Trap), it report to windows about claimed I/O adresses, method _CRS() load settings from special memory and report 0xFE adresses (254) starting from 0xFF00. WinXP x32 show claimed region correctly belong to "mothebvoard resource", but show conflict with pci host bridge (and VGA card too) Win7 also show claimed region but no conflicts.
I've patched this device to return empty list of resources Local0 = ResourceTemplate () { } return(Local0) and problem is gone
Zitat von sotti im Beitrag #900The main issue is trying to install from a USB memory stick. I am looking at finding a cheap USB CD drive and giving it another try.
really no need for usb cd/floppy, use WINNTSETUP (direct install from hdd to hdd) or YUMI (convert .ISO file to bootable media with auto integrating firadisk for emulation ISO like RamDisk)
Zitat von diderius6 im Beitrag #45@Mov AX, 0xDEAD Now I have Bios original from my mainboard ver. F25 with the DSDT table from Biosversion F1 inserted.
Zitat von diderius6 im Beitrag #45 I am going to flash original Bios file back and tomorrow I try the DSDT2 file
Hi, Do not do that, acpi tables hardcoded to RAM/IO/DEVICE ranges depend on bios revision F1 is old release for skylake F25 is latest release wiith new GUI and suport for kabylake
you need decompile/change/compile/flash f25 version of tables main problem is decompiling with external links with various number of arguments, i made custom file for my f24 bios:
why 1 on IUEH ? because i've checked all methods from all acpi files to find count of arguments of external things (iasl will report as "Warning: Unknown method, guessing 0 arguments" ) and found Method (IUEH, 1, Serialized) in SDDT-SaSsdt table
Zitat von diderius6 im Beitrag #40Hi, yes, this are new and first arrive in ACPI 2. BUT in the Bios F1 of your motherboard from Gigabyte they are all present (for example HexString) and give no BSOD x0A5 there as you told us,
because these commands belong to some custom methods/submethods (winxp do not call their) after version F1 these method started using in _INI too as subcall (see _INI of devices NVM1,NVM2,NVM3, at end they call subproc ARPC(), arpc() use new ToHexString and ToInteger) ACPI virtual machine in windows is interpretator, it not check all code, only needed parts, we can hide nuclear bomb inside acpi code and windows will never find it ))
Zitat von diderius6 im Beitrag #38 Buff > ToBuffer DecStr > ToDecimalString HexStr > ToHexString Int > ToInteger String > ToString Copy > CopyObject (may be not known by XP)
there no renames, ToBuffer and other are new acpi 2.0 opcodes, check amlcode.h, winxp accept only 1.0b opcodes