Content Type
Profiles
Forums
Events
Everything posted by Dietmar
-
@reboot12 Do you have Windbg 6.3.9600.17200 X86 ? Then run a Windbg session. Use my i219.pdb . You can load it when you show Windbg the path to it and run !sym noisy .reload /f sxe ld:i219 sxe ud:i219 g .reload /f i219.sys lm m i219 You can ask me or ChatGPT for the output results. At once you will find the reason Dietmar
-
@reboot12 Here is next version3, good luck Dietmar https://www.upload.ee/files/19098198/i219-LM-v3.zip.html EDIT: AMT/ME in BIOS deactivate. In BIOS AMT/vPro/Manageability (or “Intel ME”, “MEBx”, “ASF”) deactivate may help against crazy ME spy machine. All the problem comes from this: When from outside somebody wants to take control over your compi, ME operates via this i219-LM device. And in this time, all normal traffic has to be stopped. Exact this happens to you.
-
@reboot12 Your Dev_15BB is different from my Dev_15B8 and Dev_1A1D for my i219 driver, which I tested and works ok. Yours is a i219-LM, mine are i219-v. I just look at all the registers of your Dev_15BB, where there is a difference. Then I compile a new driver for you. But this driver only you can test, because I have no board with this Dev Dietmar
-
@reboot12 Hi, do you have a 100MB or a 1000MB connection? This you can see from the coulors of your LEDs on the network card. Orange: 100MB Green: 1000 MB I have only 100MB and so I tested only 100MB connection Dietmar PS: And have you tested this your network cable on another nick, so that with DHCP all is ok? This you can see wenn in CMD you put ipconfig /all .
-
I succeed to install my from scratch build generic RTL8125 driver. So, the first most most crazy step is done. Mostly all OIDs are unknown to me and I have to recognice them all one by one with "hand" means Windbg Dietmar PS: Next is from “driver starts” → “TCP/IP binds + DHCP works” → “real traffic” 20: kd> !devnode 8bed55a8 DevNode 0x8bed55a8 for PDO 0x8bed5c10 Parent 0x8be67288 Sibling 0000000000 Child 0000000000 InstancePath is "PCI\VEN_10EC&DEV_8125&SUBSYS_E0001458&REV_05\4&2b19def8&0&00E2" ServiceName is "rtl8125" State = DeviceNodeStarted (0x308) Previous State = DeviceNodeEnumerateCompletion (0x30d) StateHistory[07] = DeviceNodeEnumerateCompletion (0x30d) StateHistory[06] = DeviceNodeStarted (0x308) StateHistory[05] = DeviceNodeStartPostWork (0x307) StateHistory[04] = DeviceNodeStartCompletion (0x306) StateHistory[03] = DeviceNodeResourcesAssigned (0x304) StateHistory[02] = DeviceNodeDriversAdded (0x303) StateHistory[01] = DeviceNodeInitialized (0x302) StateHistory[00] = DeviceNodeUninitialized (0x301) StateHistory[19] = Unknown State (0x0) StateHistory[18] = Unknown State (0x0) StateHistory[17] = Unknown State (0x0) StateHistory[16] = Unknown State (0x0) StateHistory[15] = Unknown State (0x0) StateHistory[14] = Unknown State (0x0) StateHistory[13] = Unknown State (0x0) StateHistory[12] = Unknown State (0x0) StateHistory[11] = Unknown State (0x0) StateHistory[10] = Unknown State (0x0) StateHistory[09] = Unknown State (0x0) StateHistory[08] = Unknown State (0x0) Flags (0x000000f0) DNF_ENUMERATED, DNF_IDS_QUERIED, DNF_HAS_BOOT_CONFIG, DNF_BOOT_CONFIG_RESERVED CapabilityFlags (0x00002003) DeviceD1, DeviceD2, WakeFromD3
-
There is a new version 2.0 of csmwrap. https://github.com/FlyGoat/csmwrap It solves 2 big hurdles: To put the bar < 4 GB and to shrink the vga memory to 256. This is necessary, to prevent Bios to use again memory > 4GB Dietmar
-
Hi, I have some motherboards with the Realtek RTL8125 2.5 GB lan chip and with real COM port for using Windbg to its full. And all those 8125(B,G) chips are nearly the same, as you can see in Linux device tree. Question for me is, how much energy I have to spend for this, to make a full working driver for XP SP3 on NDIS 5.1, without any extra file or function. For the Intel i219 I spend 10 days, about 160 hours work. And I am getting soso much better in using Windbg. But I think, I need at least about double this time. And I am not sure, that I get the full 2.5 GB to work because as Linux tells about crazy firmware needed for this Dietmar
-
With all the tools that I know, I get this result for my i219 driver for XP SP3: Based on my XP SP3 logs and real-world behaviour, my custom Intel i219 (DEV_15B8) driver currently reaches roughly ~70–80% of the “feel” of an official Intel i218 XP driver in stability + latency. Which is kind of hilarious, because: - Intel never intended i219 to run on XP at all. - Yet here it is, happily pushing packets like it belongs in 2002. - In practice I’m basically cosplaying parts of Intel’s later driver logic under NDIS 5.1 and XP just shrugs and says “ok”. Where a real official Intel i218 XP driver would still win clearly: ✔ High-throughput efficiency at very high bandwidth ✔ Adaptive / smarter interrupt moderation ✔ Power-state transitions / energy features done “the Intel way” But in the areas that matter first for daily use: - Link reliability: solid - Ping stability: clean, no crazy jitter spikes - Error-free transfer: no obvious discards/errors in counters under load …my i219 driver is already surprisingly close to production-grade behaviour. Blunt engineer-style punchline: "If an Intel NIC developer saw these logs, he’d probably say: 'This is not supposed to work… why is it working?' 😄"
-
Oh..my, sometimes only the dirtiest hack give you success.. I sit like a drunk duck in polling (Windows timer 15.6 ms) for the i219 lan Driver under XP SP3. IRQ registration never succeeded → so RX got serviced only on the timer. So.. I changed the IRQ-registration via this crazy hack 1) Now I try 3 candidate interrupt pairs: - a->IrqVector / a->IrqLevel NdisMQueryAdapterResources, mostly (?!) works but not for me and XP. - a->IrqSysVector / a->IrqSysLevel - a->IrqBusVector / a->IrqBusLevel What this hack is doing: - On modern boards with IOAPIC routing, XP/NDIS can expose interrupt information in multiple.. “views” (resource list, system-translated, bus-related). - If you pick only one pair (the “clean” way), NdisMRegisterInterrupt may fail or the IRQ never fires, and you fall back to timer-driven polling, means a ping of 15 ms. Hack: During MiniportInitialize, take the (Vector,Level) pairs XP already reports, and try registering them in the above order. The first pair that NdisMRegisterInterrupt accepts, becomes the selected IRQ configuration. Only ONE pair is used in the end(!). 2) I normalized BOTH vector and level when XP/IOAPIC gives “translated” values: Here with my values on Asrock z370 k6 board (from my working setup: Vector = 97, Level/IRQ-line = 5) On my compi, the “real” pair is: - vec = 97 decimal = 0x61 - lvl = 5 decimal = 0x05 Now the XP/IOAPIC “translated” case looks like this (same information, just encoded): - raw vec = 0x361 (this is in 0x300..0x3FF) - raw lvl = 0x305 (this is in 0x300..0x3FF) Normalization rule: - if value in 0x300..0x3FF => value = value - 0x300 Do the math (HEX): - vec: 0x361 - 0x300 = 0x061 => 0x61 = 97 decimal - lvl: 0x305 - 0x300 = 0x005 => 0x05 = 5 decimal So after this normalization you end up exactly at your usable XP pair: - vec = 0x61 (97) - lvl = 0x05 (5) If XP already reports normal values (not translated), nothing changes: - raw vec = 0x61 => not in 0x300..0x3FF => keep 0x61 - raw lvl = 0x05 => not in 0x300..0x3FF => keep 0x05 Before, sometimes I had a good vector but a still-translated level, so NdisMRegisterInterrupt failed and I stayed in polling forever, ping always 15 ms, but via IRQ to my router at 192.168.2.1 ping time should be <1 ms. 3) Now I force the XP-safe interrupt mode - shared = TRUE - mode = NdisInterruptLevelSensitive Why this works - This matches how INTx behind IOAPIC behaves in practice on modern chipsets (like crazy). - “Edge” / “not shared” settings are a common reason for missed / never-fired interrupts on XP. Dietmar PS: Because I have no idea, how to test the quality of my driver i219 for XP SP3, I would be very happy, if a user here can do this for me or gives me Tutorial, how to do this by myself. PPS: Here is this my version of the i219 lan driver, running under XP SP3. Now it is the fastest lan, that I ever had. https://files.catbox.moe/rmxl63.zip