Please find my proposed patch attached.

MIZSEI Zoltán írta 2026. feb.. 6, P-n 20:37 órakor:
> Hi,
>
> I have applied the attached patch and received the attached output in 
> the dmesg. I hope it helps a bit.
>
> MIZSEI Zoltán írta 2026. jan.. 27, K-n 14:01 órakor:
>> Hi,
>>
>> thanks for the hint, I just did a quick check with FreeBSD 15 RELEASE, 
>> it works fine, i see the following:
>>
>> (...)
>> em0: <Intel(R) I219-LM TGP(13)> mem 0xa2300000-0xa231ffff at device 31.6 on 
>> pci0
>> em0: EEPROM V0.8-4
>> em0: Using 1024 TX descriptors and 1024 RX descriptors
>> em0: Using an MSI interrupt
>> em0: Ethernet address: RE:DA:CT:ED:12
>> em0: netmap quotes/slots: TX 1/1024, RX 1/1024
>> (...)
>>
>> So if the driver employs some workarounds, then FreeBSD clearly uses a 
>> different set or some extra workarounds for this specific hardware than 
>> OpenBSD. Would it be possible to implement those workarounds for 
>> OpenBSD?
>> Interestingly Illumos also works just fine with this NIC.
>>
>> Best Regards,
>> -- e
>>
>> Crystal Kolipe írta 2026. jan.. 27, K-n 10:48 órakor:
>>> On Mon, Jan 26, 2026 at 07:21:54PM +0100, MIZSEI Zoltn wrote:
>>>> sys/dev/pci/if_em.c I have commented out the following section, 
>>>> effectively disabling the cheksum check:
>>>> 
>>>> #ifdef TEST
>>>>         /* Make sure we have a good EEPROM before we read from it */
>>>>         if (em_get_flash_presence_i210(&sc->hw) &&
>>>>             em_validate_eeprom_checksum(&sc->hw) < 0) {
>>>>                 /*
>>>>                  * Some PCIe parts fail the first check due to
>>>>                  * the link being in sleep state, call it again,
>>>>                  * if it fails a second time its a real issue.
>>>>                  */
>>>>                 if (em_validate_eeprom_checksum(&sc->hw) < 0) {
>>>>                         printf("%s: The EEPROM Checksum Is Not Valid\n",
>>>>                                DEVNAME(sc));
>>>>                         return (EIO);
>>>>                 }
>>>>         }
>>>> #endif
>>>
>>> You might want to look at em_validate_eeprom_checksum() in if_em_hw.c, and 
>>> try
>>> to find out exactly where it's failing.
>>>
>>> If you search around on-line, you'll find a fair amount of discussion about
>>> issues with the non-volatile memory on various i219 series network adaptors.
>>>
>>> These issues are not limited to OpenBSD, you'll find discussion on Linux
>>> forums as well.
>>>
>>> Having said that, there is already code to address one of the known issues 
>>> in
>>> em_validate_eeprom_checksum(), and this was imported from FreeBSD a long 
>>> time
>>> ago, so most of these devices are indeed expected to just work with OpenBSD,
>>> and presumably your device is doing something different.
>>
>> -- 
>> --Z--
>
> -- 
> --Z--
> Csatolmányok:
> * em_debug_checksum.patch
> * dmesg.txt

-- 
--Z--

Attachment: openbsd_i219-lm.patch
Description: Binary data

Reply via email to