added dangerous-RAM-size defines for hw-bug workaround.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16202 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen 2006-02-02 15:53:37 +00:00
parent c5c8844557
commit 20b32cf501

View File

@ -5,7 +5,7 @@
Other authors:
Mark Watson;
Apsed;
Rudolf Cornelissen 10/2002-1/2006.
Rudolf Cornelissen 10/2002-2/2006.
*/
#ifndef DRIVERINTERFACE_H
@ -101,6 +101,38 @@ enum {
/* max. number of overlay buffers */
#define MAXBUFFERS 3
//-----------------------------------------------------------------------------------
/* safety byte-offset from end of cardRAM for preventing acceleration engine crashes
* caused by the existance of DMA engine command buffers in cardRAM and/or fifo
* channel engine command re-assigning on-the-fly */
/* pre-NV40 notes:
* - we need at least 70kB distance from the end of RAM for fifo-reassigning 'bug'
* (confirmed on a TNT1);
* - keep extra failsafe room to prevent malfunctioning apps from crashing engine. */
#define PRE_NV40_OFFSET 80 * 1024
/* NV40 and higher notes:
* - we need at least 416kB distance from the DMA command buffer:
* If you get too close to the DMA command buffer on NV40 and NV43 at least (both
* confirmed), the source DMA instance will mess-up for at least engine command
* NV_IMAGE_BLIT and NV12_IMAGE_BLIT;
* - we need at least ???kB distance from the end of RAM for fifo-reassigning 'bug'
* (fixme: unknown yet because fifo assignment switching isn't used here atm);
* - keep extra failsafe room to prevent malfunctioning apps from crashing engine. */
#define NV40_PLUS_OFFSET 512 * 1024
/* fifo re-assigning bug definition:
* if the fifo assignment is changed while at the same time card memory in the
* dangerous region is being accessed by some application, the engine will crash.
* This bug applies for both PIO and DMA mode acceleration! */
/* source-DMA instance bug definition:
* if card memory in the dangerous region is being accessed by some application while
* a DMA command buffer exists in the same memory (though in a different place),
* the engine will crash. */
//-----------------------------------------------------------------------------------
/* internal used info on overlay buffers */
typedef struct {
uint16 slopspace;