From a6472c8dd9d9014b02672b129f8138efc209bb0e Mon Sep 17 00:00:00 2001
From: Oliver Schmidt
Date: Fri, 27 Jan 2017 00:18:25 +0100
Subject: [PATCH] Revert to static Ethernet driver for the ATARI.
After all there's no momentum for a W5100-based Ethernet solution on the ATARI. So I revert to static linkage of the CS8900A driver as this improves program load times.
---
cpu/6502/README.md | 4 ++--
cpu/6502/lib/config.c | 6 +++---
cpu/6502/net/ethernet.c | 14 +++++++-------
platform/atarixl/Makefile.atarixl | 3 ++-
tools/6502/Makefile | 4 ----
5 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/cpu/6502/README.md b/cpu/6502/README.md
index 601aee288..103631b58 100644
--- a/cpu/6502/README.md
+++ b/cpu/6502/README.md
@@ -40,9 +40,9 @@ high-level configuration macros may be set:
- Default: 2
- Purpose: Set the maximum number of concurrent TCP connections.
-- ETHERNET
+- STATIC_DRIVER
- Default: N/A
- - Purpose: Link Ethernet driver statically instead of loading it dynamically
+ - Purpose: Link device driver statically instead of loading it dynamically
using the network configuration file.
- WITH_LOGGING
diff --git a/cpu/6502/lib/config.c b/cpu/6502/lib/config.c
index 7a013bd0b..e1c2cecc6 100644
--- a/cpu/6502/lib/config.c
+++ b/cpu/6502/lib/config.c
@@ -90,15 +90,15 @@ config_read(char *filename)
log_message("Def. Router: ", ipaddrtoa(&config.draddr, uip_buf));
log_message("DNS Server: ", ipaddrtoa(&config.resolvaddr, uip_buf));
-#ifndef ETHERNET
+#ifndef STATIC_DRIVER
log_message("Eth. Driver: ", config.ethernetcfg.name);
-#else /* !ETHERNET */
+#else /* !STATIC_DRIVER */
#define _stringize(arg) #arg
#define stringize(arg) _stringize(arg)
log_message("Eth. Driver: ", stringize(ETHERNET));
#undef _stringize
#undef stringize
-#endif /* !ETHERNET */
+#endif /* !STATIC_DRIVER */
log_message("Driver Port: $", utoa(config.ethernetcfg.addr, uip_buf, 16));
uip_sethostaddr(&config.hostaddr);
diff --git a/cpu/6502/net/ethernet.c b/cpu/6502/net/ethernet.c
index 2817b5d3c..54a7b4afd 100644
--- a/cpu/6502/net/ethernet.c
+++ b/cpu/6502/net/ethernet.c
@@ -63,7 +63,7 @@ ethernet_init(struct ethernet_config *config)
{
static const char signature[4] = {0x65, 0x74, 0x68, 0x01};
-#ifndef ETHERNET
+#ifndef STATIC_DRIVER
struct mod_ctrl module_control = {cfs_read};
uint8_t byte;
@@ -91,13 +91,13 @@ ethernet_init(struct ethernet_config *config)
}
}
-#else /* !ETHERNET */
+#else /* !STATIC_DRIVER */
- extern void ETHERNET;
+ extern void STATIC_DRIVER;
- module = ÐERNET;
+ module = &STATIC_DRIVER;
-#endif /* !ETHERNET */
+#endif /* !STATIC_DRIVER */
module->buffer = uip_buf;
module->buffer_size = UIP_BUFSIZE;
@@ -126,8 +126,8 @@ ethernet_exit(void)
{
module->exit();
-#ifndef ETHERNET
+#ifndef STATIC_DRIVER
mod_free(module);
-#endif /* !ETHERNET */
+#endif /* !STATIC_DRIVER */
}
/*---------------------------------------------------------------------------*/
diff --git a/platform/atarixl/Makefile.atarixl b/platform/atarixl/Makefile.atarixl
index b45482db9..2bb1d1edf 100644
--- a/platform/atarixl/Makefile.atarixl
+++ b/platform/atarixl/Makefile.atarixl
@@ -31,6 +31,8 @@
# Author: Oliver Schmidt
#
+DEFINES += STATIC_DRIVER=cs8900a
+
CONTIKI_CPU = $(CONTIKI)/cpu/6502
include $(CONTIKI_CPU)/Makefile.6502
@@ -53,7 +55,6 @@ disk: all
cp $(CONTIKI)/tools/$(TARGET)/dos25/dup.sys atr/dup.sys
cp $(CONTIKI_PROJECT).$(TARGET) atr/autorun.sys
cp $(CONTIKI)/tools/$(TARGET)/sample.cfg atr/contiki.cfg
- cp cs8900a.eth atr/cs8900a.eth
ifeq ($(findstring WITH_MOUSE,$(DEFINES)),WITH_MOUSE)
cp $(CC65_TARGET_DIR)/drv/mou/atrxst.mou atr/contiki.mou
endif
diff --git a/tools/6502/Makefile b/tools/6502/Makefile
index 76837fe1d..fef30e632 100644
--- a/tools/6502/Makefile
+++ b/tools/6502/Makefile
@@ -189,7 +189,6 @@ contiki-atari-1.atr: atarixl-makes
cp ../../examples/webbrowser/webbrowser.atarixl atr/webbrows.com
cp ../../examples/wget/wget.atarixl atr/wget.com
cp ../atarixl/default.cfg atr/contiki.cfg
- cp ../../cpu/6502/ethconfig/cs8900a.eth atr/cs8900a.eth
cp $(CC65)/atarixl/drv/mou/atrxst.mou atr/contiki.mou
cp $(CC65)/atarixl/drv/mou/atrxami.mou atr/ami.mou
cp $(CC65)/atarixl/drv/mou/atrxjoy.mou atr/joy.mou
@@ -205,7 +204,6 @@ contiki-atari-2.atr: atarixl-makes
cp ../../cpu/6502/ipconfig/ipconfig.atarixl atr/ipconfig.com
cp ../../examples/irc/irc-client.atarixl atr/irc.com
cp ../atarixl/default.cfg atr/contiki.cfg
- cp ../../cpu/6502/ethconfig/cs8900a.eth atr/cs8900a.eth
cp $(CC65)/atarixl/drv/mou/atrxst.mou atr/contiki.mou
cp $(CC65)/atarixl/drv/mou/atrxami.mou atr/ami.mou
cp $(CC65)/atarixl/drv/mou/atrxjoy.mou atr/joy.mou
@@ -222,7 +220,6 @@ contiki-atari-3.atr: atarixl-makes
cp ../../examples/webserver/webserver-example.atarixl atr/webserv.com
cp ../../examples/telnet-server/telnet-server.atarixl atr/telnetd.com
cp ../atarixl/default.cfg atr/contiki.cfg
- cp ../../cpu/6502/ethconfig/cs8900a.eth atr/cs8900a.eth
cp $(CC65)/atarixl/drv/mou/atrxst.mou atr/contiki.mou
cp $(CC65)/atarixl/drv/mou/atrxami.mou atr/ami.mou
cp $(CC65)/atarixl/drv/mou/atrxjoy.mou atr/joy.mou
@@ -246,7 +243,6 @@ contiki-atari.atr: atarixl-makes
cp ../../examples/webserver/webserver-example.atarixl atr/webserv.com
cp ../../examples/telnet-server/telnet-server.atarixl atr/telnetd.com
cp ../atarixl/default.cfg atr/contiki.cfg
- cp ../../cpu/6502/ethconfig/cs8900a.eth atr/cs8900a.eth
cp $(CC65)/atarixl/drv/mou/atrxst.mou atr/contiki.mou
cp $(CC65)/atarixl/drv/mou/atrxami.mou atr/ami.mou
cp $(CC65)/atarixl/drv/mou/atrxjoy.mou atr/joy.mou