Here are patches give the vanilla
2.1.100 from the web site +
the patch at http://www.inter.nl.net/users/schnecke/html/mips/lance.html
It prints out correctly eth0: LANCE 08:00:2b:15:44:45
(hardware address is actually correct)
-Tom Riemer
-----------------------------------------------------
-------------- Patches below here ------------------
-----------------------------------------------------
*** linux-1.2.100_pl1/drivers/net/declance.c Sat Aug 29 17:17:31 1998
--- linux/drivers/net/declance.c Sat Aug 29 17:06:14 1998
***************
*** 51,56 ****
--- 51,67 ----
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
+ /* On decstation 2/3100s without tc.c included system_base
+ is not defined - triemer */
+ #ifndef CONFIG_TC
+
+ /* Base address on decstation 2100/3100 of LANCE ethernet board */
+ static unsigned long system_base = 0xb8000000;
+
+ /* Base Address of RTC address space + 1 */
+ #define RTC_OFFSET (0xBD000001)
+ #endif
+
/* Define: 2^4 Tx buffers and 2^4 Rx buffers */
#ifndef LANCE_LOG_TX_BUFFERS
#define LANCE_LOG_TX_BUFFERS 4
***************
*** 896,902 ****
--- 907,917 ----
* chunk
*/
+ #ifdef CONFIG_TC
dev->base_addr = system_base + 0xc0000;
+ #else
+ dev->base_addr = system_base;
+ #endif
dev->irq = 5;
***************
*** 905,922 ****
* initialization block.
*/
- /* these values are correct for my (ravdberg@inter.nl.net) Personal
- * DECstation 5000/25
- dev->dev_addr[0] = 0x08;
- dev->dev_addr[1] = 0x00;
- dev->dev_addr[2] = 0x2b;
- dev->dev_addr[3] = 0x30;
- dev->dev_addr[4] = 0x8d;
- dev->dev_addr[5] = 0x2b;
- */
-
for (i = 0; i < 6; i++){
dev->dev_addr[i] = esar_base[system_base + 0x80002 + i * 4];
printk("%2.2x%c", dev->dev_addr[i], i == 5 ? ' ': ':');
}
--- 920,931 ----
* initialization block.
*/
for (i = 0; i < 6; i++){
+ #ifdef CONFIG_TC
dev->dev_addr[i] = esar_base[system_base + 0x80002 + i * 4];
+ #else
+ dev->dev_addr[i] = esar_base[RTC_OFFSET + i *4];
+ #endif
printk("%2.2x%c", dev->dev_addr[i], i == 5 ? ' ': ':');
}
|