diff --git a/Driver/baxnet/README.enc b/Driver/baxnet/README.enc index ce88b32..97d548d 100644 --- a/Driver/baxnet/README.enc +++ b/Driver/baxnet/README.enc @@ -67,6 +67,9 @@ PRIORITY=PRI/K/N,BPS/K/N,MTU/K/N,FULLDUPLEX/S,FLOWCONTROL/S,TIMER/K/N,MULTICAST/ Changelog: ---------- +2.9 - better support for Envoy: automatically select a higher + task priority in presence of Envoy services + 2.8 - some workarounds for Fusion 2.7 - fixed MuForce hit diff --git a/Driver/baxnet/bin/enc624j6net.device b/Driver/baxnet/bin/enc624j6net.device index 27eeb5f..a72d620 100644 Binary files a/Driver/baxnet/bin/enc624j6net.device and b/Driver/baxnet/bin/enc624j6net.device differ diff --git a/Driver/baxnet/bin/enc624j6net.device_68000 b/Driver/baxnet/bin/enc624j6net.device_68000 index 39e9da2..8e977e2 100644 Binary files a/Driver/baxnet/bin/enc624j6net.device_68000 and b/Driver/baxnet/bin/enc624j6net.device_68000 differ diff --git a/Driver/baxnet/bin/sdnet.device b/Driver/baxnet/bin/sdnet.device index 1b220c9..12a3f2b 100755 Binary files a/Driver/baxnet/bin/sdnet.device and b/Driver/baxnet/bin/sdnet.device differ diff --git a/Driver/baxnet/bin/v2expeth.device b/Driver/baxnet/bin/v2expeth.device index e9bb6cb..a99b136 100755 Binary files a/Driver/baxnet/bin/v2expeth.device and b/Driver/baxnet/bin/v2expeth.device differ diff --git a/Driver/baxnet/source/device.c b/Driver/baxnet/source/device.c index bf4bc1c..5346b91 100644 --- a/Driver/baxnet/source/device.c +++ b/Driver/baxnet/source/device.c @@ -98,8 +98,7 @@ const ULONG blub[6] = { /* #define D2(x) D(x) */ /* #define D4(x) D(x) */ - - +#define HIGHPRI 11 ASM SAVEDS struct Device *DevInit( ASMR(d0) DEVBASEP ASMREG(d0), @@ -807,31 +806,57 @@ static LONG dbIsInList( struct List *l, struct Node *entry ) return 0; } +/* Workaround for Envoy: assign higher priority to server task */ +LONG Need_HighPri( DEVBASEP ) +{ + /* don't bother if we are at HIGHPRI already */ + if( db->db_ServerProc ) + { + if( ((struct Task*)db->db_ServerProc)->tc_Node.ln_Pri >= HIGHPRI ) + return 0; + } + + if( FindPort("Services Manager") ) + return 1; + if( FindPort("Accounts Manager") ) + return 1; + + return 0; +} + /* start Server function and keep it up */ /* note: server is global right now */ static LONG dbStartServer( DEVBASEP, LONG unit ) { struct MsgPort *port; - LONG ret = 0,i; + LONG ret = 0,i,pri; struct TagItem sv_tags[5]; /* server running ? */ if( db->db_ServerProc ) + { + if( Need_HighPri( db ) ) + SetTaskPri((struct Task*)db->db_ServerProc,HIGHPRI); return 1; - + } + if(!(port = CreateMsgPort() )) return 0; + pri = 0; + if( Need_HighPri( db ) ) + pri = HIGHPRI; + else + if( FindPort("AMITCP") ) /* AmiTCP active ? */ + pri = 6; + sv_tags[i=0].ti_Tag = NP_Entry; sv_tags[i++].ti_Data = (ULONG)ServerTask; sv_tags[i ].ti_Tag = NP_Name; sv_tags[i++].ti_Data = (ULONG)db->db_Lib.lib_Node.ln_Name; sv_tags[i ].ti_Tag = NP_Priority; - if( FindPort("AMITCP") ) /* AmiTCP active ? */ - sv_tags[i++].ti_Data = (ULONG)6; - else - sv_tags[i++].ti_Data = (ULONG)0; + sv_tags[i++].ti_Data = (ULONG)pri; sv_tags[i ].ti_Tag = TAG_DONE; if( (db->db_ServerProc = CreateNewProc(sv_tags))) diff --git a/Driver/baxnet/source/version.h b/Driver/baxnet/source/version.h index 26fa3fb..27cbefb 100644 --- a/Driver/baxnet/source/version.h +++ b/Driver/baxnet/source/version.h @@ -9,9 +9,9 @@ #define _INC_VERSION_H #define DEVICEVERSION 2 -#define DEVICEREVISION 8 +#define DEVICEREVISION 9 #define DEVICEEXTRA /* #define DEVICEEXTRA Beta */ -#define DEVICEDATE 25.05.20 +#define DEVICEDATE 23.08.20 #endif diff --git a/Driver/readme.txt b/Driver/readme.txt index 90ecac5..63d160b 100644 --- a/Driver/readme.txt +++ b/Driver/readme.txt @@ -2,5 +2,5 @@ These are the AmigaOS drivers for the subsystems of the board. The recommended SANA-II driver for the Ethernet port is located in "baxnet". - +Please use enc624j6net.device from baxnet/bin on MC68020 or faster CPUs. A cut-down version for 68000 and 68010 is provided as well. Please rename enc624j6net.device_68000 to enc624j6net.device before copying it to DEVS:Networks.