Hello Genodians
I'm back to working on the integration of the Intel IGC driver in to the pc_nic_drv.
I have rebased my work tree to latest master. I can run the driver and it starts up. The log output is as follows:
[init -> nic_drv_igc] NR_IRQS: 4352, nr_irqs: 4352, preallocated irqs: 256 [init -> nic_drv_igc] time-clocksource: dde_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns [init -> nic_drv_igc] time-clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [init -> nic_drv_igc] time-clocksource: Switched to clocksource dde_counter [init -> nic_drv_igc] e1000-e1000_main: Intel(R) PRO/1000 Network Driver [init -> nic_drv_igc] e1000-e1000_main: Copyright (c) 1999-2006 Intel Corporation. [init -> nic_drv_igc] e1000e-netdev: Intel(R) PRO/1000 Network Driver [init -> nic_drv_igc] e1000e-netdev: Copyright(c) 1999 - 2015 Intel Corporation. [init -> nic_drv_igc] Intel(R) 2.5G Ethernet Linux Driver [init -> nic_drv_igc] Copyright(c) 2018 Intel Corporation. [init -> nic_drv_igc] igc 04:00.0: PCIe PTM not supported by PCIe bus/controller [init -> nic_drv_igc] igc 04:00.0 eth0: MAC: d8:bb:c1:5b:3a:18 [init -> nic_drv_igc] sched_clock: Marking stable (144026000, 246486000)->(405777000, -15265000) [init -> mac_report_rom] report 'nic_drv_igc -> devices' [init -> mac_report_rom] <devices> [init -> mac_report_rom] <nic name="eth0" mac_address="d8:bb:c1:5b:3a:18"/> [init -> mac_report_rom] </devices> [init -> nic_drv_igc] igc 04:00.0 eth0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX [init -> nic_drv_igc] create uplink for net device eth0 [init -> nic_router] [uplink_igc] NIC sessions: 1 [init -> nic_router] [uplink_igc] snd ETH d8:bb:c1:5b:3a:18 > ff:ff:ff:ff:ff:ff IPV4 0.0.0.0 > 255.255.255.255 UDP 68 > 67 DHCP DISCOVER d8:bb:c1:5b:3a:18 > 0.0.0.0 [init -> nic_router] [uplink_igc] rcv ETH b4:2e:99:f9:18:72 > d8:bb:c1:5b:3a:18 IPV4 0.0.0.0 > 0.0.0.0
The last two lines get repeated.
In Wireshark I see that the DHCP server offers an IP to the MAC of the Intel IGC, but nic_router doesn't see that.
To be sure, that nothing is missing from the binary I would like to test the Linux kernel Image that get built by run make pc_linux. From what I understand, this wouldn't even need a root filesystem, as the kernel can do DHCP on its own.
Before I start piecing something together, I'd like to ask, if someone does have a ready solution which allows to boot that image via iPXE?
Regards, Pirmin
Hello Pirmin,
On Sun, Feb 11, 2024 at 10:18:23 CET, Pirmin Duss wrote:
Before I start piecing something together, I'd like to ask, if someone does have a ready solution which allows to boot that image via iPXE?
I use the following run script to test pc_linux images.
build { init }
create_boot_directory
install_config { <config/> }
build_boot_image { init }
exec ln -nvfs [pwd]/pc_linux/x86_64/arch/x86/boot/bzImage [run_dir]/ exec ln -nvfs <path_to>/rootfs.cpio.gz [run_dir]/
set boot_cfg "#!ipxe kernel bzImage console=ttyS0,115200 console=tty0 root=/dev/ram ip=dhcp debug init=/bin/sh initrd=rootfs.cpio.gz initrd rootfs.cpio.gz boot "
set fd [open "[run_dir]/boot.cfg" w] puts $fd $boot_cfg close $fd
run_genode_until "init process" 10000 puts stderr "ENTER COMMANDS NOW"
interact
Hope it helps
Hello Christian
On 2024-02-14 16:30, Christian Helmuth wrote:
I use the following run script to test pc_linux images. ... Hope it helps
This works great, the kernel starts. Unfortunately I do not see any log output on the serial console right now. I think, this is related to my special setup and I will be able to figure our which driver is needed additionally.
Regards, Pirmin