Bug 272206 - Add support for Intel GMAC Ethernet controller
Summary: Add support for Intel GMAC Ethernet controller
Status: Open
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 13.2-STABLE
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-net (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-06-25 14:45 UTC by dimitrijp
Modified: 2023-06-25 17:04 UTC (History)
0 users

See Also:


Attachments
dmesg (8.44 KB, text/plain)
2023-06-25 14:45 UTC, dimitrijp
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description dimitrijp 2023-06-25 14:45:01 UTC
Created attachment 242989 [details]
dmesg

Hello,

I recently acquired Fitlet3 miniPC from compulab. This is updated version of Fitlet2 using Elkhart Lake Celeron and Atom SoC's.

details here;
http://fit-pc.com/wiki/index.php?title=Fitlet3_Specifications_and_block_diagram

It comes with onboard intel LAN with Marvell 88E1512 PHY for 2 onboard NIC's. Unfortunate its not recognized under freeBSD (tried 13.2 and 14)

Im pretty new to freeBSD so please excuse my lack of knowledge regarding driver support. On linux this is handled by compiling the kernel with;

CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=m
CONFIG_DWMAC_INTEL=m
CONFIG_STMMAC_PCI=m

and utilizing driver;
https://github.com/torvalds/linux/blob/master/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c 

Maybe drivers could be reused?

I'm opening the ticket since I would appreciate the freeBSD support for this device, since its perfect HW for EDGE firewall or gateway.

Thank you for looking into it.

Regards,

Attaching also some outputs from the box itself with FreeBSD 13.2 installed (ignore igb0 and igb1 NIC's since these are on installed extension card)

dmesg output in attachement.

lcpci output  - onboard NIC's identified as:

00:1d.1 Ethernet controller: Intel Corporation Device 4ba1
00:1d.2 Ethernet controller: Intel Corporation Device 4bb1

/////////
00:00.0 Host bridge: Intel Corporation Device 4522
00:02.0 VGA compatible controller: Intel Corporation Elkhart Lake [UHD Graphics Gen11 16EU]
00:08.0 System peripheral: Intel Corporation Elkhart Lake Gaussian and Neural Accelerator
00:11.0 Communication controller: Intel Corporation Device 4b96
00:11.1 Communication controller: Intel Corporation Device 4b97
00:13.0 Serial bus controller: Intel Corporation Device 4b84
00:14.0 USB controller: Intel Corporation Elkhart Lake USB 3.10 XHCI
00:14.2 RAM memory: Intel Corporation Elkhart Lake PMC SRAM
00:15.0 Serial bus controller: Intel Corporation Device 4b78
00:15.2 Serial bus controller: Intel Corporation Device 4b7a
00:15.3 Serial bus controller: Intel Corporation Device 4b7b
00:16.0 Communication controller: Intel Corporation Elkhart Lake Management Engine Interface
00:19.0 Serial bus controller: Intel Corporation Device 4b4b
00:19.2 Communication controller: Intel Corporation Device 4b4d
00:1b.0 Serial bus controller: Intel Corporation Device 4bb9
00:1b.1 Serial bus controller: Intel Corporation Device 4bba
00:1b.6 Serial bus controller: Intel Corporation Device 4bbf
00:1c.0 PCI bridge: Intel Corporation Elkhart Lake PCH PCI Express Root Port #0
00:1c.4 PCI bridge: Intel Corporation Device 4b3c
00:1c.6 PCI bridge: Intel Corporation Elkhart Lake PCH PCI Express Root Port #6
00:1d.0 System peripheral: Intel Corporation Device 4bb3
00:1d.1 Ethernet controller: Intel Corporation Device 4ba1
00:1d.2 Ethernet controller: Intel Corporation Device 4bb1
00:1e.0 Communication controller: Intel Corporation Device 4b28
00:1e.1 Communication controller: Intel Corporation Device 4b29
00:1f.0 ISA bridge: Intel Corporation Elkhart Lake eSPI Controller
00:1f.4 SMBus: Intel Corporation Elkhart Lake SMBus Controller
00:1f.5 Serial bus controller: Intel Corporation Elkhart Lake SPI (Flash) Controller
01:00.0 Non-Volatile memory controller: Sandisk Corp WD Blue SN570 NVMe SSD
02:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection
03:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection
/////////

pciconf output;


///////
hostb0@pci0:0:0:0:      class=0x060000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4522 subvendor=0x8086 subdevice=0x7270
vgapci0@pci0:0:2:0:     class=0x030000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4555 subvendor=0x8086 subdevice=0x7270
none0@pci0:0:8:0:       class=0x088000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4511 subvendor=0x8086 subdevice=0x7270
none1@pci0:0:17:0:      class=0x078008 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b96 subvendor=0x8086 subdevice=0x7270
none2@pci0:0:17:1:      class=0x078009 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b97 subvendor=0x8086 subdevice=0x7270
none3@pci0:0:19:0:      class=0x0c8014 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b84 subvendor=0x8086 subdevice=0x7270
xhci0@pci0:0:20:0:      class=0x0c0330 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b7d subvendor=0x8086 subdevice=0x7270
none4@pci0:0:20:2:      class=0x050000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b7f subvendor=0x8086 subdevice=0x7270
none5@pci0:0:21:0:      class=0x0c8000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b78 subvendor=0x8086 subdevice=0x7270
none6@pci0:0:21:2:      class=0x0c8000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b7a subvendor=0x8086 subdevice=0x7270
none7@pci0:0:21:3:      class=0x0c8000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b7b subvendor=0x8086 subdevice=0x7270
none8@pci0:0:22:0:      class=0x078000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b70 subvendor=0x8086 subdevice=0x7270
none9@pci0:0:25:0:      class=0x0c8000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b4b subvendor=0x8086 subdevice=0x7270
none10@pci0:0:25:2:     class=0x078000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b4d subvendor=0x8086 subdevice=0x7270
none11@pci0:0:27:0:     class=0x0c8000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4bb9 subvendor=0x8086 subdevice=0x7270
none12@pci0:0:27:1:     class=0x0c8001 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4bba subvendor=0x8086 subdevice=0x7270
none13@pci0:0:27:6:     class=0x0c8006 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4bbf subvendor=0x8086 subdevice=0x7270
pcib1@pci0:0:28:0:      class=0x060400 rev=0x11 hdr=0x01 vendor=0x8086 device=0x4b38 subvendor=0x8086 subdevice=0x7270
pcib2@pci0:0:28:4:      class=0x060400 rev=0x11 hdr=0x01 vendor=0x8086 device=0x4b3c subvendor=0x8086 subdevice=0x7270
pcib3@pci0:0:28:6:      class=0x060400 rev=0x11 hdr=0x01 vendor=0x8086 device=0x4b3e subvendor=0x8086 subdevice=0x7270
none14@pci0:0:29:0:     class=0x088035 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4bb3 subvendor=0x8086 subdevice=0x7270
none15@pci0:0:29:1:     class=0x020018 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4ba1 subvendor=0x8086 subdevice=0x7270
none16@pci0:0:29:2:     class=0x020019 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4bb1 subvendor=0x8086 subdevice=0x7270
none17@pci0:0:30:0:     class=0x078000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b28 subvendor=0x8086 subdevice=0x7270
none18@pci0:0:30:1:     class=0x078000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b29 subvendor=0x8086 subdevice=0x7270
isab0@pci0:0:31:0:      class=0x060100 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b00 subvendor=0x8086 subdevice=0x7270
none19@pci0:0:31:4:     class=0x0c0500 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b23 subvendor=0x8086 subdevice=0x7270
none20@pci0:0:31:5:     class=0x0c8000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4b24 subvendor=0x8086 subdevice=0x7270
nvme0@pci0:1:0:0:       class=0x010802 rev=0x00 hdr=0x00 vendor=0x15b7 device=0x501a subvendor=0x15b7 subdevice=0x501a
igb0@pci0:2:0:0:        class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x1539 subvendor=0x8086 subdevice=0x0000
igb1@pci0:3:0:0:        class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x1539 subvendor=0x8086 subdevice=0x0000
/////////
Comment 1 Graham Perrin freebsd_committer freebsd_triage 2023-06-25 16:35:25 UTC
^Triage: 

* severity reduced to the norm for a feature request
* assignment
Comment 2 Graham Perrin freebsd_committer freebsd_triage 2023-06-25 17:03:58 UTC
… sorry, that was a slip of the finger with the component.