Contents of the README file

Using the Cx486SLC/DLC Utilities----------------------------------------------------------------------------This disk should contain the following files in the root directorycx486.exe interactive cache control utilitycx486.cfg default cache settings .cfg filecx_det.exe detects the Cx486SLC/DLC microprocessordma_tst.exe checks the dma cache coherencycx486_cd.exe forces the CD and NW bits to 0 in BIOS' that have incorrectly set these bits to 1.

DETECTING the Cx486SLC/DLC----------------------------------------------------------------------------To detect the Cx486SLC/DLC:cx_det.exe

Note: The CX_DET.EXE program returns a 0 if the Intel part was found or a 1 if the Cyrix part is found. The return values can be checked in a batch file using the ERRORLEVEL batch file command.

VIEWING the STATUS of the Cx486SLC/DLC CONTROL REGISTERSorINTERACTIVELY CONTROLLING the Cx486SLC/DLC INTERNAL CACHE with CX486.EXE---------------------------------------------------------------------------

To use the CX486.EXE utility from the command line type:cx486.exe (set the path appropriately)

To get the CX486.EXE utility command line options type:cx486.exe ? (set the path appropriately)orcx486.exe h

To automatically turn on the cache during boot using the CX486.CFG file (or equialent) add the following line to the AUTOEXEC.BAT file:cx486 q cx486.cfg (set the path appropriately)

*** READ APPENDIX A below on detailed information on the CX486.EXE *** *** program and the CX486.CFG file! ***

TESTING CACHE COHERENCY using the DMA_TST.EXE PROGRAM---------------------------------------------------------------------------Note: The floppy drive is a DMA device that has the ability to modify the contents of main memory without the cpu. CPUs that contain internal memory caches must have a method to keep the internal cache memory coherent with the external main memory. This is usually accomplished by adding circuitry on the motherboard to monitor when a DMA transfer takes place. The motherboard DMA detection circuitry notifies the CPU when to invalidate the contents of the internal cache by asserting the CPU FLSH# pin.

The purpose of the DMA_TST.EXE program is to detect if a DMA transfer can complete succesfully with guaranteed cache coherency. First, theinternal cache is configured automatically so that the FLSH# pin is enabled. Second, the DMA_TST.EXE program will run the test. Failures will reveal a cache coherency error which may result indata corruption! If the CPU FLSH# pin is NOT connected to an appropriate DMA detection circuit, the test will likely fail.

Note : ALL memory managers must be completely disabled in the CONFIG.SYS FILE or this test will incorrectly display a pass condition!!!

2.) Install any formatted diskette in drive A: and type:dma_tst.exe (in the current directory)

To run the test "q"uickly and get a "Pass/Fail" answer type:dma_tst.exe q

To get the DMA_TST.EXE utility command line options type:dma_tst.exe ? ordma_tst.exe h

Note: The DMA_TST.EXE program returns a 0 if the test passes or a 1 if the test fails. The return values can be checked in a batch file using the ERRORLEVEL batch file command.

CLEARING the Cache Disable CD Bit in systems with misbehaved BIOS---------------------------------------------------------------------------Some systems have BIOS' that incorrectly set the Cache Disable "CD" bit. Bits 30 and 29 of the 386 CR0 registers were reserved and should not have been set by the BIOS. The CX486_CD.EXE program can be used on thosemachines which have this misfortune in the BIOS. CX486_CD.EXE is intendedfor DOS only and cannot be used in a DOS window in WINDOWS or OS/2. Thisis due to the protected mode features of the operating system that does notallow a program to update the CR0 register.

To run the CX486_CD.EXE program in the AUTOEXEC.BAT file "q"uickly type: cx486_cd.exe q

To get command line information on how to use the CX486_CD.EXE utility type: cx486_cd.exe or cx486_cd.exe ?

The CX486.CFG file is used by the CX486.EXE program to configure the cache registers automatically according to the data contained in the CX486.CFG file. Refer to the "CX486SLC/DLC Data Sheet" on the exact definitions of the control registers. The CX486.EXE utility has screen sensitive help which may assist you in configuring the cache.

The CX486.CFG file or equivalent can be created by the (F)ile Utilities command in the CX486.EXE utility or edited using a text editor. (Several *.CFG files are on this disk as examples.)

*** Editing the CX486.CFG file or equivalent: *** CX486.EXE reads each line in this file looking for a matching token(setup string) so it can convert the string into the value for the appropriate register. The exact format of the file is:

To edit the CX486.CFG file, look for the token(setup string) line that matches the register to change/configure. Enter a HEX value that appropriately sets up the register. You can edit the value on the right side of the "=" sign, but you cannot edit/rename the token(setup string) on the left side of the "=" sign.

Below are the bit definitions for the CX486SLC/DLC control registers: ....................................................... Cache Configuration Register 0

NOTE: The "user input starting address" for the Address Region Registers(ARR) should fall on a boundary that coincides with the size of the Address Region. CX486.EXE automatically translates the starting address to the "effective starting address"

The programming examples supplied on this disk are ASSEMBLY languageroutines. MAKE files are provided with debugging switches enabled for yourreference. Each example is under its respective directory.

TURNING ON the Cx486SLC/DLC INTERNAL CACHE - Example----------------------------------------------------------------------------do_cache.asm - example to enable the internal cache registers with a 640k to 1M non-cacheable region.

TURNING OFF the Cx486SLC/DLC INTERNAL CACHE - Example----------------------------------------------------------------------------no_cache.asm - example to return to internal cache registers to the reset state.

DETECTING the Cx486SLC/DLC----------------------------------------------------------------------------cx_det.c - C code driver program for detect.asmdetect.asm - example to detect the Cx486SLC/DLC using the undefined arithmetic flags after a divide instruction.