[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference hydra::amiga_v1

Title:AMIGA NOTES
Notice:Join us in the *NEW* conference - HYDRA::AMIGA_V2
Moderator:HYDRA::MOORE
Created:Sat Apr 26 1986
Last Modified:Wed Feb 05 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:5378
Total number of notes:38326

3969.0. "GVP 030 hardware bug (from Usenet)" by WJG::GUINEAU () Fri Jul 27 1990 11:31

Article 2744 of comp.sys.amiga.hardware:
Path: shlump.nac.dec.com!decuac!haven!ames!uhccux!virtue!comp.vuw.ac.nz!munnari.oz.au!bunyip!uqvax.decnet.uq.oz!wattle!inb300campbe
From: [email protected]
Newsgroups: comp.sys.amiga,comp.sys.amiga.hardware,comp.sys.amiga.tech
Subject: GVP 68030 board hardware bug
Message-ID: <[email protected]>
Date: 26 Jul 90 16:41:07 GMT
Organization: Queensland University of Technology
Lines: 76
Xref: shlump.nac.dec.com comp.sys.amiga:62002 comp.sys.amiga.hardware:2744 comp.sys.amiga.tech:13864

Hardware bug report:

Hardware:  Amiga 2000 with GVP 25Mhz 68030 board and 4 Megs
of 32-bit memory.

Problem:  When writing a word to memory located in 32-bit
wide memory and with an address ending in 3,7,B or F, the
first byte is always written correctly, but the second byte
of the word (LSB) is NOT written to the correct location.
It is unknown if the byte is written to somewhere else
instead, but we have determined that it is not written to
anywhere within 32K.

Assuming 32-bit memory is imaged at $200000 - $3FFFFF, the
following code should demonstrate the problem:

(memory before code executed)

$280000    00000000 00000000
$280008    00000000 00000000
$280010    00000000 00000000

	lea	$280003,A0
	move.w	#$1234,(A0)+
	move.w	#$1234,(A0)+
	move.w	#$1234,(A0)+
	move.w	#$1234,(A0)+
	move.w	#$1234,(A0)+
	move.w	#$1234,(A0)+
	move.w	#$1234,(A0)+
	move.w	#$1234,(A0)+

Under normal circumstances, memory should be changed at
that location to:

$280000    00000012 34123412
$280008    34123412 34123412
$280010    34123400 00000000

Instead, the memory is actually changed to:

$280000    00000012 00123412
$280008    00123412 00123412
$280010    00123400 00000000

When reading from memory, there seems to be no problem.
Disabling the cache and/or burst mode makes no difference
to the test results.

When the same tests are run using either 16-bit wide fast
memory, or chip memory, no problem exists.

The fault exists whether running code at full speed, or
single-stepping (using Metascope).  We found that the
fault was easily duplicated by loading a small program
into Metascope, entering the above code, setting the A0
register to an address inside the first hunk, and ending
in 3/7/B/F, and pressing rAmiga-S to single step.

Because no memory transfers or word data is transferred
to odd addresses using a 68000 CPU, all programs written
for the 68000 will run okay even with this problem.
However programs written for the 68020/030 CPU's which
don't use word alligned data will not work properly on
these machines.

Tests on the Amiga 3000 and Commodore 2630 board did not
exibit this problem.  I would like to hear from owners
of other brands of 68020/030 boards to establish the
extent of the problem. (eg. Hurricane board, GVP, etc.)

=================================================================
David Campbell                     [email protected]
Undergrad Ba.App.Sc - Comp
Queensland University of Technology
=================================================================


T.RTitleUserPersonal
Name
DateLines