[OpenWrt-Devel] lantiq v3.18

Daniel Gimpelevich daniel at gimpelevich.san-francisco.ca.us
Tue Feb 10 22:33:42 EST 2015

John Crispin <john at phrozen.org> writes:
> On 10/02/2015 19:35, Joerg Hollmann wrote:
> > Hello Daniel,
> > 
> > could it be, that the definition of the kernel partition in the dts
> > file of your device ist too small?
> i think the problem is that spi-gpio is either not loaded or loaded
> too late. i wont have time to look at it till friday though.
> > I have seen similar error messages on the builds for the VG3503J.
> there is a kernel part defined in the dts ? the mtdsplit should handle
> it for your. i'll look at that aswell, only tested a initramfs on the
> VG3503J

Booting an initramfs of 3.18 succeeds but still does not detect the
SPI flash. It also uses a wrong macaddr, no doubt due to the following
wrong logic in 0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch

--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -161,7 +161,7 @@ struct ltq_etop_priv {
        int tx_irq;
        int rx_irq;
-       const void *mac;
+       void *mac;
        int mii_mode;
        spinlock_t lock;
@@ -840,7 +840,11 @@ ltq_etop_init(struct net_device *dev)
        if (err)
                goto err_hw;
-       memcpy(&mac, &priv->pldata->mac, sizeof(struct sockaddr));
+       if (priv->mac)
+               memcpy(&mac, priv->mac, sizeof(struct sockaddr));
+       else
+               memcpy(&mac, ltq_get_eth_mac(), sizeof(struct sockaddr))
        if (!is_valid_ether_addr(mac.sa_data)) {
                pr_warn("etop: invalid MAC, using random\n");

This stuffs the macaddr into the wrong field of the sockaddr and reads
beyond the end of the macaddr. The corresponding patch to 3.14 was right
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list