Re: [PATCH] ARM: dts: omap4-sdp: Make ethernet working even if booted with latest u-boot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Dec 14, 2018 at 03:08:09PM +0200, Peter Ujfalusi wrote:
> I certainly have the version of u-boot which can do only one tftp load
> (or dhcp request).

That'll be because of the buggy KS8851 driver.  This is the patch I
have on top of my 2014 version of Nishanth's tree.

diff --git a/drivers/net/ks8851.c b/drivers/net/ks8851.c
index 6467dde7ebf6..f888f43ad937 100644
--- a/drivers/net/ks8851.c
+++ b/drivers/net/ks8851.c
@@ -27,6 +27,27 @@
 
 #include "ks8851.h"
 #define KS8851_SNL		1
+#undef DEBUG
+
+static void dump_mem(const char *str, const void *base, unsigned orig, unsigned len)
+{
+#ifdef DEBUG
+	const unsigned char *p = base;
+	unsigned i, j;
+
+	printf("%s:", str);
+	
+	for (j = 0; j < len; j += 32) {
+		printf("\n%04x:", j);
+		for (i = j; i < j + 32 && i < len; i++)
+			printf("%s%s%02x",
+				(i == j + 16) ? " " : "",
+				i == orig ? "|" : " ",
+				p[i]);
+	}
+	printf("\n");
+#endif
+}
 
 /*
  * GET_KS8851SNL_RWWORD_CMD
@@ -324,6 +345,7 @@ void KS8851SNL_READ_BUFFER(void *pHardware,
 		pdw++;
 		*puReadLen = (u16)((*pdw) >> 16);
 		*ppOut = pIn + 8;
+dump_mem("RX", pMove, spiBurstLen + 8, spiBurstLen + 8);
 	}
 
 	if (spiBurstFlag != SPI_READ_BURST_ALL) {
@@ -626,6 +648,7 @@ static int ks8851_eth_recv(struct eth_device *dev)
 			printf("frame count = %d\n", rxFrameCount);
 #endif
 
+			pHardware->m_uCurFrameIndex = 0;
 			pHardware->m_uFramesRemained = rxFrameCount;
 
 			if (rxFrameCount == 0)
@@ -697,7 +720,7 @@ static int ks8851_eth_send(struct eth_device *dev,
 	uiPacketLength = length;
 	GET_DATA_ALIGNMENT(length, &uiPacketLength);
 	HW_WRITE_START(pHardware);
-
+dump_mem("TX", packet, length, uiPacketLength);
 #ifdef KS8851_SNL
 	KS8851SNL_DATA_WRITE((u8 *)packet, length, uiPacketLength, &fReturn);
 #else
@@ -722,12 +745,19 @@ static int ks8851_eth_send(struct eth_device *dev,
 	return 1;
 }
 
+static int ks8851_eth_init2(struct eth_device *dev, bd_t *bd)
+{
+	return 0;
+}
+
 static int ks8851_eth_init(struct eth_device *dev, bd_t *bd)
 {
 
 	u16 txCntl, rxCntl, w, intMask;
 	PHARDWARE pHardware = &gHardware;
 
+	dev->init = ks8851_eth_init2;
+
 	pHardware->m_uCurFrameIndex = 0;
 	pHardware->m_uFramesRemained = 0;
 	pHardware->m_uCurRecvFrams = MAX_RECV_FRAMES;
diff --git a/include/configs/omap4_sdp4430.h b/include/configs/omap4_sdp4430.h
index 0d9c16ea9f04..ae94dd852f3d 100644
--- a/include/configs/omap4_sdp4430.h
+++ b/include/configs/omap4_sdp4430.h
@@ -21,6 +21,9 @@
 
 #include <configs/omap4_common.h>
 
+#undef CONFIG_SYS_PROMPT
+#define CONFIG_SYS_PROMPT             "OMAP44XX SDP # "
+
 #ifndef CONFIG_SPL_BUILD
 /* Battery Charger */
 #define CONFIG_CMD_BAT			1


-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux