Dietmar Posted June 5 Posted June 5 @reboot12 Yes, I did this with success with the DSDT Patcher at boot time from @Mov AX, 0xDEAD . This is a really nice tool and with it I change DSDT a lot of times in minutes. But only for XP bit 32 I think. asl does not work, because it patches only the static DSDT in registry and gives Bsod on reboot. You can ask @Damnation he succeed with grub4dos I think, but dont know if this also works with XP bit 64 Dietmar
Dietmar Posted June 5 Posted June 5 @reboot12 For one of my AMD boards I bought a changeable case on motherboard for the Bios chip. The original chip I solder out and can put it in and out of this case as often as I want, like in former times. After this, I can modd DSDT for this board while during flashing whole bios also in minutes Dietmar
reboot12 Posted June 5 Posted June 5 @Dietmar Apparently acpidump.exe reads the table from RAM AIDA64 reads from the bios If I use asl.exe, which inserts a table into the registry, acpidump.exe reads it, which means that the overwriting probably works correctly.
UsefulAGKHelper Posted June 5 Posted June 5 (edited) 17 minutes ago, reboot12 said: @Dietmar Have you ever tried patching the DSDT table and override e.g. using CLOVER or asl -loadtable dsdt_fix.aml it? I tested override using asl and work on WinXP - this add table to registry. CLOVER replace also in UEFI Shell but on Win 8.1 DSDT is back oryginal. Regarding CLOVER, I am also trying to use it but It doesn't load any .aml I put! <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://apple.com"> <plist version="1.0"> <dict> <key>ACPI</key> <dict> <key>FixHeaders</key> <true/> <key>AutoMerge</key> <true/> <key>DSDT</key> <dict> <key>Patches</key> <array> <dict> <key>Comment</key> <string>Rename _OSI to XOSI</string> <key>Find</key> <data>X09TSQ==</data> <key>Replace</key> <data>WE9TSQ==</data> </dict> </array> </dict> <key>SortedOrder</key> <array> <string>I2C.aml</string> </array> </dict> <key>Boot</key> <dict> <key>Arguments</key> <string></string> <key>DefaultVolume</key> <string>EFI</string> <key>DefaultLoader</key> <string></string> <key>Legacy</key> <string>LegacyBiosDefault</string> <key>Timeout</key> <integer>5</integer> <key>Fast</key> <false/> </dict> <key>Devices</key> <dict> <key>NoDefaultProperties</key> <false/> </dict> <key>Graphics</key> <dict> <key>Inject</key> <false/> <key>PatchVBios</key> <false/> <key>LoadVBios</key> <true/> </dict> <key>GUI</key> <dict> <key>Scan</key> <dict> <key>Entries</key> <true/> <key>Legacy</key> <string>No</string> <key>Tool</key> <true/> </dict> <key>Custom</key> <dict> <key>Legacy</key> <array> <dict> <key>Title</key> <string>Windows XP (NTLDR)</string> <key>Type</key> <string>Windows</string> <key>Volume</key> <string>EFI</string> <key>Path</key> <string>\xp.bin</string> <key>Disabled</key> <false/> </dict> </array> </dict> <key>Hide</key> <array> <string>Preboot</string> <string>Recovery</string> <string>UEFI Internal</string> <string>UEFI Shell</string> <string>Boot Maintenance Manager</string> <string>Boot from EFI</string> <string>Boot from File</string> </array> <key>Misc</key> <dict> <key>Debug</key> <true/> <key>Log</key> <true/> <key>LogEveryBoot</key> <string>\EFI\Clover\Misc\clover.log</string> </dict> <key>Theme</key> <string>embedded</string> <key>Mouse</key> <dict> <key>Enabled</key> <true/> </dict> <key>Language</key> <string>en</string> </dict> </dict> </plist> Edited June 5 by UsefulAGKHelper
Dietmar Posted June 5 Posted June 5 @reboot12 For a try it may work. The problem in this is, that the way, the Bios treated DSDT is not static. Suddently you will get Bsod. This makes me like crazy, until @Mov AX, 0xDEAD tells me, that this was the exact reason why he build his DSDT patcher at boottime Dietmar
Dietmar Posted June 5 Posted June 5 @UsefulAGKHelper No, he disappeared suddently in November 2024, dont know why Dietmar
reboot12 Posted June 5 Posted June 5 (edited) 42 minutes ago, UsefulAGKHelper said: Regarding CLOVER, I am also trying to use it but It doesn't load any .aml I put! CLOVER on Legacy or UEFI? For UEFI try like this: on USB FAT32 stick put clover files: EFI\CLOVER\ACPI\patched\DSDT.aml EFI\CLOVER\ACPI\origin EFI\CLOVER\cloverx64.efi EFI\CLOVER\config.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>ACPI</key> <dict> <key>DSDT</key> <dict> <key>Name</key> <string>DSDT.aml</string> </dict> </dict> </dict> </plist> boot to UEFI Shell and run cloverx64.efi table should be loaded if you press F5 now then table should be writen to origin\DSDT-0.aml but after load Windows - I tried Win 8.1 DSDT table is original - not patched ??? You might also try ACPIPatcher.efi > https://github.com/jslegendre/ACPIPatcher For WinXP 64-bit I tested registry override with asl.exe and works - no BSOD: acpidump -b -n DSDT -z iasl -d dsdt.dat edit dsdt.dsl and save as e.g. dsdt_fix.dsl iasl dsdt_fix.dsl asl -loadtable dsdt_fix.aml Now table is in registry: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI\Parameters I use: asl.exe 64-bit 6.3.9600.16384 from WinDDK 8.1 iasl-win-20180105.zip - this is latest version working on WinXP (I don't know why these tools are only in the 32-bit version, but they work OK on WinXP 64-bit) Edited June 5 by reboot12
Dietmar Posted June 5 Posted June 5 Yessssssssssssaaaaaaaaaaaaaahhhh after about next 500h of work and about 1000 not working drivers, I get the driver for the Wlan 9560 on the gemini chipset with j4105 cpu to run. It is a pure polling driver, based on OpenBSD 79. The step for to bring the firmware to alive=1 I managed only with Ubuntu. Crazy, 10 different rings for TX and RX and management data. Again I was one step away from to give up Dietmar 2
reboot12 Posted June 5 Posted June 5 6 minutes ago, Dietmar said: I get the driver for the Wlan 9560 on the gemini chipset with j4105 cpu to run. WOW, please give me source code or compile for me WinXP 64-bit driver to test.
Dietmar Posted June 5 Posted June 5 @reboot12 I need to make some more tests. Until now only 2 RX packages, because I force one ring for this. But because it is a pure POLLING driver and DHCP works already, I think already today I send to you Dietmar
Dietmar Posted Saturday at 10:04 PM Posted Saturday at 10:04 PM @reboot12 I found this link https://codebrowser.dev/linux/linux/drivers/net/wireless/intel/iwlwifi/mei/main.c.html What it means is very easy. ME kills the 9560 on the gemini chip platform, so for our j4105. And on the Asrock j4105-ITX I cant disable ME, the name in Bios for ME there is TXE but when I disable it, the Wlan 9560 is gone. I can see ME at work: The 2 RX packages I read above are data for arp and DHCP. After this, crazy ME brings the firmware to write 3b, so the RX ring is blocked. I also found in the original OpenBSD 79 Source Code, which I modd for POLLING for the 9560, has an own C-block, how to handle this ME. So, fun is not over but I have to build this all with the help of ChatGPT, like translation from OpenBSD C-Code to XPC-Code. Then, XP is "allowed" under ME. I also tried a dirty hack, just to jump over this 3b code. But then the 9560 driver does not install any longer Dietmar 1. iwm_nic_lock() MAC_ACCESS_REQ setzen auf MAC_ACCESS_EN warten GOING_TO_SLEEP beachten 2. iwm_apm_init() HAP_WAKE_L1A setzen INIT_DONE setzen MAC_CLOCK_READY warten DMA clock / L1_ACT_DIS setzen 3. iwm_prepare_card_hw() HW_IF_CONFIG PREPARE / NIC_READY / ME_OWN / WAKE_ME prüfen 4. iwm_nic_rx_mq_init() RFH_RXF_DMA_CFG RFH_GEN_CFG DMA_SNOOP RFH_RXF_RXQ_ACTIVE WIDX_TRG 5. iwm_power_update_device() POWER_TABLE_CMD 6. iwm_power_mac_update_mode() MAC_PM_POWER_TABLE 7. iwm_ltr_config() LTR_CONFIG
Dietmar Posted Saturday at 10:08 PM Posted Saturday at 10:08 PM @reboot12 Here is first try of translating the Source Code for ME from OpenBSD 79 to XP Dietmar 1. Früher poll184_14-Startpfad bleibt erhalten -> kein poll184_19-Code-10-APM-Ersatz 2. OpenBSD-POLLING-WIDX-Logik: nach jedem Poll: widx = (closed == 0 ? Wifi_MAX_RX - 1 : closed - 1) & ~7 RFH_Q0_FRBDCB_WIDX_TRG wird auch bei count == 0 geschrieben 3. OpenBSD-artiger late nic_lock: MAC_ACCESS_REQ setzen auf MAC_ACCESS_EN warten GOING_TO_SLEEP prüfen 4. OpenBSD-artiger late ME/Wake/Ownership-Touch: HAP_WAKE WAKE_ME WAKE_ME_PCIE_OWNER_EN PCI_OWN_SET OS_ALIVE INIT_DONE RFKILL_WAKE_L1A_EN L1A_NO_L0S_RX HPET 0xffff0000 Link Power Management disabled 5. 0x3b wird nicht gefälscht closed bleibt echt nur RFH/MAC/ME wird wie OpenBSD nachgetriggert
reboot12 Posted Sunday at 12:47 AM Posted Sunday at 12:47 AM (edited) @Dietmar Yeeeeeeeeeeeaaaaaaaaa I built from scratch a bootvid.dll driver (hardcoded version) for WinXP 64-bit that can display a BSOD on the screen if OS boot in UEFI mode It only needs to hardcode the current graphics card memory address and the native resolution of the monitor: I also built a version that automatically finds the address of the graphics card but cannot read the current resolution and uses hardcoded resolution and displays the BSOD only well in hardcoded resolution. On any other resolution BSOD it is corrupt: But of course possible compile bootvid.dll auto-scan memory addres and use hardcoded any custom resolution e.g. popular 1920x1080 Edited Tuesday at 10:57 AM by reboot12 1
reboot12 Posted Sunday at 05:39 PM Posted Sunday at 05:39 PM (edited) @Dietmar Yeaaaaaaaaa - I make new versions bootvid.dll for BSOD - auto find graphics card and no clear screen: top left centered Now, when testing drivers under WinXP UEFI, I see a BSOD on the screen This is very helpful if I cannot debug in WinDbg via COM or LAN port e.g. on my Dell Wyse 3040 little PC. @Dietmar Problably BSOD be same as in WinPE 3.1 when you tried patched before. Edited Tuesday at 11:13 AM by reboot12
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now