--------------------------------------------------------------------------------
            Copyright (C) 1997 Texas Instruments Incorporated.
                         All Rights Reserved
--------------------------------------------------------------------------------

                        **************************
                        *                        *
                        *    SDB Release 2.11    *
                        *                        *
                        *        10-03-97        *
                        *                        *
                        *      RELEASE.TXT       *
                        *                        *
                        **************************

*****************************************************************************
Release notes
*****************************************************************************
This file lists notes releated to this release of the SDB software.

Please read:
 - #DISCLAI.TXT
 - README.TXT
 - RELEASE.TXT
 - ERRATA.TXT
 - RPC\SDBRPC.TXT

*****************************************************************************
NEW IN RELEASE 2.10
*****************************************************************************
A complete remote-procedure-call (RPC) system has been added which allows
an RPC client (host application) to execute functions on the server (SDB).
For more details, see RPC\SDBRPC.TXT and also study the RPC samples located
in SAMPLES\RPC.

*****************************************************************************
INSTALL NOTES
*****************************************************************************
If the SDB software has been obtained from the FTP site, then remember
to use the '-d' option when executing the self extracting zip file.
All of the files will expand into their releative directories.
For example, if you want to install the software into c:\sdb then copy the
downloaded file into that directory and execute it there.

The command "C:\SDB>sdbxxx.exe -d" will unzip all of the files into
C:\sdb and will create all necessary subdirectories where sdbxxx.exe is
the latest release (sdb210.exe, sdb211.exe, etc...).

You need to install the device driver for Windows NT. This driver is 
located in the BIN\NT directory. This installation process will
also automatically copy certain files to the Windows system32
directory.

WINDOWS NT 4.0
1) Open up the "Control Panel"
2) Open up the "Multimedia" applet
3) Select "Devices"
4) Click "Add"
5) Highlight "Unlisted or Updated Driver"
6) Click on "OK"
7) Browse to the "BIN\NT" directory of the new sdb software
8) Click on "OK"
9) Click on "OK"
10) If you get the "Driver Exists" dialog box, click on "New"

WINDOWS NT 3.51
1) Open up "Control Panel"
2) Open up the "Devices" applet
3) Click on "Add"
4) Highlight "Unlisted or Updated Driver"
5) Click on "OK"
6) Browse to the "BIN\NT" directory of the new sdb software
7) Click on "OK"
8) Click on "OK"
9) If you get the "Driver Exists" dialog box, click on "New"

The BIN directory needs to be in your path variable.

*****************************************************************************

QUICK INDEX:
R210.1	The old 1.30 release is now merged with the new release.
R210.2	Made the inc and lib directories common for both c8x and host.
R210.3	Library makefiles no longer overwrite original output files.
R210.4	Makefiles have now been added to the host samples.
R210.5	Moved C80 system register writes into C80 events.c module.
R210.6	Fixed host communication bug related to PP i-cache fills.
R210.7	Modified client/server synchronization functions
R210.8  New RPC libraries
R211.1  Fixed RPC bug which occured when trying to debug the server code
R211.2  Fixed problem with preemption happening during ISR callback handlers

-----------------------------------------------------------------------------
R210.1	The old 1.30 release is now merged with the new release.

DESCRIPTION:
By popular demand, the old sdb 1.30 release is now merged with the new
release. The 2.00 release pretty much supplied a new library interface
to the board. It was authored by TI and all source was included. The 2.10
release now has the new libraries but also has the 1.30 stuff. The
directory structure of both 1.30 and 2.00 is preserved in 2.10.

-----------------------------------------------------------------------------
R210.2	Made the inc and lib directories common for both c8x and host.

DESCRIPTION:
In release 2.00, the c80 library and include directories are located at
.\inc and .\lib. The same for the host are .\host\inc and .\host\lib.
This is still prerserved in release 2.10. However, for convience in release
2.10, the host libraries are copied into the .\lib directory and the host 
library include files are copied into the .inc directory. This gives one
common place for include files and one common place for library files.
As mentioned, the 2.00 host libraries and host include files are still
located in the old locations as well.

-----------------------------------------------------------------------------
R210.3	Library makefiles no longer overwrite original output files.

DESCRIPTION:
In release 2.10, the library makefiles (in .\src for c80 and .\host\src for
host) now build their output files (.lib) into the src directories rather
than where the originals are (.\lib, .\inc, .\host\inc, .\host\lib).
This way the libarries can be re-made without affecting the release
libraries. If you want to use a customized version, remember to copy
the appropiate include and library files to the lib and inc search paths
(.\lib, .\inc, .\host\inc, .\host\lib). Some minor modifications were
required in the API header files but does not effect existing software.

-----------------------------------------------------------------------------
R210.4	Makefiles have now been added to the host samples.

DESCRIPTION: 
Makefiles have now been added to the host samples. 

-----------------------------------------------------------------------------
R210.5	Moved C80 system register writes into C80 events.c module.

DESCRIPTION: 
Moved C80 system register writes into C80 events.c module. It turned out
that every C80 example using the sdbdrvs.lib library required the same
register settings for REFCNTL, PTMIN, and PTMAX. These values are now set
in the EVENTS_Init() function which is called upon initializing any of the
library APIs (audio, display, capture, server). It was decided to put them
there because they will always be initialized. C80 MP application code no
longer needs to set these registers. All sample programs now adhere to this.

    REFCNTL = 0xFFFF0100;
    PTMIN   = 0x00000100;
    PTMAX   = 0x00002000;

-----------------------------------------------------------------------------
R210.6	Fixed host communication bug related to PP i-cache fills.

DESCRIPTION: 
It turned out that if the PPs where thrashing their instruction caches
really bad, the client/server protocol would fail. This was due to the
fact that the PP icache fills are higher priority then normal MP transfer
requests. Hence, MP transfers to/from the PCI FIFO were not happening.
The remedy is to put the MP into high priority mode by setting bit 28
of the CONFIG register. Then the transfers in question are submitted
with the I bit set in PKTREQ (hi priority request). The net result is
that the MP issued transfers to/from the FIFO are higher priority than
PP icache fills. Another change was decreasing PTMAX to allow TC round
robin priority to work properly.

    REFCNTL = 0xFFFF0100;
    PTMIN   = 0x00000100;
    PTMAX   = 0x00002000;
    CONFIG |= 0x10000000;  /* Put MP into high priority mode */

Did not want to change the original library code so two functions have
been added to the server API library. 

    void Server_ReadDataFifoHi(ULONG *Dst, USHORT Length); 
    void Server_WriteDataFifoHi(ULONG *Src, USHORT Length);

These two API functions do the same thing as 

    void Server_ReadDataFifo(ULONG *Dst, USHORT Length); 
    void Server_WriteDataFifo(ULONG *Src, USHORT Length);

except that the transfers are high priority.

-----------------------------------------------------------------------------
R210.7	Modified client/server synchronization functions

DESCRIPTION: 
This change was minor and shouln't affect any existing software. The only
change was reversing the checking order in the Client_Sync() and 
Server_Sync() functions. There was a timing race condition in the 2.00
implementation. It was revealed when the C80 performed a write to the
SDB->HOST FIFO mailbox just after calling Server_Sync(). The C80 completed
the Sync function and wrote to the mailbox much faster than the host finished
its sync function. The value in the mailbox messed up the host sync.
This is fixed now.

-----------------------------------------------------------------------------
R210.7	New RPC Libraries

DESCRIPTION: 
A complete remote-procedure-call (RPC) system has been added to release 2.10
which allows an RPC client (host application) to execute functions on the
server (SDB). For more details, see RPC\SDBRPC.TXT and also study the RPC
samples located in SAMPLES\RPC.

What TI has done is taken the 2.00 library release and wrapped a complete
RPC system around them. The audio, video display, and video capture APIs
are now ported to the host using RPC calls. The APIs are identical to their
C80 counterparts. This is feasible for most of the API function calls,
display calls for instance, but it does not make sense to try to use
some of the real-time function calls via RPC. With this noted, all API
function calls are callable via RPC but some may behave differently
than if called by C8x code. The intent is not to do C8x real-time 
programming from the host via RPC calls. The APIs have been ported
for convience, probably about 90% of the calls are still usefull from
the host.

The biggest and most important feature of the RPC system is the addition
of a new API, "System", which gives a client application a rich set of
data transfer functions. Another big feature is the ability to easily 
add custom functions to the RPC system.

The basics:
- The host application (client) calls an RPC function.
- The RPC function packs the RPC arguments into an array of ULONGS.
- The RPC functions then issues the command to the server (SDB).
- The server retreives the command from the client.
- The server dispatches the command to a registered RPC server callback.
- The server callback function unpacks the arguments and calls the actual
  API function.
- The API function return value is returned to the server.
- The server then returns the return value to the client.
- The client RPC function gets the return and and interprets it acordingly.

Use of the RPC libraries also simplifies client/server application code by
abstracting all of the library houscleaning work. On the client side,
the libraries are initialized, and the sever is booted, all in one
convenient call. On the C80 server side, the libraries are initialized,
the multitasking executive is initialized, and system registers are
initialized. Below are the bare minimum lines of code to use the RPC
libraries.

client.c (host code)
+---------------------------------------------
|#include <sdbrpc.h>
|
|void main() {
|
|  RpcInit("server.out",1);
|
|  /* can now call any RPC functions */
|
|  RpcQuit();
|
|} 
|


server.c (C80 code)
+---------------------------------------------
|#include <sdbrpc.h>
|
|void main() {
|
|  RpcInit(15);
|
|  /* do your other init stuff here  */
|  /* before starting the RPC server */
|
|  RpcServerStart(1);
|
|}
|

-----------------------------------------------------------------------------
R211.1  Fixed RPC bug which occured when trying to debug the server code

There was a bug in the 2.10 release which prevented debugging RPC server
code using the MP debugger. This was due to improper interrupt controller
initialization. See also errata.txt. Fixed in 2.11

-----------------------------------------------------------------------------
R211.2  Fixed problem with preemption happening during ISR callback handlers

There was the potetional for preemption to occur during ISR callback
handler functions. This has been removed in 2.11


*****************************************************************************
                             End of RELEASE.TXT
*****************************************************************************
