📄 pm3_regs.h
字号:
#define PM3ResetPickResult 0x8c20#define PM3RLEMask 0x8c48#define PM3RouterMode 0x8840#define PM3RStart 0x8780#define PM3S1Start 0x8400#define PM3aveLineStippleCounters 0x81c0#define PM3ScissorMaxXY 0x8190#define PM3ScissorMinXY 0x8188#define PM3ScissorMode 0x8180#define PM3ScissorModeAnd 0xabb0#define PM3ScissorModeOr 0xabb8#define PM3ScreenSize 0x8198#define PM3Security 0x8908#define PM3SetLogicalTexturePage 0xb360#define PM3SizeOfFramebuffer 0xb0a8#define PM3SStart 0x8388#define PM3StartXDom 0x8000#define PM3StartXSub 0x8010#define PM3StartY 0x8020/* ... */#define PM3SpanColorMask 0x8168#define PM3StencilMode 0x8988/* ... */#define PM3TailPhysicalPageAllocation0 0xb4a0#define PM3TailPhysicalPageAllocation1 0xb4a8#define PM3TailPhysicalPageAllocation2 0xb4b0#define PM3TailPhysicalPageAllocation3 0xb4b8/* ... */#define PM3TextureApplicationMode 0x8680#define PM3TextureApplicationModeAnd 0xac50#define PM3TextureApplicationModeOr 0xac58#define PM3TextureBaseAddr0 0x8500#define PM3TextureBaseAddr1 0x8508#define PM3TextureBaseAddr2 0x8510#define PM3TextureBaseAddr3 0x8518#define PM3TextureBaseAddr4 0x8520#define PM3TextureBaseAddr5 0x8528#define PM3TextureBaseAddr6 0x8530#define PM3TextureBaseAddr7 0x8538#define PM3TextureBaseAddr8 0x8540#define PM3TextureBaseAddr9 0x8548#define PM3TextureBaseAddr10 0x8550#define PM3TextureBaseAddr11 0x8558#define PM3TextureBaseAddr12 0x8560#define PM3TextureBaseAddr13 0x8568#define PM3TextureBaseAddr14 0x8570#define PM3TextureBaseAddr15 0x8578#define PM3TextureCacheControl 0x8490#define PM3TextureChromaLower0 0x84f0#define PM3TextureChromaLower1 0x8608#define PM3TextureChromaUpper0 0x84e8#define PM3TextureChromaUpper1 0x8600#define PM3TextureCompositeAlphaMode0 0xb310#define PM3TextureCompositeAlphaMode0And 0xb390#define PM3TextureCompositeAlphaMode0Or 0xb398#define PM3TextureCompositeAlphaMode1 0xb320#define PM3TextureCompositeAlphaMode1And 0xb3b0#define PM3TextureCompositeAlphaMode1Or 0xb3b8#define PM3TextureCompositeColorMode0 0xb308#define PM3TextureCompositeColorMode0And 0xb380#define PM3TextureCompositeColorMode0Or 0xb388#define PM3TextureCompositeColorMode1 0xb318#define PM3TextureCompositeColorMode1And 0xb3a0#define PM3TextureCompositeColorMode1Or 0xb3a8#define PM3TextureCompositeFactor0 0xb328#define PM3TextureCompositeFactor1 0xb330#define PM3TextureCompositeMode 0xb300#define PM3TextureCoordMode 0x8380#define PM3TextureCoordModeAnd 0xac20#define PM3TextureCoordModeOr 0xac28#define PM3TextureData 0x88e8/*#define PM3TextureDownloadControl 0x0108*/#define PM3TextureDownloadOffset 0x88f0#define PM3TextureEnvColor 0x8688#define PM3TextureFilterMode 0x84e0#define PM3TextureFilterModeAnd 0xad50#define PM3TextureFilterModeOr 0xad58#define PM3TextureIndexMode0 0xb338#define PM3TextureIndexMode0And 0xb3c0#define PM3TextureIndexMode0Or 0xb3c8#define PM3TextureIndexMode1 0xb340#define PM3TextureIndexMode1And 0xb3d0#define PM3TextureIndexMode1Or 0xb3d8#define PM3TextureLODBiasS 0x8450#define PM3TextureLODBiasT 0x8458/* ... */#define PM3TextureMapSize 0xb428#define PM3TextureMapWidth0 0x8580#define PM3TextureMapWidth1 0x8588 #define PM3TextureMapWidth_Width(w) ((w&0xfff)<<0) #define PM3TextureMapWidth_BorderLayout (1<<12) #define PM3TextureMapWidth_Layout_Linear (0<<13) #define PM3TextureMapWidth_Layout_Patch64 (1<<13) #define PM3TextureMapWidth_Layout_Patch32_2 (2<<13) #define PM3TextureMapWidth_Layout_Patch2 (3<<13) #define PM3TextureMapWidth_HostTexture (1<<15)#define PM3TextureReadMode0 0xb400#define PM3TextureReadMode0And 0xac30#define PM3TextureReadMode0Or 0xac38#define PM3TextureReadMode1 0xb408#define PM3TextureReadMode1And 0xad40#define PM3TextureReadMode1Or 0xad48#define PM3TouchLogicalPage 0xb370 #define PM3TouchLogicalPage_Page(p) (p&0xffff) #define PM3TouchLogicalPage_Count(c) ((c&0x3fff)<<16) #define PM3TouchLogicalPage_Mode(m) ((m&0x3)<<30)#define PM3TStart 0x83a0#define PM3UpdateLogicalTextureInfo 0xb368 #define PM3UpdateLogicalTextureInfo_Length(l) ((l)&0x1ff) #define PM3UpdateLogicalTextureInfo_MemoryPool(m) (((m)&0x3)<<9) #define PM3UpdateLogicalTextureInfo_VirtualHostPage (1<<11) #define PM3UpdateLogicalTextureInfo_HostPage(p) (((p)&0xfffff)<<12)/* ... */#define PM3WaitForCompletion 0x80b8#define PM3Window 0x8980 #define PM3Window_ForceLBUpdate (1<<3) #define PM3Window_LBUpdateSource (1<<4) #define PM3Window_FrameCount(c) (((c)&0xff)<<9) #define PM3Window_StencilFCP (1<<17) #define PM3Window_DepthFCP (1<<18) #define PM3Window_OverrideWriteFiltering (1<<19)#define PM3WindowAnd 0xab80#define PM3WindowOr 0xab88#define PM3WindowOrigin 0x81c8#define PM3XBias 0x9480#define PM3YBias 0x9488#define PM3YLimits 0x80a8#define PM3YUVMode 0x8f00#define PM3ZFogBias 0x86b8#define PM3ZStart 0xadd8#define PM3ZStartL 0x89b8#define PM3ZStartU 0x89b0/*********************************************** GLINT Permedia3 2D setup Unit ************************************************/#define PM3Config2D 0xb618 #define PM3Config2D_OpaqueSpan (1<<0) #define PM3Config2D_MultiRXBlit (1<<1) #define PM3Config2D_UserScissorEnable (1<<2) #define PM3Config2D_FBDestReadEnable (1<<3) #define PM3Config2D_AlphaBlendEnable (1<<4) #define PM3Config2D_DitherEnable (1<<5) #define PM3Config2D_ForegroundROPEnable (1<<6) #define PM3Config2D_ForegroundROP(rop) (((rop)&0xf)<<7) #define PM3Config2D_BackgroundROPEnable (1<<11) #define PM3Config2D_BackgroundROP(rop) (((rop)&0xf)<<12) #define PM3Config2D_UseConstantSource (1<<16) #define PM3Config2D_FBWriteEnable (1<<17) #define PM3Config2D_Blocking (1<<18) #define PM3Config2D_ExternalSourceData (1<<19) #define PM3Config2D_LUTModeEnable (1<<20)#define PM3DownloadGlyphwidth 0xb658 #define PM3DownloadGlyphwidth_GlyphWidth(gw) ((gw)&0xffff)#define PM3DownloadTarget 0xb650 #define PM3DownloadTarget_TagName(tag) ((tag)&0x1fff)#define PM3GlyphData 0xb660#define PM3GlyphPosition 0xb608 #define PM3GlyphPosition_XOffset(x) ((x)&0xffff) #define PM3GlyphPosition_YOffset(y) (((y)&0xffff)<<16)#define PM3Packed4Pixels 0xb668#define PM3Packed8Pixels 0xb630#define PM3Packed16Pixels 0xb638#define PM3RectanglePosition 0xb600 #define PM3RectanglePosition_XOffset(x) ((x)&0xffff) #define PM3RectanglePosition_YOffset(y) (((y)&0xffff)<<16)#define PM3Render2D 0xb640 #define PM3Render2D_Width(w) ((w)&0x0fff) #define PM3Render2D_Operation_Normal (0<<12) #define PM3Render2D_Operation_SyncOnHostData (1<<12) #define PM3Render2D_Operation_SyncOnBitMask (2<<12) #define PM3Render2D_Operation_PatchOrderRendering (3<<12) #define PM3Render2D_FBSourceReadEnable (1<<14) #define PM3Render2D_SpanOperation (1<<15) #define PM3Render2D_Height(h) (((h)&0x0fff)<<16) #define PM3Render2D_XPositive (1<<28) #define PM3Render2D_YPositive (1<<29) #define PM3Render2D_AreaStippleEnable (1<<30) #define PM3Render2D_TextureEnable (1<<31)#define PM3Render2DGlyph 0xb648 #define PM3Render2DGlyph_Width(w) ((w)&0x7f) #define PM3Render2DGlyph_Height(h) (((h)&0x7f)<<7) #define PM3Render2DGlyph_XOffset(x) (((x)&0x1ff)<<14) #define PM3Render2DGlyph_YOffset(y) (((y)&0x1ff)<<23)#define PM3RenderPatchOffset 0xb610 #define PM3RenderPatchOffset_XOffset(x) ((x)&0xffff) #define PM3RenderPatchOffset_YOffset(y) (((y)&0xffff)<<16)#define PM3RLCount 0xb678 #define PM3RLCount_Count(c) ((c)&0x0fff)#define PM3RLData 0xb670/*********************************************** GLINT Permedia3 Alias Register ************************************************/#define PM3FillBackgroundColor 0x8330#define PM3FillConfig2D0 0x8338#define PM3FillConfig2D1 0x8360 #define PM3FillConfig2D_OpaqueSpan 1<<0 #define PM3FillConfig2D_MultiRXBlit 1<<1 #define PM3FillConfig2D_UserScissorEnable 1<<2 #define PM3FillConfig2D_FBDestReadEnable 1<<3 #define PM3FillConfig2D_AlphaBlendEnable 1<<4 #define PM3FillConfig2D_DitherEnable 1<<5 #define PM3FillConfig2D_ForegroundROPEnable 1<<6 #define PM3FillConfig2D_ForegroundROP(rop) (((rop)&0xf)<<7) #define PM3FillConfig2D_BackgroundROPEnable 1<<11 #define PM3FillConfig2D_BackgroundROP(rop) (((rop)&0xf)<<12) #define PM3FillConfig2D_UseConstantSource 1<<16 #define PM3FillConfig2D_FBWriteEnable 1<<17 #define PM3FillConfig2D_Blocking 1<<18 #define PM3FillConfig2D_ExternalSourceData 1<<19 #define PM3FillConfig2D_LUTModeEnable 1<<20#define PM3FillFBDestReadBufferAddr 0x8310#define PM3FillFBSourceReadBufferAddr 0x8308#define PM3FillFBSourceReadBufferOffset 0x8340 #define PM3FillFBSourceReadBufferOffset_XOffset(x) ((x)&0xffff) #define PM3FillFBSourceReadBufferOffset_YOffset(y) (((y)&0xffff)<<16)#define PM3FillFBWriteBufferAddr 0x8300#define PM3FillForegroundColor0 0x8328#define PM3FillForegroundColor1 0x8358#define PM3FillGlyphPosition 0x8368 #define PM3FillGlyphPosition_XOffset(x) ((x)&0xffff) #define PM3FillGlyphPosition_YOffset(y) (((y)&0xffff)<<16)#define PM3FillRectanglePosition 0x8348 #define PM3FillRectanglePosition_XOffset(x) ((x)&0xffff) #define PM3FillRectanglePosition_YOffset(y) (((y)&0xffff)<<16)/*********************************************** GLINT Permedia3 Macros ************************************************/#ifdef __alpha__#define mem_barrier() asm volatile ("mb" : : : "memory")#define write_mem_barrier() asm volatile ("wmb" : : : "memory")#else#define mem_barrier()#define write_mem_barrier()#endifextern void *pm3_reg_base;#define WRITE_REG(offset,val) \ do { \ write_mem_barrier(); \ *(volatile uint32_t *) \ (((unsigned char *)(pm3_reg_base)) + offset) = (val); \ } while(0)static inline uint32_tREAD_REG(uint32_t offset){ mem_barrier(); return *(volatile uint32_t *)(((unsigned char *)(pm3_reg_base)) + offset);}#define UPDATE_SET_REG(offset,val) \ { \ unsigned long temp; \ temp = READ_REG(offset); \ WRITE_REG(offset,temp|(val)); \ }#define UPDATE_CLEAR_REG(offset,val) \ { \ unsigned long temp; \ temp = READ_REG(offset); \ WRITE_REG(offset,temp&(~(val))); \ }#define WAIT_FIFO(n) while(READ_REG(PM3InFIFOSpace) < (n))#define RAMDAC_DELAY(x) do { \ int delay = x; \ unsigned char tmp; \ while(delay--){tmp = READ_REG(PM3InFIFOSpace);}; \} while(0)#define SLOW_WRITE_REG(v,r) \do{ \ RAMDAC_DELAY(5); \ WRITE_REG(v,r); \ RAMDAC_DELAY(5); \}while(0)#define RAMDAC_SET_INDEX(index) \{ \ SLOW_WRITE_REG (PM3RD_IndexHigh,(index>>8)&0xff); \ SLOW_WRITE_REG (PM3RD_IndexLow,index&0xff); \}#define RAMDAC_SET_REG(index, data) \{ \ RAMDAC_SET_INDEX(index); \ SLOW_WRITE_REG(PM3RD_IndexedData, data); \}#define RAMDAC_GET_REG(index, temp) \{ \ RAMDAC_SET_INDEX(index); \ temp = READ_REG(PM3RD_IndexedData); \}#endif /* _PM3_REG_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -