diff options
author | Adrian Schmutzler <freifunk@adrianschmutzler.de> | 2020-08-07 16:08:28 +0200 |
---|---|---|
committer | Adrian Schmutzler <freifunk@adrianschmutzler.de> | 2020-09-02 16:29:22 +0200 |
commit | 94198e2a1c26b75cc1b349f758273bc678569ce9 (patch) | |
tree | a1891b8b9d1474484b7faed35a8955203ccdc039 /target/linux/rb532/patches-4.14/107-korina-refactor-rx-descriptor-flags-processing.patch | |
parent | 7d29a557140381ef1815329f6843b88b4126d490 (diff) | |
download | upstream-94198e2a1c26b75cc1b349f758273bc678569ce9.tar.gz upstream-94198e2a1c26b75cc1b349f758273bc678569ce9.tar.bz2 upstream-94198e2a1c26b75cc1b349f758273bc678569ce9.zip |
rb532: drop target
This target is still on kernel 4.14, and recent attempts to move it to
kernel 5.4 have not led to success. The device tester reported that it
wouldn't boot with the following messages:
From sysupgrade:
Press any key within 4 seconds to enter setup....
loading kernel from nand... OK
setting up elf image... OK
jumping to kernel code
At this point the system hangs.
From CompactFlash:
Press any key within 4 seconds to enter setup....
Booting CF
Loading kernel... done
setting up elf image... kernel out of range kernel loading failed
The tester reported that the same was observed with current master
(kernel 4.14) as well. This looks like some kernel size restriction.
Since this target is quite old and only supports one device, and since
nobody else seemed interested in working on this for quite some time,
I decided to not put further work into analyzing the problem and drop
this together with the other 4.14-only targets.
Patchwork series:
https://patchwork.ozlabs.org/project/openwrt/list/?series=197066&state=*
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Diffstat (limited to 'target/linux/rb532/patches-4.14/107-korina-refactor-rx-descriptor-flags-processing.patch')
-rw-r--r-- | target/linux/rb532/patches-4.14/107-korina-refactor-rx-descriptor-flags-processing.patch | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/target/linux/rb532/patches-4.14/107-korina-refactor-rx-descriptor-flags-processing.patch b/target/linux/rb532/patches-4.14/107-korina-refactor-rx-descriptor-flags-processing.patch deleted file mode 100644 index 80745f534d..0000000000 --- a/target/linux/rb532/patches-4.14/107-korina-refactor-rx-descriptor-flags-processing.patch +++ /dev/null @@ -1,110 +0,0 @@ ---- a/drivers/net/ethernet/korina.c -+++ b/drivers/net/ethernet/korina.c -@@ -363,59 +363,60 @@ static int korina_rx(struct net_device * - if ((KORINA_RBSIZE - (u32)DMA_COUNT(rd->control)) == 0) - break; - -- /* Update statistics counters */ -- if (devcs & ETH_RX_CRC) -- dev->stats.rx_crc_errors++; -- if (devcs & ETH_RX_LOR) -- dev->stats.rx_length_errors++; -- if (devcs & ETH_RX_LE) -- dev->stats.rx_length_errors++; -- if (devcs & ETH_RX_OVR) -- dev->stats.rx_fifo_errors++; -- if (devcs & ETH_RX_CV) -- dev->stats.rx_frame_errors++; -- if (devcs & ETH_RX_CES) -- dev->stats.rx_length_errors++; -- if (devcs & ETH_RX_MP) -- dev->stats.multicast++; -+ /* check that this is a whole packet -+ * WARNING: DMA_FD bit incorrectly set -+ * in Rc32434 (errata ref #077) */ -+ if (!(devcs & ETH_RX_LD)) -+ goto next; - -- if ((devcs & ETH_RX_LD) != ETH_RX_LD) { -- /* check that this is a whole packet -- * WARNING: DMA_FD bit incorrectly set -- * in Rc32434 (errata ref #077) */ -+ if (!(devcs & ETH_RX_ROK)) { -+ /* Update statistics counters */ - dev->stats.rx_errors++; - dev->stats.rx_dropped++; -- } else if ((devcs & ETH_RX_ROK)) { -- pkt_len = RCVPKT_LENGTH(devcs); -+ if (devcs & ETH_RX_CRC) -+ dev->stats.rx_crc_errors++; -+ if (devcs & ETH_RX_LE) -+ dev->stats.rx_length_errors++; -+ if (devcs & ETH_RX_OVR) -+ dev->stats.rx_fifo_errors++; -+ if (devcs & ETH_RX_CV) -+ dev->stats.rx_frame_errors++; -+ if (devcs & ETH_RX_CES) -+ dev->stats.rx_frame_errors++; - -- /* must be the (first and) last -- * descriptor then */ -- pkt_buf = (u8 *)lp->rx_skb[lp->rx_next_done]->data; -- -- /* invalidate the cache */ -- dma_cache_inv((unsigned long)pkt_buf, pkt_len - 4); -- -- /* Malloc up new buffer. */ -- skb_new = netdev_alloc_skb_ip_align(dev, KORINA_RBSIZE); -- -- if (!skb_new) -- break; -- /* Do not count the CRC */ -- skb_put(skb, pkt_len - 4); -- skb->protocol = eth_type_trans(skb, dev); -- -- /* Pass the packet to upper layers */ -- netif_receive_skb(skb); -- dev->stats.rx_packets++; -- dev->stats.rx_bytes += pkt_len; -- -- /* Update the mcast stats */ -- if (devcs & ETH_RX_MP) -- dev->stats.multicast++; -- -- lp->rx_skb[lp->rx_next_done] = skb_new; -+ goto next; - } - -+ pkt_len = RCVPKT_LENGTH(devcs); -+ -+ /* must be the (first and) last -+ * descriptor then */ -+ pkt_buf = (u8 *)lp->rx_skb[lp->rx_next_done]->data; -+ -+ /* invalidate the cache */ -+ dma_cache_inv((unsigned long)pkt_buf, pkt_len - 4); -+ -+ /* Malloc up new buffer. */ -+ skb_new = netdev_alloc_skb_ip_align(dev, KORINA_RBSIZE); -+ -+ if (!skb_new) -+ break; -+ /* Do not count the CRC */ -+ skb_put(skb, pkt_len - 4); -+ skb->protocol = eth_type_trans(skb, dev); -+ -+ /* Pass the packet to upper layers */ -+ netif_receive_skb(skb); -+ dev->stats.rx_packets++; -+ dev->stats.rx_bytes += pkt_len; -+ -+ /* Update the mcast stats */ -+ if (devcs & ETH_RX_MP) -+ dev->stats.multicast++; -+ -+ lp->rx_skb[lp->rx_next_done] = skb_new; -+ -+next: - rd->devcs = 0; - - /* Restore descriptor's curr_addr */ |