Showing results for 
Search instead for 
Did you mean: 
Community Manager

Intel Quark stm mac kernel module


I have troubles with the stmmac.ko module for the Intel Quark X1001 Soc. The Ethernet device is not showing up.

I have bought the UNO-1252G of Advantech. It is a device based on the Intel Quark X1001 Soc. I build an image with the latest krogoth release of Yocto with the same release of the meta-intel layer. The build configuration is placed at the bottom of this post.

If I boot the Intel Quark, you can see in the log that the kernel module is not initialising properly. libphy of the kernel is not picking up the Ethernet device. The nic's are not recognised.

Is there somebody else who experienced these problems already? Do I miss some patches of Intel that are not included in the mainstream Yocto recipes?

Thx in advance


Boot messages

root@intel-quark:~# dmesg | grep stmmac

stmmaceth 0000:00:14.6: enabling device (0000 -> 0002)

stmmaceth 0000:00:14.6: enabling bus mastering

stmmaceth 0000:00:14.7: enabling device (0000 -> 0002)

stmmaceth 0000:00:14.7: enabling bus mastering


root@intel-quark:~# modinfo stmmac

filename: /lib/modules/4.4.13-yocto-standard/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko

license: GPL

author: Giuseppe Cavallaro <</span>>

description: STMMAC 10/100/1000 Ethernet device driver


intree: Y

vermagic: 4.4.13-yocto-standard preempt mod_unload 586TSC

parm: watchdog:Transmit timeout in milliseconds (default 5s) (int)

parm: debug:Message Level (-1: default, 0: no output, 16: all) (int)

parm: phyaddr:Physical device address (int)

parm: dma_txsize:Number of descriptors in the TX list (int)

parm: dma_rxsize:Number of descriptors in the RX list (int)

parm: flow_ctrl:Flow control ability [on/off] (int)

parm: pause:Flow Control Pause Time (int)

parm: tc:DMA threshold control value (int)

parm: buf_sz:DMA buffer size (int)

parm: eee_timer:LPI tx expiration time in msec (int)

parm: chain_mode:To use chain instead of ring mode (int)

Build configuration

Build Configuration:

BB_VERSION = "1.30.0"

BUILD_SYS = "x86_64-linux"


TARGET_SYS = "i586-poky-linux"

MACHINE = "intel-quark"

DISTRO = "poky"


TUNE_FEATURES = "m32 i586-nlp"




meta-yocto-bsp = "krogoth:f73006031ef8bca7b8851724832c6f37ed63ec89"

meta-intel = "krogoth:b8c199201ffe026485a14e1fcfc398e2b3551512"

0 Kudos
3 Replies

Hello Peter_de_witte,

I believe you were using Yocto's BSP in order to build the latest version of Yocto Krogoth. Nevertheless, if you are working with Quark, you should use Intel's official BSP ( This BSP has been officially tested to work with boards based on Quark and currently it supports an older version of Yocto. I understand you would like to use features present in the latest version of Yocto, nevertheless, if you don't use the official BSP you might encounter issues such as the one you describe. In order to fix them you'll probably need to modify the image's kernel extensively which might prove challenging. So, my best suggestion is that you use Intel's official BSP for Quark which can be found in the link above.



Can you try either v4.4.y (means from linux-stable releases) or quite recent vanilla kernel's, such as v4.8-rc1?

# lspci -nk -s 14.6

00:14.6 0200: 8086:0937 (rev 10)

Subsystem: 8086:0937

Kernel driver in use: stmmaceth

# ip addr show dev eth0

2: eth0: mtu 1500 qdisc noop qlen 1000

link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff

# uname -a

Linux buildroot 4.8.0-rc1+ # 258 Thu Aug 11 17:56:24 EEST 2016 i586 GNU/Linux

# udhcpc

udhcpc: started, v1.25.0

[ 6926.598389] eth0: device MAC address 98:4f:ee:05:ac:47

[ 6926.706791] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

udhcpc: sending discover

[ 6928.736247] stmmaceth 0000:00:14.6 eth0: Link is Up - 100Mbps/Full - flow control off

[ 6928.745414] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

udhcpc: sending discover

udhcpc: sending select for

udhcpc: lease of obtained, lease time 43200

deleting routers

adding dns

# ip addr show dev eth0

2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000

link/ether 98:4f:ee:05:ac:47 brd ff:ff:ff:ff:ff:ff

inet brd scope global eth0

valid_lft forever preferred_lft forever

inet6 fe80::9a4f:eeff:fe05:ac47/64 scope link

valid_lft forever preferred_lft forever


Hello Peter_de_witte,

Do you have any updates about this?