Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

e1000e: probe of 0000:00:19:0 failed with error -3 on x230 (when gbe.bin is removed) #700

Closed
tlaurion opened this issue Apr 7, 2020 · 37 comments

Comments

@tlaurion
Copy link
Collaborator

tlaurion commented Apr 7, 2020

Can someone replicate

insmod /lib/modules/e1000e.ko
dmesg
e1000e: probe of 0000:00:19:0 failed with error -3

@osresearch @flammit ?

Tried upgrading to latest stable kernel, same thing. Coreboot patches failing with new musl-cross-make? Attempted to put muslc-cross-make to latest commit id without more luck.

Attempts here

@paulmenzel
Copy link
Contributor

paulmenzel commented Apr 8, 2020

@tlaurion, please, you are missing quite a lot of needed information in your report. What Linux version (uname -a)? Both Linux kernels? Please attach the coreboot log and Linux logs.

When was the last time this worked? Does the same Linux kernel work with older coreboot? Does it work with upstream coreboot (and GRUB, SeaBIOS, or … as payload)?

The C library shouldn’t have anything to do with coreboot or the Linux kernel.

Do you have debug on the Linux kernel command line?

You can trace e1000_probe, in drivers/net/ethernet/intel/e1000e/netdev.c.

In your original report the return code was -9. Now it’s -3. Was that a typo or does it change every time?

@tlaurion
Copy link
Collaborator Author

tlaurion commented Apr 8, 2020

@paulmenzel

In your original report the return code was -9. Now it’s -3. Was that a typo or does it change every time?
It was -3 and a corrected typo.

I arrive to the same error with built kernels. Always with coreboot 4.8.1:
linux-4.14.62
linux-4.19.63
linux-4.19.114
linux-5.4.30

I will make cleaner builds to receive proper help here once I figure out how to not strip modules from symbols so you guys can jump in easily and troubleshoot directly from qemu (and give insights #516 #701 ).

Will also add debug from coreboot kernel options for qemu-coreboot in the following builds and report in future comments.

@tlaurion tlaurion changed the title e1000e not detecting network card since musl-cross-make switch? e1000* not detecting network card since musl-cross-make switch? Apr 9, 2020
@tlaurion
Copy link
Collaborator Author

tlaurion commented Apr 9, 2020

@paulmenzel :

Downloadable qemu-coreboot debug artifacts

So I'm currently building qemu-coreboot debug builds for kernels:
4.14.62 (master used kernel for reference) : Gitlab CircleCi
4.19.63 : Gitlab CircleCi
5.4.30: Gitlab CircleCi

relevant modules changes to make those builds:

diff --git a/modules/linux b/modules/linux
index f881793..f90a1f1 100644
--- a/modules/linux
+++ b/modules/linux
@@ -1,6 +1,6 @@
 modules-y += linux
 
-linux_version := 4.14.62
+linux_version := 5.4.30
 linux_base_dir := linux-$(linux_version)
 
 # TODO: fixup the patch process
@@ -13,12 +13,15 @@ linux_kconfig := $(or $(CONFIG_LINUX_CONFIG),config/linux.config)
 linux_dir := $(linux_base_dir)/$(notdir $(basename $(linux_kconfig)))
 
 linux_tar := linux-$(linux_version).tar.xz
-linux_url := https://cdn.kernel.org/pub/linux/kernel/v4.x/$(linux_tar)
+#linux_url := https://cdn.kernel.org/pub/linux/kernel/v4.x/$(linux_tar)
+linux_url := https://cdn.kernel.org/pub/linux/kernel/v5.x/$(linux_tar)
 
 linux-4.9.38_hash := 76d789d87dd51d2fd58c095727171984fa4a992f5e25b9e3eb1e5fd5cd129074
 linux-4.9.80_hash := 9e2e83ccc0afc3f23340ed5e58a35d8c6300a7c58aa98ca913848de41226477b
 linux-4.14.62_hash := 51ca4d7e8ee156dc0f19bc7768915cfae41dbb0b4f251e4fa8b178c5674c22ab
-
+linux-4.19.63_hash := 75988760b931864b46292dcfad1dd54b3f4da10168041f48ca6d7f6dd4e5d25d
+linux-4.19.114_hash := 1e40a0dc6afc95a259f97b80d5f5ef8f89e2ee49e993ba6844e2bc55de361f0e
+linux-5.4.30_hash := 11dd78f701bce619d90d3b2ee597601716c48087e159c890c1decd7b90349def
 linux_hash := $(linux-$(linux_version)_hash)
 
 # Ensure that touching the config file will force a reconfig/rebuild
@@ -135,10 +151,17 @@ $(module_initrd_lib_dir)/$(notdir $1): $(build)/$(linux_dir)/$1
 	$(call do,INSTALL-MODULE,$1, \
 		$(CROSS)strip \
 			--preserve-dates \
-			--strip-debug \
 			-o "$$@" \
 			"$$<" \
 	)
+#$(module_initrd_lib_dir)/$(notdir $1): $(build)/$(linux_dir)/$1
+#	$(call do,INSTALL-MODULE,$1, \
+#		$(CROSS)strip \
+#			--preserve-dates \
+#			--strip-debug \
+#			-o "$$@" \
+#			"$$<" \
+#	)
 endef
 
 $(call map,linux_module,$(linux_modules-y))

Relevant qemu-coreboot board config change:

diff --git a/boards/qemu-coreboot/qemu-coreboot.config b/boards/qemu-coreboot/qemu-coreboot.config
index aeb57c7..a16256b 100644
--- a/boards/qemu-coreboot/qemu-coreboot.config
+++ b/boards/qemu-coreboot/qemu-coreboot.config
@@ -39,6 +39,8 @@ CONFIG_LINUX_AHCI=y
 CONFIG_LINUX_USB=y
 CONFIG_LINUX_E1000=y
 
+export CONFIG_BOOT_KERNEL_ADD="debug"
+
 #Uncomment only one BOOTSCRIPT:
 #Whiptail-based init (text-based or FBWhiptail)
 #export CONFIG_BOOTSCRIPT=/bin/gui-init

Else, let's remember that those linux and coreboot patches are applied prior of compilation.

To debug with QEMU

To debug, download artifact, extract, and run qemu against rom per board instruction:

qemu-system-x86_64 \
		--machine q35 \
		--serial /dev/tty \
		--bios /path/to/downloaded/artifact/coreboot.rom \
	; stty sane

From qemu Heads,go to recovery shell:

insmod /lib/modules/e1000.ko
dmesg

no eth0

Edit: Let's also remember that migrating from musl-cross to musl-cross-make seems responsible for :
#665
#571 (#571 (comment))
(Here is the version of cross-musl-make used under Heads. I tried to build with latest musl-cross-make, removing packed warning as error with same result.

As far as Heads code change, neither coreboot nor linux code changed but to fit musl-cross-make changes from this commit up to now. The building toolset changed from musl-cross to musl-croos-pin to musl-cross-make.

@paulmenzel @MrChromebox @Jan32 @kylerankin @osresearch @flammit : any help and insight welcome. This behavior is observable on qemu-coreboot and on x230 for what I can tell.

Edit: generic build recipes here:
CircleCI Gitlab

@orangecms
Copy link

@tlaurion
Copy link
Collaborator Author

tlaurion commented Apr 9, 2020

@orangecms: this is to replicate a problem that is occuring on real hardware: the network devices (covered by e1000e and e1000 drivers) are resulting in probing error. Not sure how this would resolve both qemu and hardware seen error from heads latest commit.

@tlaurion
Copy link
Collaborator Author

Complementary image:

NoJoy

@tlaurion
Copy link
Collaborator Author

tlaurion commented Apr 13, 2020

Have you tried this?

https://github.com/orangecms/webboot/blob/boot-via-qemu/run-webboot.sh#L12

I infirm the problem presence under qemu image as per @orangecms advice:
-netdev user,id=u1 -device e1000,netdev=u1 permits the device to be properly detected under qemu by mapping it to host device. #516

@tlaurion
Copy link
Collaborator Author

tlaurion commented Apr 13, 2020

Complementary image:

NoJoy

@osresearch @orangecms @paulmenzel :
Same kernel, same coreboot. Different results on hardware then on qemu.
The x230 is having that error where probing the ethernet card (while insmoding).
For info, the last time I was able to test network was on musl-cross (as opposed to musl-cross-make), where neither coreboot, patches applied nor kernel used changed.

Any insight welcome....
Artifacts for x230 resplications here

@tlaurion tlaurion changed the title e1000* not detecting network card since musl-cross-make switch? e1000e: probe of 0000:00:19:0 failed with error -3 on x230 Apr 16, 2020
@tlaurion
Copy link
Collaborator Author

tlaurion commented Apr 21, 2020

@tlaurion
Copy link
Collaborator Author

@paulmenzel @osresearch

Here are the logs from cbmem, lspci and dmesg from modified master CIs (x230-debug) branch to have enough space to include qemu-coreboot's debug options inside of x230 board. Artifact

Same result:

@tlaurion
Copy link
Collaborator Author

tlaurion commented Apr 21, 2020

@paulmenzel @osresearch

Here are the logs from cbmem, lspci and dmesg from modified master CIs (x230-debug) branch to have enough space to include qemu-coreboot's debug options inside of x230 board. Artifact

Same result:

x230-debug-full.cbmem_console.txt
x230-debug-full.dmesg.txt
x230-debug-full.lspci.txt

Edit: Debug symbols are striped here

@tlaurion
Copy link
Collaborator Author

Getting my head wrapped around dynamic-debug....

@tlaurion
Copy link
Collaborator Author

Attempts happening here

@tlaurion
Copy link
Collaborator Author

tlaurion commented Apr 23, 2020

@paulmenzel Ok. We now have a working x230-debug board

Here the interesting output full files:
x230-debugfs-cbmem_console.txt
x230-debugfs-dmesg.txt
x230-debugfs-dyndebug_output.txt

dmesg:

[ 6976.508301] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[ 6976.509987] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 6976.511678] bus: 'pci': add driver e1000e
[ 6976.511706] bus: 'pci': driver_probe_device: matched device 0000:00:19.0 with driver e1000e
[ 6976.511709] bus: 'pci': really_probe: probing driver e1000e with device 0000:00:19.0
[ 6976.511824] e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[ 6976.572225] e1000e: probe of 0000:00:19.0 failed with error -3

dyndebug trace:


drivers/net/ethernet/intel/e1000e/82571.c:1673 [e1000e]e1000_valid_led_default_82571 =_ "NVM Read Error\012"
drivers/net/ethernet/intel/e1000e/82571.c:1651 [e1000e]e1000_check_for_serdes_link_82571 =_ "ANYSTATE  -> AN_PROG\012"
drivers/net/ethernet/intel/e1000e/82571.c:1639 [e1000e]e1000_check_for_serdes_link_82571 =_ "ANYSTATE  -> DOWN\012"
drivers/net/ethernet/intel/e1000e/82571.c:1622 [e1000e]e1000_check_for_serdes_link_82571 =_ "ANYSTATE  -> DOWN\012"
drivers/net/ethernet/intel/e1000e/82571.c:1615 [e1000e]e1000_check_for_serdes_link_82571 =_ "DOWN      -> AN_PROG\012"
drivers/net/ethernet/intel/e1000e/82571.c:1600 [e1000e]e1000_check_for_serdes_link_82571 =_ "AN_PROG   -> FORCED_UP\012"
drivers/net/ethernet/intel/e1000e/82571.c:1594 [e1000e]e1000_check_for_serdes_link_82571 =_ "Error config flow control\012"
drivers/net/ethernet/intel/e1000e/82571.c:1580 [e1000e]e1000_check_for_serdes_link_82571 =_ "AN_PROG   -> DOWN\012"
drivers/net/ethernet/intel/e1000e/82571.c:1574 [e1000e]e1000_check_for_serdes_link_82571 =_ "AN_PROG   -> AN_UP\012"
drivers/net/ethernet/intel/e1000e/82571.c:1559 [e1000e]e1000_check_for_serdes_link_82571 =_ "FORCED_UP -> AN_PROG\012"
drivers/net/ethernet/intel/e1000e/82571.c:1540 [e1000e]e1000_check_for_serdes_link_82571 =_ "AN_UP     -> AN_PROG\012"
drivers/net/ethernet/intel/e1000e/82571.c:1111 [e1000e]e1000_init_hw_82571 =_ "Zeroing the MTA\012"
drivers/net/ethernet/intel/e1000e/82571.c:1098 [e1000e]e1000_init_hw_82571 =_ "Initializing the IEEE VLAN\012"
drivers/net/ethernet/intel/e1000e/82571.c:1095 [e1000e]e1000_init_hw_82571 =_ "Error initializing identification LED\012"
drivers/net/ethernet/intel/e1000e/82571.c:999 [e1000e]e1000_reset_hw_82571 =_ "Issuing a global reset to MAC\012"
drivers/net/ethernet/intel/e1000e/82571.c:971 [e1000e]e1000_reset_hw_82571 =_ "Masking off all interrupts\012"
drivers/net/ethernet/intel/e1000e/82571.c:969 [e1000e]e1000_reset_hw_82571 =_ "PCI-E Master disable polling has failed.\012"
drivers/net/ethernet/intel/e1000e/82571.c:875 [e1000e]e1000_get_cfg_done_82571 =_ "MNG configuration cycle has not completed.\012"
drivers/net/ethernet/intel/e1000e/82571.c:835 [e1000e]e1000_write_nvm_eewr_82571 =_ "nvm parameter(s) out of bounds\012"
drivers/net/ethernet/intel/e1000e/82571.c:548 [e1000e]e1000_get_hw_semaphore_82573 =_ "Driver can't access the PHY\012"
drivers/net/ethernet/intel/e1000e/82571.c:498 [e1000e]e1000_get_hw_semaphore_82571 =_ "Driver can't access the NVM\012"
drivers/net/ethernet/intel/e1000e/82571.c:480 [e1000e]e1000_get_hw_semaphore_82571 =_ "Driver can't access device - SMBI bit is set.\012"
drivers/net/ethernet/intel/e1000e/82571.c:320 [e1000e]e1000_init_mac_params_82571 =_ "Please update your 82571 Bootagent\012"
drivers/net/ethernet/intel/e1000e/82571.c:129 [e1000e]e1000_init_phy_params_82571 =_ "PHY ID unknown: type = 0x%08x\012"
drivers/net/ethernet/intel/e1000e/82571.c:103 [e1000e]e1000_init_phy_params_82571 =_ "Error getting PHY ID\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:5660 [e1000e]e1000_get_cfg_done_ich8lan =_ "EEPROM not present\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:5649 [e1000e]e1000_get_cfg_done_ich8lan =_ "PHY Reset Asserted not set - needs delay\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:5639 [e1000e]e1000_get_cfg_done_ich8lan =_ "Auto Read Done did not complete\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:5474 [e1000e]e1000_resume_workarounds_pchlan =_ "Error %d in resume workarounds\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:5444 [e1000e]e1000_resume_workarounds_pchlan =_ "Failed to setup iRST\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:5430 [e1000e]e1000_resume_workarounds_pchlan =_ "Failed to init PHY flow ret_val=%d\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:5194 [e1000e]e1000e_set_kmrn_lock_loss_workaround_ich8lan =_ "Workaround applies to ICH8 only.\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:4954 [e1000e]e1000_setup_link_ich8lan =_ "After fix-ups FlowControl is now = %x\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:4786 [e1000e]e1000_init_hw_ich8lan =_ "Zeroing the MTA\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:4780 [e1000e]e1000_init_hw_ich8lan =_ "Error initializing identification LED\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:4712 [e1000e]e1000_reset_hw_ich8lan =_ "Issuing a global reset to ich8lan\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:4662 [e1000e]e1000_reset_hw_ich8lan =_ "Masking off all interrupts\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:4660 [e1000e]e1000_reset_hw_ich8lan =_ "PCI-E Master disable polling has failed.\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:4534 [e1000e]e1000_valid_led_default_ich8lan =_ "NVM Read Error\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:4395 [e1000e]e1000_retry_write_flash_byte_ich8lan =_ "Retrying Byte %2.2X at offset %u\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:4363 [e1000e]e1000_retry_write_flash_dword_ich8lan =_ "Retrying Byte %8.8X at offset %u\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:4317 [e1000e]e1000_write_flash_data32_ich8lan =_ "Timeout error - flash cycle did not complete.\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:4233 [e1000e]e1000_write_flash_data_ich8lan =_ "Timeout error - flash cycle did not complete.\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:4054 [e1000e]e1000_update_nvm_checksum_ich8lan =_ "NVM update error: %d\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:4004 [e1000e]e1000_update_nvm_checksum_ich8lan =_ "Flash commit failed.\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3942 [e1000e]e1000_update_nvm_checksum_ich8lan =_ "Could not detect valid bank, assuming bank 0\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3903 [e1000e]e1000_update_nvm_checksum_spt =_ "NVM update error: %d\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3840 [e1000e]e1000_update_nvm_checksum_spt =_ "Flash commit failed.\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3774 [e1000e]e1000_update_nvm_checksum_spt =_ "Could not detect valid bank, assuming bank 0\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3724 [e1000e]e1000_write_nvm_ich8lan =_ "nvm parameter(s) out of bounds\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3697 [e1000e]e1000_read_flash_data32_ich8lan =_ "Timeout error - flash cycle did not complete.\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3622 [e1000e]e1000_read_flash_data_ich8lan =_ "Timeout error - flash cycle did not complete.\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3444 [e1000e]e1000_flash_cycle_init_ich8lan =_ "Flash controller busy, cannot get access\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3388 [e1000e]e1000_flash_cycle_init_ich8lan =_ "Flash descriptor invalid.  SW Sequencing must be used.\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3367 [e1000e]e1000_read_nvm_ich8lan =_ "NVM read error: %d\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3342 [e1000e]e1000_read_nvm_ich8lan =_ "Could not detect valid bank, assuming bank 0\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3333 [e1000e]e1000_read_nvm_ich8lan =_ "nvm parameter(s) out of bounds\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3307 [e1000e]e1000_read_nvm_spt =_ "NVM read error: %d\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3251 [e1000e]e1000_read_nvm_spt =_ "Could not detect valid bank, assuming bank 0\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3242 [e1000e]e1000_read_nvm_spt =_ "nvm parameter(s) out of bounds\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3214 [e1000e]e1000_valid_nvm_bank_detect_ich8lan =_ "ERROR: No valid NVM bank present\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3185 [e1000e]e1000_valid_nvm_bank_detect_ich8lan =_ "Unable to determine valid NVM bank via EEC - reading flash signature\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:3171 [e1000e]e1000_valid_nvm_bank_detect_ich8lan =_ "ERROR: No valid NVM bank present\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:2820 [e1000e]e1000_lan_init_done_ich8lan =_ "LAN_INIT_DONE not set, increase timeout\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:2060 [e1000e]e1000_write_smbus_addr =_ "Unsupported SMB frequency in PHY\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:2003 [e1000e]e1000_rar_set_pch_lpt =_ "Failed to write receive address at index %d\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1893 [e1000e]e1000_rar_set_pch2lan =_ "Failed to write receive address at index %d\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1889 [e1000e]e1000_rar_set_pch2lan =_ "SHRA[%d] might be locked by ME - FWSM=0x%8.8x\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1789 [e1000e]e1000_release_swflag_ich8lan =_ "Semaphore unexpectedly released by sw/fw/hw\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1758 [e1000e]e1000_acquire_swflag_ich8lan =_ "Failed to acquire the semaphore, FW or HW has it: FWSM=0x%8.8x EXTCNF_CTRL=0x%8.8x)\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1737 [e1000e]e1000_acquire_swflag_ich8lan =_ "SW has already locked the resource.\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1723 [e1000e]e1000_acquire_swflag_ich8lan =_ "contention for Phy access\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1620 [e1000e]e1000_check_for_copper_link_ich8lan =_ "Error configuring flow control\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1356 [e1000e]e1000_disable_ulp_lpt_lp =_ "Error in ULP disable flow: %d\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1267 [e1000e]e1000_disable_ulp_lpt_lp =_ "ULP_CONFIG_DONE cleared after %dmsec\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1212 [e1000e]e1000_enable_ulp_lpt_lp =_ "Error in ULP enable flow: %d\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1130 [e1000e]e1000_enable_ulp_lpt_lp =_ "CABLE_DISCONNECTED %s set after %dmsec\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1057 [e1000e]e1000_platform_pm_pch_lpt =_ "Invalid LTR latency scale %d\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1032 [e1000e]e1000_platform_pm_pch_lpt =_ "Speed not set.\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:1026 [e1000e]e1000_platform_pm_pch_lpt =_ "max_frame_size not set.\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:630 [e1000e]e1000_init_nvm_params_ich8lan =_ "ERROR: Flash registers not mapped\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:544 [e1000e]e1000_init_phy_params_ich8lan =_ "Cannot determine PHY addr. Erroring out\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:365 [e1000e]e1000_init_phy_workarounds_pchlan =_ "Required LANPHYPC toggle blocked by ME\012"
drivers/net/ethernet/intel/e1000e/ich8lan.c:325 [e1000e]e1000_init_phy_workarounds_pchlan =_ "Failed to initialize PHY flow\012"
drivers/net/ethernet/intel/e1000e/80003es2lan.c:947 [e1000e]e1000_copper_link_setup_gg82563_80003es2lan =_ "Error Resetting the PHY\012"
drivers/net/ethernet/intel/e1000e/80003es2lan.c:765 [e1000e]e1000_init_hw_80003es2lan =_ "Zeroing the MTA\012"
drivers/net/ethernet/intel/e1000e/80003es2lan.c:758 [e1000e]e1000_init_hw_80003es2lan =_ "Initializing the IEEE VLAN\012"
drivers/net/ethernet/intel/e1000e/80003es2lan.c:755 [e1000e]e1000_init_hw_80003es2lan =_ "Error initializing identification LED\012"
drivers/net/ethernet/intel/e1000e/80003es2lan.c:709 [e1000e]e1000_reset_hw_80003es2lan =_ "Issuing a global reset to MAC\012"
drivers/net/ethernet/intel/e1000e/80003es2lan.c:694 [e1000e]e1000_reset_hw_80003es2lan =_ "Masking off all interrupts\012"
drivers/net/ethernet/intel/e1000e/80003es2lan.c:692 [e1000e]e1000_reset_hw_80003es2lan =_ "PCI-E Master disable polling has failed.\012"
drivers/net/ethernet/intel/e1000e/80003es2lan.c:575 [e1000e]e1000_phy_force_speed_duplex_80003es2lan =_ "Waiting for forced speed/duplex link on GG82563 phy.\012"
drivers/net/ethernet/intel/e1000e/80003es2lan.c:557 [e1000e]e1000_phy_force_speed_duplex_80003es2lan =_ "GG82563 PSCR: %X\012"
drivers/net/ethernet/intel/e1000e/80003es2lan.c:525 [e1000e]e1000_get_cfg_done_80003es2lan =_ "MNG configuration cycle has not completed.\012"
drivers/net/ethernet/intel/e1000e/80003es2lan.c:316 [e1000e]e1000_acquire_swfw_sync_80003es2lan =_ "Driver can't access resource, SW_FW_SYNC timeout.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1781 [e1000e]e1000e_update_adaptive =_ "Not in Adaptive IFS mode!\012"
drivers/net/ethernet/intel/e1000e/mac.c:1755 [e1000e]e1000e_reset_adaptive =_ "Not in Adaptive IFS mode!\012"
drivers/net/ethernet/intel/e1000e/mac.c:1737 [e1000e]e1000e_disable_pcie_master =_ "Master requests are pending.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1474 [e1000e]e1000e_valid_led_default =_ "NVM Read Error\012"
drivers/net/ethernet/intel/e1000e/mac.c:1453 [e1000e]e1000e_get_auto_rd_done =_ "Auto read by HW from NVM has not completed.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1413 [e1000e]e1000e_get_hw_semaphore =_ "Driver can't access the NVM\012"
drivers/net/ethernet/intel/e1000e/mac.c:1394 [e1000e]e1000e_get_hw_semaphore =_ "Driver can't access device - SMBI bit is set.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1348 [e1000e]e1000e_get_speed_and_duplex_copper =_ "%u Mbps, %s Duplex\012"
drivers/net/ethernet/intel/e1000e/mac.c:1311 [e1000e]e1000e_config_fc_after_link_up =_ "Error forcing flow control settings\012"
drivers/net/ethernet/intel/e1000e/mac.c:1299 [e1000e]e1000e_config_fc_after_link_up =_ "Flow Control = NONE.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1293 [e1000e]e1000e_config_fc_after_link_up =_ "Flow Control = Rx PAUSE frames only.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1279 [e1000e]e1000e_config_fc_after_link_up =_ "Flow Control = Tx PAUSE frames only.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1264 [e1000e]e1000e_config_fc_after_link_up =_ "Flow Control = Rx PAUSE frames only.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1261 [e1000e]e1000e_config_fc_after_link_up =_ "Flow Control = FULL.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1205 [e1000e]e1000e_config_fc_after_link_up =_ "PCS Auto Neg has not completed.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1187 [e1000e]e1000e_config_fc_after_link_up =_ "Error forcing flow control settings\012"
drivers/net/ethernet/intel/e1000e/mac.c:1175 [e1000e]e1000e_config_fc_after_link_up =_ "Error getting link speed and duplex\012"
drivers/net/ethernet/intel/e1000e/mac.c:1166 [e1000e]e1000e_config_fc_after_link_up =_ "Flow Control = NONE.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1160 [e1000e]e1000e_config_fc_after_link_up =_ "Flow Control = Rx PAUSE frames only.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1146 [e1000e]e1000e_config_fc_after_link_up =_ "Flow Control = Tx PAUSE frames only.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1131 [e1000e]e1000e_config_fc_after_link_up =_ "Flow Control = Rx PAUSE frames only.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1128 [e1000e]e1000e_config_fc_after_link_up =_ "Flow Control = FULL.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1068 [e1000e]e1000e_config_fc_after_link_up =_ "Copper PHY and Auto Neg has not completed.\012"
drivers/net/ethernet/intel/e1000e/mac.c:1046 [e1000e]e1000e_config_fc_after_link_up =_ "Error forcing flow control settings\012"
drivers/net/ethernet/intel/e1000e/mac.c:1005 [e1000e]e1000e_force_mac_fc =_ "Flow control param set incorrectly\012"
drivers/net/ethernet/intel/e1000e/mac.c:987 [e1000e]e1000e_force_mac_fc =_ "hw->fc.current_mode = %u\012"
drivers/net/ethernet/intel/e1000e/mac.c:893 [e1000e]e1000e_setup_fiber_serdes_link =_ "No signal detected\012"
drivers/net/ethernet/intel/e1000e/mac.c:879 [e1000e]e1000e_setup_fiber_serdes_link =_ "Auto-negotiation enabled\012"
drivers/net/ethernet/intel/e1000e/mac.c:844 [e1000e]e1000_poll_fiber_serdes_link_generic =_ "Valid Link Found\012"
drivers/net/ethernet/intel/e1000e/mac.c:838 [e1000e]e1000_poll_fiber_serdes_link_generic =_ "Error while checking for link\012"
drivers/net/ethernet/intel/e1000e/mac.c:829 [e1000e]e1000_poll_fiber_serdes_link_generic =_ "Never got a valid link from auto-neg!!!\012"
drivers/net/ethernet/intel/e1000e/mac.c:793 [e1000e]e1000_commit_fc_settings_generic =_ "Flow control param set incorrectly\012"
drivers/net/ethernet/intel/e1000e/mac.c:727 [e1000e]e1000e_setup_link_generic =_ "Initializing the Flow Control address, type and timer regs\012"
drivers/net/ethernet/intel/e1000e/mac.c:715 [e1000e]e1000e_setup_link_generic =_ "After fix-ups FlowControl is now = %x\012"
drivers/net/ethernet/intel/e1000e/mac.c:667 [e1000e]e1000_set_default_fc_generic =_ "NVM Read Error\012"
drivers/net/ethernet/intel/e1000e/mac.c:637 [e1000e]e1000e_check_for_serdes_link =_ "SERDES: Link down - autoneg failed\012"
drivers/net/ethernet/intel/e1000e/mac.c:633 [e1000e]e1000e_check_for_serdes_link =_ "SERDES: Link down - no sync.\012"
drivers/net/ethernet/intel/e1000e/mac.c:629 [e1000e]e1000e_check_for_serdes_link =_ "SERDES: Link down - invalid codewords detected in autoneg.\012"
drivers/net/ethernet/intel/e1000e/mac.c:626 [e1000e]e1000e_check_for_serdes_link =_ "SERDES: Link up - autoneg completed successfully.\012"
drivers/net/ethernet/intel/e1000e/mac.c:613 [e1000e]e1000e_check_for_serdes_link =_ "SERDES: Link down - force failed.\012"
drivers/net/ethernet/intel/e1000e/mac.c:609 [e1000e]e1000e_check_for_serdes_link =_ "SERDES: Link up - forced.\012"
drivers/net/ethernet/intel/e1000e/mac.c:593 [e1000e]e1000e_check_for_serdes_link =_ "Rx'ing /C/, enable AutoNeg and stop forcing link.\012"
drivers/net/ethernet/intel/e1000e/mac.c:584 [e1000e]e1000e_check_for_serdes_link =_ "Error configuring flow control\012"
drivers/net/ethernet/intel/e1000e/mac.c:571 [e1000e]e1000e_check_for_serdes_link =_ "NOT Rx'ing /C/, disable AutoNeg and force link.\012"
drivers/net/ethernet/intel/e1000e/mac.c:530 [e1000e]e1000e_check_for_fiber_link =_ "Rx'ing /C/, enable AutoNeg and stop forcing link.\012"
drivers/net/ethernet/intel/e1000e/mac.c:521 [e1000e]e1000e_check_for_fiber_link =_ "Error configuring flow control\012"
drivers/net/ethernet/intel/e1000e/mac.c:508 [e1000e]e1000e_check_for_fiber_link =_ "NOT Rx'ing /C/, disable AutoNeg and force link.\012"
drivers/net/ethernet/intel/e1000e/mac.c:468 [e1000e]e1000e_check_for_copper_link =_ "Error configuring flow control\012"
drivers/net/ethernet/intel/e1000e/mac.c:201 [e1000e]e1000_check_alt_mac_addr_generic =_ "Ignoring Alternate Mac Address with MC bit set\012"
drivers/net/ethernet/intel/e1000e/mac.c:191 [e1000e]e1000_check_alt_mac_addr_generic =_ "NVM Read Error\012"
drivers/net/ethernet/intel/e1000e/mac.c:176 [e1000e]e1000_check_alt_mac_addr_generic =_ "NVM Read Error\012"
drivers/net/ethernet/intel/e1000e/mac.c:141 [e1000e]e1000e_init_rx_addrs =_ "Clearing RAR[1-%u]\012"
drivers/net/ethernet/intel/e1000e/mac.c:136 [e1000e]e1000e_init_rx_addrs =_ "Programming MAC Address into RAR[0]\012"
drivers/net/ethernet/intel/e1000e/manage.c:81 [e1000e]e1000_mng_enable_host_if =_ "Previous command timeout failed.\012"
drivers/net/ethernet/intel/e1000e/manage.c:69 [e1000e]e1000_mng_enable_host_if =_ "E1000_HOST_EN bit disabled.\012"
drivers/net/ethernet/intel/e1000e/manage.c:62 [e1000e]e1000_mng_enable_host_if =_ "ARC subsystem not valid.\012"
drivers/net/ethernet/intel/e1000e/nvm.c:612 [e1000e]e1000e_update_nvm_checksum_generic =_ "NVM Write Error while updating checksum.\012"
drivers/net/ethernet/intel/e1000e/nvm.c:604 [e1000e]e1000e_update_nvm_checksum_generic =_ "NVM Read Error while updating checksum.\012"
drivers/net/ethernet/intel/e1000e/nvm.c:580 [e1000e]e1000e_validate_nvm_checksum_generic =_ "NVM Checksum Invalid\012"
drivers/net/ethernet/intel/e1000e/nvm.c:573 [e1000e]e1000e_validate_nvm_checksum_generic =_ "NVM Read Error\012"
drivers/net/ethernet/intel/e1000e/nvm.c:517 [e1000e]e1000_read_pba_string_generic =_ "NVM Read Error\012"
drivers/net/ethernet/intel/e1000e/nvm.c:506 [e1000e]e1000_read_pba_string_generic =_ "PBA string buffer too small\012"
drivers/net/ethernet/intel/e1000e/nvm.c:501 [e1000e]e1000_read_pba_string_generic =_ "NVM PBA number section invalid length\012"
drivers/net/ethernet/intel/e1000e/nvm.c:496 [e1000e]e1000_read_pba_string_generic =_ "NVM Read Error\012"
drivers/net/ethernet/intel/e1000e/nvm.c:464 [e1000e]e1000_read_pba_string_generic =_ "PBA string buffer too small\012"
drivers/net/ethernet/intel/e1000e/nvm.c:460 [e1000e]e1000_read_pba_string_generic =_ "NVM PBA number is not stored as string\012"
drivers/net/ethernet/intel/e1000e/nvm.c:451 [e1000e]e1000_read_pba_string_generic =_ "NVM Read Error\012"
drivers/net/ethernet/intel/e1000e/nvm.c:445 [e1000e]e1000_read_pba_string_generic =_ "NVM Read Error\012"
drivers/net/ethernet/intel/e1000e/nvm.c:439 [e1000e]e1000_read_pba_string_generic =_ "PBA string buffer was null\012"
drivers/net/ethernet/intel/e1000e/nvm.c:364 [e1000e]e1000e_write_nvm_spi =_ "nvm parameter(s) out of bounds\012"
drivers/net/ethernet/intel/e1000e/nvm.c:331 [e1000e]e1000e_read_nvm_eerd =_ "NVM read error: %d\012"
drivers/net/ethernet/intel/e1000e/nvm.c:320 [e1000e]e1000e_read_nvm_eerd =_ "nvm parameter(s) out of bounds\012"
drivers/net/ethernet/intel/e1000e/nvm.c:292 [e1000e]e1000_ready_nvm_eeprom =_ "SPI NVM Status error\012"
drivers/net/ethernet/intel/e1000e/nvm.c:187 [e1000e]e1000e_acquire_nvm =_ "Could not acquire NVM grant\012"
drivers/net/ethernet/intel/e1000e/phy.c:3172 [e1000e]e1000_get_phy_info_82577 =_ "Phy info is only valid if link is up\012"
drivers/net/ethernet/intel/e1000e/phy.c:3141 [e1000e]e1000_phy_force_speed_duplex_82577 =_ "Link taking longer than expected.\012"
drivers/net/ethernet/intel/e1000e/phy.c:3133 [e1000e]e1000_phy_force_speed_duplex_82577 =_ "Waiting for forced speed/duplex link on 82577 phy\012"
drivers/net/ethernet/intel/e1000e/phy.c:3030 [e1000e]e1000_access_phy_debug_regs_hv =_ "Could not access the Data port register\012"
drivers/net/ethernet/intel/e1000e/phy.c:3019 [e1000e]e1000_access_phy_debug_regs_hv =_ "Could not write the Address Offset port register\012"
drivers/net/ethernet/intel/e1000e/phy.c:2921 [e1000e]__e1000_write_phy_reg_hv =_ "writing PHY page %d (or 0x%x shifted) reg 0x%x\012"
drivers/net/ethernet/intel/e1000e/phy.c:2798 [e1000e]__e1000_read_phy_reg_hv =_ "reading PHY page %d (or 0x%x shifted) reg 0x%x\012"
drivers/net/ethernet/intel/e1000e/phy.c:2696 [e1000e]e1000_access_phy_wakeup_reg_bm =_ "Could not access PHY reg %d.%d\012"
drivers/net/ethernet/intel/e1000e/phy.c:2681 [e1000e]e1000_access_phy_wakeup_reg_bm =_ "Could not write address opcode to page %d\012"
drivers/net/ethernet/intel/e1000e/phy.c:2676 [e1000e]e1000_access_phy_wakeup_reg_bm =_ "Accessing PHY page %d reg 0x%x\012"
drivers/net/ethernet/intel/e1000e/phy.c:2671 [e1000e]e1000_access_phy_wakeup_reg_bm =_ "Could not enable PHY wakeup reg access\012"
drivers/net/ethernet/intel/e1000e/phy.c:2665 [e1000e]e1000_access_phy_wakeup_reg_bm =_ "Attempting to access page %d while gig enabled.\012"
drivers/net/ethernet/intel/e1000e/phy.c:2623 [e1000e]e1000_disable_phy_wakeup_reg_access_bm =_ "Could not restore PHY register %d.%d\012"
drivers/net/ethernet/intel/e1000e/phy.c:2615 [e1000e]e1000_disable_phy_wakeup_reg_access_bm =_ "Could not set Port Control page\012"
drivers/net/ethernet/intel/e1000e/phy.c:2587 [e1000e]e1000_enable_phy_wakeup_reg_access_bm =_ "Could not write PHY register %d.%d\012"
drivers/net/ethernet/intel/e1000e/phy.c:2573 [e1000e]e1000_enable_phy_wakeup_reg_access_bm =_ "Could not read PHY register %d.%d\012"
drivers/net/ethernet/intel/e1000e/phy.c:2566 [e1000e]e1000_enable_phy_wakeup_reg_access_bm =_ "Could not set Port Control page\012"
drivers/net/ethernet/intel/e1000e/phy.c:2162 [e1000e]e1000e_phy_init_script_igp3 =_ "Running IGP 3 PHY init script\012"
drivers/net/ethernet/intel/e1000e/phy.c:2039 [e1000e]e1000_get_phy_info_ife =_ "Phy info is only valid if link is up\012"
drivers/net/ethernet/intel/e1000e/phy.c:1981 [e1000e]e1000e_get_phy_info_igp =_ "Phy info is only valid if link is up\012"
drivers/net/ethernet/intel/e1000e/phy.c:1915 [e1000e]e1000e_get_phy_info_m88 =_ "Phy info is only valid if link is up\012"
drivers/net/ethernet/intel/e1000e/phy.c:1906 [e1000e]e1000e_get_phy_info_m88 =_ "Phy info is only valid for copper media\012"
drivers/net/ethernet/intel/e1000e/phy.c:1475 [e1000e]e1000e_phy_force_speed_duplex_setup =_ "Forcing 10mb\012"
drivers/net/ethernet/intel/e1000e/phy.c:1471 [e1000e]e1000e_phy_force_speed_duplex_setup =_ "Forcing 100mb\012"
drivers/net/ethernet/intel/e1000e/phy.c:1463 [e1000e]e1000e_phy_force_speed_duplex_setup =_ "Full Duplex\012"
drivers/net/ethernet/intel/e1000e/phy.c:1459 [e1000e]e1000e_phy_force_speed_duplex_setup =_ "Half Duplex\012"
drivers/net/ethernet/intel/e1000e/phy.c:1412 [e1000e]e1000_phy_force_speed_duplex_ife =_ "Link taking longer than expected.\012"
drivers/net/ethernet/intel/e1000e/phy.c:1404 [e1000e]e1000_phy_force_speed_duplex_ife =_ "Waiting for forced speed/duplex link on IFE phy.\012"
drivers/net/ethernet/intel/e1000e/phy.c:1399 [e1000e]e1000_phy_force_speed_duplex_ife =_ "IFE PMC: %X\012"
drivers/net/ethernet/intel/e1000e/phy.c:1311 [e1000e]e1000e_phy_force_speed_duplex_m88 =_ "Link taking longer than expected.\012"
drivers/net/ethernet/intel/e1000e/phy.c:1302 [e1000e]e1000e_phy_force_speed_duplex_m88 =_ "Waiting for forced speed/duplex link on M88 phy.\012"
drivers/net/ethernet/intel/e1000e/phy.c:1282 [e1000e]e1000e_phy_force_speed_duplex_m88 =_ "M88E1000 PSCR: %X\012"
drivers/net/ethernet/intel/e1000e/phy.c:1243 [e1000e]e1000e_phy_force_speed_duplex_igp =_ "Link taking longer than expected.\012"
drivers/net/ethernet/intel/e1000e/phy.c:1235 [e1000e]e1000e_phy_force_speed_duplex_igp =_ "Waiting for forced speed/duplex link on IGP phy.\012"
drivers/net/ethernet/intel/e1000e/phy.c:1230 [e1000e]e1000e_phy_force_speed_duplex_igp =_ "IGP PSCR: %X\012"
drivers/net/ethernet/intel/e1000e/phy.c:1185 [e1000e]e1000e_setup_copper_link =_ "Unable to establish link!!!\012"
drivers/net/ethernet/intel/e1000e/phy.c:1181 [e1000e]e1000e_setup_copper_link =_ "Valid link established!!!\012"
drivers/net/ethernet/intel/e1000e/phy.c:1167 [e1000e]e1000e_setup_copper_link =_ "Error Forcing Speed and Duplex\012"
drivers/net/ethernet/intel/e1000e/phy.c:1164 [e1000e]e1000e_setup_copper_link =_ "Forcing Speed and Duplex\012"
drivers/net/ethernet/intel/e1000e/phy.c:1129 [e1000e]e1000_copper_link_autoneg =_ "Error while waiting for autoneg to complete\012"
drivers/net/ethernet/intel/e1000e/phy.c:1109 [e1000e]e1000_copper_link_autoneg =_ "Restarting Auto-Neg\012"
drivers/net/ethernet/intel/e1000e/phy.c:1106 [e1000e]e1000_copper_link_autoneg =_ "Error Setting up Auto-Negotiation\012"
drivers/net/ethernet/intel/e1000e/phy.c:1103 [e1000e]e1000_copper_link_autoneg =_ "Reconfiguring auto-neg advertisement params\012"
drivers/net/ethernet/intel/e1000e/phy.c:1069 [e1000e]e1000_phy_setup_autoneg =_ "Auto-Neg Advertising %x\012"
drivers/net/ethernet/intel/e1000e/phy.c:1061 [e1000e]e1000_phy_setup_autoneg =_ "Flow control param set incorrectly\012"
drivers/net/ethernet/intel/e1000e/phy.c:1004 [e1000e]e1000_phy_setup_autoneg =_ "Advertise 1000mb Full duplex\012"
drivers/net/ethernet/intel/e1000e/phy.c:1000 [e1000e]e1000_phy_setup_autoneg =_ "Advertise 1000mb Half duplex request denied!\012"
drivers/net/ethernet/intel/e1000e/phy.c:994 [e1000e]e1000_phy_setup_autoneg =_ "Advertise 100mb Full duplex\012"
drivers/net/ethernet/intel/e1000e/phy.c:988 [e1000e]e1000_phy_setup_autoneg =_ "Advertise 100mb Half duplex\012"
drivers/net/ethernet/intel/e1000e/phy.c:982 [e1000e]e1000_phy_setup_autoneg =_ "Advertise 10mb Full duplex\012"
drivers/net/ethernet/intel/e1000e/phy.c:976 [e1000e]e1000_phy_setup_autoneg =_ "Advertise 10mb Half duplex\012"
drivers/net/ethernet/intel/e1000e/phy.c:972 [e1000e]e1000_phy_setup_autoneg =_ "autoneg_advertised %x\012"
drivers/net/ethernet/intel/e1000e/phy.c:863 [e1000e]e1000e_copper_link_setup_igp =_ "Error Disabling LPLU D0\012"
drivers/net/ethernet/intel/e1000e/phy.c:850 [e1000e]e1000e_copper_link_setup_igp =_ "Error resetting the PHY.\012"
drivers/net/ethernet/intel/e1000e/phy.c:814 [e1000e]e1000e_copper_link_setup_m88 =_ "Error committing the PHY changes\012"
drivers/net/ethernet/intel/e1000e/phy.c:758 [e1000e]e1000e_copper_link_setup_m88 =_ "Error committing the PHY changes\012"
drivers/net/ethernet/intel/e1000e/phy.c:316 [e1000e]e1000_set_page_igp =_ "Setting page 0x%x\012"
drivers/net/ethernet/intel/e1000e/phy.c:241 [e1000e]e1000e_write_phy_reg_mdic =_ "MDI Write offset error - requested %d, returned %d\012"
drivers/net/ethernet/intel/e1000e/phy.c:235 [e1000e]e1000e_write_phy_reg_mdic =_ "MDI Error\012"
drivers/net/ethernet/intel/e1000e/phy.c:231 [e1000e]e1000e_write_phy_reg_mdic =_ "MDI Write did not complete\012"
drivers/net/ethernet/intel/e1000e/phy.c:205 [e1000e]e1000e_write_phy_reg_mdic =_ "PHY Address %d is out of range\012"
drivers/net/ethernet/intel/e1000e/phy.c:177 [e1000e]e1000e_read_phy_reg_mdic =_ "MDI Read offset error - requested %d, returned %d\012"
drivers/net/ethernet/intel/e1000e/phy.c:171 [e1000e]e1000e_read_phy_reg_mdic =_ "MDI Error\012"
drivers/net/ethernet/intel/e1000e/phy.c:167 [e1000e]e1000e_read_phy_reg_mdic =_ "MDI Read did not complete\012"
drivers/net/ethernet/intel/e1000e/phy.c:142 [e1000e]e1000e_read_phy_reg_mdic =_ "PHY Address %d is out of range\012"
drivers/net/ethernet/intel/e1000e/netdev.c:7342 [e1000e]e1000_probe =_ "NVM read error getting EEPROM version: %d\012"
drivers/net/ethernet/intel/e1000e/netdev.c:7319 [e1000e]e1000_probe =_ "NVM read error getting WoL initial values: %d\012"
drivers/net/ethernet/intel/e1000e/netdev.c:5157 [e1000e]e1000e_check_82574_phy_workaround =_ "PHY appears hung - resetting\012"
drivers/net/ethernet/intel/e1000e/netdev.c:4549 [e1000e]e1000_test_msi_interrupt =_ "MSI interrupt test succeeded!\012"
drivers/net/ethernet/intel/e1000e/netdev.c:4481 [e1000e]e1000_intr_msi_test =_ "icr is %08X\012"
drivers/net/ethernet/intel/e1000e/netdev.c:4328 [e1000e]e1000e_down =_ "failed to disable jumbo frame workaround mode\012"
drivers/net/ethernet/intel/e1000e/netdev.c:3068 [e1000e]e1000_setup_rctl =_ "failed to enable|disable jumbo frame workaround mode\012"
drivers/net/ethernet/intel/e1000e/netdev.c:1382 [e1000e]e1000_clean_rx_irq_ps =_ "Last part of the packet spanning multiple descriptors\012"
drivers/net/ethernet/intel/e1000e/netdev.c:1366 [e1000e]e1000_clean_rx_irq_ps =_ "Packet Split buffers didn't pick up the full packet\012"
drivers/net/ethernet/intel/e1000e/netdev.c:1130 [e1000e]e1000_print_hw_hang =_ "false hang detected, ignoring\012"
drivers/net/ethernet/intel/e1000e/netdev.c:985 [e1000e]e1000_clean_rx_irq =_ "Receive packet consumed multiple buffers\012"
drivers/net/ethernet/intel/e1000e/ptp.c:257 [e1000e]e1000e_systim_overflow_work =_ "SYSTIM overflow check at %lld.%09lu\012"

@tlaurion
Copy link
Collaborator Author

Can debug further if needed with some guidance. dynamic_debug doc here

@tlaurion
Copy link
Collaborator Author

@osresearch @orangecms @flammit @paulmenzel

What leads me to think that the problem is linked to ACPI or coreboot being denatured by latest musl-cross-make is that the impact is not just for Heads kernel. When main OS boots, the OS is not able to acquire 00:19 pci device either. Your insights are needed.

@paulmenzel
Copy link
Contributor

I think, musl does not affect the coreboot build, does it? Did you try upstream coreboot? I am not aware of these issues having been reported to https://github.com/merge/skulls/.

@paulmenzel
Copy link
Contributor

The issue title still contains x230. Does it affect QEMU?

@tlaurion
Copy link
Collaborator Author

tlaurion commented Apr 27, 2020

The issue title still contains x230. Does it affect QEMU?

No. This issue is for x230 with requested debug traces.

qemu-coreboot issue was that qemu run command was not binding VM device with host device device. This PR fixing qemu-coreboot with this line.

@tlaurion
Copy link
Collaborator Author

tlaurion commented Apr 27, 2020

I think, musl does not affect the coreboot build, does it? Did you try upstream coreboot? I am not aware of these issues having been reported to https://github.com/merge/skulls/.

@paulmenzel
Skulls is not booting a linux kernel, depends on seabios if I recall well and doesnt kexec a linux kernel.

In Heads present scenario, the problem seems to be (but i'm no expert there) in coreboot making the device available for linux to probe, inside of Heads and in kexec'ed OS booted.

The fact that the kexeced kernel (OS) has the same behavior has to mean that the coreboot/linux traces here have to be in cause, that something is not configured right at the lowest down level. EDIT: gbe is not included in the test branch, which relied on minimized ME and wiping off gbe.

@merge @PatrickRudolph
From here

Extracting blobs is required as it contains the MAC of the GbE.

My current understanding is that gbe blob non being present is the current cause of the probe failing? Would totally make sense.

@tlaurion
Copy link
Collaborator Author

tlaurion commented Apr 28, 2020

@hughsie: Read your blog post. Is there any way to redistribute gbe?

@PatrickRudolph
Copy link
Contributor

Will do some tests using cleared and non existing Gbe in IFD.

@tlaurion
Copy link
Collaborator Author

tlaurion commented May 1, 2020

@paulmenzel :
Update

Change:

[    0.000000] Linux version 4.14.62-heads (linux-x230-debug.config@linuxboot) (gcc version 8.3.0 (GCC)) #0 SMP 1970-00-00
[    0.000000] Command line: intel_iommu=igfx_off debug e1000e.dyndbg=+p loglevel=8

Output:
dmesg_debug_with_e1000e_debugfs_kernel_opt.txt
cbmem_debug_with_e1000e_debugfs_kernel_opt.txt

Next step is to add gbe blob and retest....

@PatrickRudolph
Copy link
Contributor

Added test results here: https://review.coreboot.org/c/coreboot/+/41290
The e1000e returns error -3 if the gbe region was corrupted, for example by writing zeros to it.

@tlaurion
Copy link
Collaborator Author

tlaurion commented May 12, 2020

@PatrickRudolph : or not including it in coreboot blobs results in the same behavior.
Next step is to see if some randomized data can be put on the mac address section of the blob? Or is there a lot of data being different across gbe.bin?

@tlaurion
Copy link
Collaborator Author

tlaurion commented May 12, 2020

@PatrickRudolph :
Based on last commit's working full rom artifact (coreboot.rom) and MAC associated with that binary is actually present at:

user@x230-external-flash:~/heads$ binwalk -R "\xF0\xDE\xF1\xF7\xE4\xAF" blobs/xx30/gbe.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Raw signature (\xF0\xDE\xF1\xF7\xE4\xAF)
4096          0x1000          Raw signature (\xF0\xDE\xF1\xF7\xE4\xAF)

network-recovery-init is fully functional on https://app.circleci.com/pipelines/github/tlaurion/heads?branch=x230-external-flash.

@PatrickRudolph
Copy link
Contributor

I did a quick search and found the gbe area documented for

Intel 6 Series Chipsets

in the datasheet:

Intel® 82579 Gigabit Ethernet PHY

Chapter LAN NVM Format and Contents.

It's using an A/B partition scheme where only 128bytes are checksummed, but way less are actually used.

@tlaurion
Copy link
Collaborator Author

@PatrickRudolph : can we set the mac to 00:00:00:00:00:00 on both partition and change checksum and we are all set?!

@tlaurion
Copy link
Collaborator Author

tlaurion commented Jun 18, 2020

@PatrickRudolph

I did a quick search and found the gbe area documented for

Intel 6 Series Chipsets

in the datasheet:

Intel® 82579 Gigabit Ethernet PHY

Chapter LAN NVM Format and Contents.

It's using an A/B partition scheme where only 128bytes are checksummed, but way less are actually used.

https://notabug.org/libreboot/libreboot/src/master/resources/utilities/ich9deblob/src/ich9gen

@tlaurion
Copy link
Collaborator Author

tlaurion commented Jun 19, 2020

Unfortunately, replacing extracted gbe.bin with generated ifd+gbe from ich9gen, then extracted gbe region inserted in rom under 9f87463 causes a brick just per that commit.

contacted @swiftgeek per e-mail to port work to sandy/ivy.

@tlaurion tlaurion changed the title e1000e: probe of 0000:00:19:0 failed with error -3 on x230 e1000e: probe of 0000:00:19:0 failed with error -3 on x230 (when gbe.bin is removed) Jun 19, 2020
@tlaurion
Copy link
Collaborator Author

tlaurion commented Jun 20, 2020

So, to be able to generate gbe blobs (ich9gen wast obsoleted in favor of bincfg), one would need to adapt this to ICH6 series

@9elements @3mdeb anyone?

@tlaurion
Copy link
Collaborator Author

tlaurion commented Jun 20, 2020

Intel 6 Series Chipsets

pdf here (p.118)

From my understanding, gbe-ich9 .set and .spec files should adapted to ich6 (PHY 82579)?

@tlaurion
Copy link
Collaborator Author

tlaurion commented Jun 20, 2020

@PatrickRudolph @niftygeek @pietrushnic @miczyg1
@pgeorgi @GNUtoo (last two authors of coreboot's bincfg tool)

So in my novice path, to be able to generate a valid gbe.bin to be included under #703, I need to:

@tlaurion
Copy link
Collaborator Author

00:07.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (Lewisville) (rev 04)
	Subsystem: Lenovo Device 21f3
	Physical Slot: 7
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64
	Interrupt: pin ? routed to IRQ 71
	Region 0: Memory at f2020000 (32-bit, non-prefetchable) [size=128K]
	Region 1: Memory at f2076000 (32-bit, non-prefetchable) [size=4K]
	Region 2: I/O ports at c200 [size=32]
	Capabilities: [c8] Power Management version 2
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
	Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee37000  Data: 4300
	Kernel driver in use: e1000e
	Kernel modules: e1000e

@PatrickRudolph
Copy link
Contributor

Yes that's the way to go. Either use bincfg or like coreboot does: convert a hex-dump to binary, apply some bash magic to insert the MAC and then calculate the checksum.

@tlaurion
Copy link
Collaborator Author

tlaurion commented Jun 28, 2020

@PatrickRudolph would that make that binary non legal-issue prone?
Where can I see that hex-dump to binary trick coreboot uses?

@tlaurion
Copy link
Collaborator Author

tlaurion commented Nov 9, 2020

gbe can now be generated from bincfg #796

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants