1/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nsc/gfx/release.txt,v 1.1 2002/12/10 15:12:27 alanh Exp $ */ 2Durango Release Notes 3Version 2.49.01 4Win98/WinXP/DOS/Linux 5January 29, 2003 6 7----------------------------------------------------------------------------- 8PRODUCT INFORMATION 9----------------------------------------------------------------------------- 10Durango is a graphics/video software support package designed to assist in the 11development of display drivers and embedded applications. The core of this 12package is source code that performs most of the graphics related 13functionality for the National Semiconductor ® Geode family of products. 14Development time for new software is reduced by using these routines to access 15the hardware. 16 17----------------------------------------------------------------------------- 18INSTALLATION INSTRUCTIONS 19----------------------------------------------------------------------------- 20Download the file to a directory. Modify and include the file durango.c 21according to the needs of the application. 22 23----------------------------------------------------------------------------- 24REVISION HISTORY 25----------------------------------------------------------------------------- 26 2702/05/03 Version 2.49.02 28 29----------------------------------------------------------------------------- 30FUNCTIONAL CHANGES 31----------------------------------------------------------------------------- 32 33* Fixed GX2 left clipping for 4:2:0 video. 34 35============================================================================= 36 3701/29/03 Version 2.49.01 38 39----------------------------------------------------------------------------- 40FUNCTIONAL CHANGES 41----------------------------------------------------------------------------- 42 43* Removed unused variable in CS5530 video code. 44* Changed max supported pixel clock for SCx2xx to 157.5 MHz. 45 46============================================================================= 47 4801/10/03 Version 2.49.00 49 50----------------------------------------------------------------------------- 51FUNCTIONAL CHANGES 52----------------------------------------------------------------------------- 53 54* Added extra wait loop when polling for CRC completion. 55* Removed code that sets the pitch offsets for 4:2:0 video within 56 gfx_set_video_size. 57* Fixed panning code to work with any display pitch. 58* Added code to clear the PLL bypass bit when setting the dot PLL. 59* Fixed panning code so cursor never disappears when panning. 60* Changed GX2 delay loops to do a volatile register read to prevent 61 the entire delay loop from being discarded by a compiler. 62 63============================================================================= 64 6511/19/02 Version 2.47.00 66 67----------------------------------------------------------------------------- 68FUNCTIONAL CHANGES 69----------------------------------------------------------------------------- 70 71* Updated gfx2_* routines to use a signed stride. 72* SW workaround for issue #134.8 - Strange horizontal lines appearing while 73 drawing lines. 74* Implemented gfx_set_video_left_crop for CS5530 75* Updated sub carrier reset values for NTSC and PAL. 76 77============================================================================= 78 7908/29/02 Version 2.45.00 80 81----------------------------------------------------------------------------- 82FUNCTIONAL CHANGES 83----------------------------------------------------------------------------- 84 85* Modified gfx_set_cursor_position to use cursor position when panning and not adjust 86 using hotspots. 87* Added new routine gfx_get_refreshrate_from_mode. 88* Added gfx_text_blt routine. 89* Added gfx_get_tv_display_mode_frequency routine. 90* Added gfx_get_frequency_from_refreshrate routine. 91* Added gfx_set_video_cursor_enable routine. 92* Fixed Linux compilation warnings. 93* Updated modeset code to clear panning variables. 94* Added panel timings for 1600x1200 desktops. 95* Removed wait for VBlank when panning using cursor routines. 96 97============================================================================= 98 9907/12/02 Version 2.43.03 100 101----------------------------------------------------------------------------- 102FUNCTIONAL CHANGES 103----------------------------------------------------------------------------- 104 105* Modified gfx_get_display_mode to support 56 Hz modes. 106* Added support for 8K pitch when setting a true color mode above 1024x768 107* Added a byte-packed option to gfx2_mono_expand_blt 108* Fix for Carmel D2 alpha blending issue. 109* Added typecasts for proper compilation. 110* Fixed CS5535 MBIU address. 111* Added new GX2 routine, gfx2_text_blt 112* Added MSR implementations for Linux. 113* Further optimized default GX1 string macros. 114* Added new routine, gfx_set_panel_present to allow panning without adjusting panel timings. 115* Added assembly macros for 32-bit Windows applications. 116 117============================================================================= 118 11903/21/02 Version 2.41.02 120 121----------------------------------------------------------------------------- 122FUNCTIONAL CHANGES 123----------------------------------------------------------------------------- 124 125* Optimized GX2 Bitmap-to-screen BLTs by using a 2-line offscreen scratch area. 126* Fixed a bug in GX2 monochrome bitmap BLTs. 127* Fixed gfx_get_clock_frequency for GX2 2.0 128* Added 56 Hz support to gfx_get_clock_frequency 129* Changed gfx_set_compression_size to subtract header size 130* Changed gfx_get_compression_size to add header size 131 132============================================================================= 133 13403/04/02 Version 2.39.01 135 136----------------------------------------------------------------------------- 137FUNCTIONAL CHANGES 138----------------------------------------------------------------------------- 139 140* Added support for CS5535 MSRs. 141* Fixed a bug in monochrome bitmap BLTs. 142* Added support for 32-bit CRC mechanism in GX2 2.0. 143* First official GX2 release. 144* Added support for new Dot PLL mechanism in GX2 2.0 145* Added support for Carmel D1.1 and D2. 146 147============================================================================= 148 14901/24/02 Version 2.37.00 150 151----------------------------------------------------------------------------- 152FUNCTIONAL CHANGES 153----------------------------------------------------------------------------- 154 155* Changed gfx_get_clock_frequency, gfx_get_cursor_offset and gfx_get_display_offset 156 to be outside the GFX_READ_ROUTINES flag. 157* Modified the modeset code to set higher FIFO priority levels for high bandwidth 158 modes. 159* Init code no longer returns Redcloud ID when no chip detected. 160* Added fix for Redcloud 1.x rev ID 161* New GX2 PLL settings - updates to the 14 MHz table and a new 48 MHz table. 162* Optimized all bitmap-to-screen routines. Optimizations include new macros that 163 allow correct operation in a 16-bit environment. 164* 3K cache is now assumed to be the default scratchpad configuration. 165* gfx_get_frame_buffer_size for GX2 no longer uses a VGA register. This allows 166 correct operation even with an external VGA card present in the system. 167* Added support for 1152x864 desktop resolution on a flat panel. 168* Added 24BPP support for large display modes. 169* Modified gfx_set_video_scale such that an identity scale is now default. 170* Modifed flat panel modeset code to dynamically determine the size of the mode table. 171* Added support for Carmel Rev D2. 172 173============================================================================= 174 17510/22/01 Version 2.35.01 176 177----------------------------------------------------------------------------- 178FUNCTIONAL CHANGES 179----------------------------------------------------------------------------- 180 181* New release notes format. 182* Added fix for SC1200 issue #813 (TVOut field indication is reversed. 183* Added check for invalid values in video upscale. 184* Fixed compilation warnings and run-time errors under DOS. 185* Added new macros for word I/O. 186* Optimized VSAII MSR code to used DWORD I/O. 187* Fixed SoftVG base PCI base addresses. 188* Several fixes to Redcloud API found during bringup. 189* Modified Durango to support 4-pixel video alignment for Redcloud. 190* Added the functions gfx_test_vip_overflow, gfx_get_vip_line, 191 gfx_set_decoder_luminance_filter, gfx_set_tv_YV_delya and 192 gfx_set_tv_field_status_invert. 193* Added support for Carmel D1 revision ID. 194* Moved gfx_get_vip_base and gfx_get_vbi_pitch outside of the 195 GXF_READ_ROUTINES flag. 196* Minor fixes to saa7114.c and gfx_set_tv-enable. 197* Added don't care option in gfx_set_vip_base. 198* Added fix for SC1200 issue #1121 (VIP FIFO bus request threshold bit 199 is inverted. 200 201============================================================================= 202 20307/31/01 Version 2.33.02 204 205----------------------------------------------------------------------------- 206FUNCTIONAL CHANGES 207----------------------------------------------------------------------------- 208* Completed implementation of vertical downscaling support for GX2. 209* Added a method to lock the display controller timings. 210* Added support for SC1200 Rev C. 211* Small modifications to gfx_set_video_format. 212* Removed unused and unimplemented I2C functions. 213* Changes to prevent errors and compiler warnings in DOS. 214* Updated headers to include both BSD and GPL licenses. 215 216============================================================================= 217 21806/08/01 Version 2.31.00 219 220----------------------------------------------------------------------------- 221FUNCTIONAL CHANGES 222----------------------------------------------------------------------------- 223* Added new routines to manipulate vertical video downscaling on GX2. 224* Minor fixes to the function gfx_read_window_crc. 225* Implemented all init routines for GX2 except gfx_get_core_freq. 226* Added support for 27MHz reference frequency to the GX2 PLL. 227* Added new function gfx_get_softvga_active. 228* Minor changes to the function sc1200_reset_video. 229* Fixed some minor compiler warnings. 230 231============================================================================= 232 23304/25/01 Version 2.29.00 234 235----------------------------------------------------------------------------- 236FUNCTIONAL CHANGES 237----------------------------------------------------------------------------- 238* Disabled all CSC when setting an RGB video format. 239* Modified sc1200_set_video_size to add 2 to the window height. 240* Modified code to support the accelerator and cursor in pixel and line double modes. 241* Modified gfx_get_core_freq to be a dynamic API routine. 242* Added the function gfx_read_window_crc for GX2. 243* Added init routine gfx_get_graphics_register_base for GX2. 244* Added new macros to access the scratchpad RAM to support Win2K and WinME. 245* Added mew macros to access the GP registers for GX2. 246 247============================================================================= 248 24904/06/01 Version 2.27.00 250 251----------------------------------------------------------------------------- 252FUNCTIONAL CHANGES 253----------------------------------------------------------------------------- 254* Added new TV read functions: 255 gfx_get_tv_enable, gfx_get_tv_output, gfx_get_tv_display_mode, 256 gfx_get_tv_mode_count, gfx_is_tv_display_mode_supported 257* Added new function gfx_set_display_bpp. 258* Added new function gfx_get_frame_buffer_line_size. 259* Modified gfx_set_vbi_base to accept pure physical addresses instead of offsets. 260* Implemented video and display controller routines for GX2. 261* Modified some initialization routines to be dynamic. 262* Created new API extension for GX2 MSR accesses. 263* Added new icon routines for GX2. 264* Modified gfx_set_tv_display to preserve current bpp. 265* Minor modifications to gfx_set_tv_format, gfx_set_video_palette and 266 gfx_set_video_palette entry. 267* Added support for 1152x864@75Hz 268 269============================================================================= 270 27103/12/01 Version 2.25.00 272 273----------------------------------------------------------------------------- 274FUNCTIONAL CHANGES 275----------------------------------------------------------------------------- 276* Adapted new revision format system. 277* Synchronized with NSTA Durango. Updated support for all SC1200 features. 278* Added support for 640x400 as well as emulated VGA modes. 279* Added new routines to access single palette color entries. 280* Added new routine to return the maximum supported pixel clock. 281* Added new routine gfx_set_crt_enable to manipulate the CRT display logic. 282* Added new rendering routine gfx_color_pattern_fill. 283* Added 4:2:0 and RGB video format support for CS5530 and SC1200. 284* Modified code to allow operation under DOS. 285 286============================================================================= 287 28807/21/00 Version 2.04 289 290----------------------------------------------------------------------------- 291FUNCTIONAL CHANGES 292----------------------------------------------------------------------------- 293* Verified Xfree86 driver version 1.1.4 under Linux, and ce v2.3. 294* Merged sc1200 changes. 295* Added routines to support the query of current display mode. 296* Added functions gfx_enable_softvga, dfx_disable_softvga. 297* Added code optimization in rendering loops to use 32 bit writes where possible. 298* Added gfx_is_mode_supported to query if given mode supported by the h/w. 299* Added Flat panel support, realy testing with panel done only for 800x600. 300* Removed subtraction of 16 from gfx_set_compression_size. 301* Added version.h file to reflect the version of the durango used. 302 303============================================================================= 304 30503/03/00 Version 2.01 306 307----------------------------------------------------------------------------- 308FUNCTIONAL CHANGES 309----------------------------------------------------------------------------- 310* Verified Xfree86 driver version 1.1 under FreeBSD and Linux. 311* Added automatic detection of BLT buffer bases in "gfx_set_bpp" routine. 312* Fixed improper setting of VGA attrubute controller index register. 313* Moved "gfx_get_display_bpp" to always be included. 314* Moved "gfx_get_hactive" and "gfx_get_vactive" to always be included. 315* Clipped video source size if off bottom or right side. 316* Properly adjusted video offset if clipped on the top side. 317* Added "gfx_get_video_line_size" and "gfx_get_video_xclip" routines. 318 319============================================================================= 320 32102/21/00 Version 2.00 322 323----------------------------------------------------------------------------- 324FUNCTIONAL CHANGES 325----------------------------------------------------------------------------- 326* Added gfx_vga.c. 327* Added write to GP_BLIT_STATUS in "gfx_set_bpp" routine. 328* Verified alpha blending on SC1200. 329* Removed "gfx_set_blt_buffers" routine. 330 331============================================================================= 332 33302/09/00 Version 1.20 334 335----------------------------------------------------------------------------- 336FUNCTIONAL CHANGES 337----------------------------------------------------------------------------- 338* Verified display modes and graphics rendering on SC1200. 339* Updated PLL table for SC1200 to set modes. 340* DURANGO.C FILE CHANGE!: Modifed and added compiler definitions. 341* Split gfx_disp.c file into gu1_disp.c and gu2_disp.c 342* Split gfx_rndr.c file into gu1_rndr.c and gu2_rndr.c 343* Split gfx_vid.c file into vid_5530.c, vid_1400.c, and vid_1200.c 344* Split gfx_vip.c file into vip_1400.c and vip_1200.c 345* Split gfx_tv.c file into geode_tv.c and fs451_tv.c 346* Split gfx_i2c.c file into acc_i2c.c and gpio_i2c.c. 347* Split gfx_dcdr.c file to saa7114.c 348* Added GFX_READ_ROUTINES compiler definition. 349* Moved routines from gfx_read.c (no longer exists) to other files. 350* Abstracted display controller access in the video overlay routines. 351* Added routines to control display compression hardware. 352 353============================================================================= 354 35501/28/00 Version 1.13 356 357----------------------------------------------------------------------------- 358FUNCTIONAL CHANGES 359----------------------------------------------------------------------------- 360* Passes randomly generated rendering tests in Darwin for GXLV. 361* Fixed bug for large bitmap to screen BLTs (greater than 64K). 362* Fixed bug for pattern fills using solid source data for plane masks. 363 364============================================================================= 365 36601/14/00 Version 1.12 367 368----------------------------------------------------------------------------- 369FUNCTIONAL CHANGES 370----------------------------------------------------------------------------- 371* Added proper use of hotspot to gfx_set_cursor_position. 372* Fixed buffer size to handle all frame buffer start address alignments. 373* Added initial version of gfx_tv.c. 374 375============================================================================= 376 37701/07/00 Version 1.11 378 379----------------------------------------------------------------------------- 380FUNCTIONAL CHANGES 381----------------------------------------------------------------------------- 382* Fixed bug with transparent BLTs (loading transparent color into BB1). 383* Added definition of gfx_color_bitmap_to_screen_blt to gfx_rtns.h. 384* Added gfx_color_bitmap_to_screen_xblt (transparent bitmap to screen). 385 386============================================================================= 387 38812/21/99 Version 1.10 389 390----------------------------------------------------------------------------- 391FUNCTIONAL CHANGES 392----------------------------------------------------------------------------- 393* Added additional video decoder routines to gfx_dcdr.c. 394* Added VBI routines to gfx_vip.c. 395* Added alpha blending routines for SC1200 to gfx_vid.c 396 397============================================================================= 398 39910/01/99 Version 1.00 400 401----------------------------------------------------------------------------- 402FUNCTIONAL CHANGES 403----------------------------------------------------------------------------- 404* Added video port, video decoder, I2C, and hardware query rouines. 405* New files: gfx_vip.c, gfx_dcdr.c, gfx_i2c.c, gfx_read.c. 406 407============================================================================= 408 40908/27/99 Version 0.05 410 411----------------------------------------------------------------------------- 412FUNCTIONAL CHANGES 413----------------------------------------------------------------------------- 414* INTERFACE CHANGE: Changed "gfx_csptr[]" to "gfx_vidptr" and "gfx_vipptr". 415* Added "gfx_get_vid_register_base" and "gfx_get_vip_register_base". 416* Added initial PLL table for SC1400. 417* Verified mode set and video overlay routines work correctly on SC1400. 418* Updated initilization routines. 419* Added update of graphics engine in "gfx_set_display_pitch". 420 421============================================================================= 422 42308/20/99 Version 0.04 424 425----------------------------------------------------------------------------- 426FUNCTIONAL CHANGES 427----------------------------------------------------------------------------- 428* INTERFACE CHANGE: "gfx_load_*" routines changed to "gfx_set_*" for naming 429 consistency. The "gfx_text_glyph" routine was removed. 430* Added video overlay routines. 431* Added gfx_vid.c file. 432 433============================================================================= 434 43508/16/99 Version 0.03 436 437----------------------------------------------------------------------------- 438FUNCTIONAL CHANGES 439----------------------------------------------------------------------------- 440* INTERFACE CHANGE: Access to CS5530 now through separate pointer. Project 441 must declare and map the gfx_csptr[GFX_CSPTR_SIZE] variable. 442* Added durango.c file as template for main source file. 443* Added gfx_init.c file. 444 445============================================================================= 446 44708/04/99 Version 0.02 448 449----------------------------------------------------------------------------- 450FUNCTIONAL CHANGES 451----------------------------------------------------------------------------- 452* Additional modes in gfx_mode.h file. 453* Separated register definitions from gfx_defs.h into gfx_regs.h. 454 455============================================================================= 456 45707/30/99 Version 0.01 458 459----------------------------------------------------------------------------- 460FUNCTIONAL CHANGES 461----------------------------------------------------------------------------- 462* Initial release. 463----------------------------------------------------------------------------- 464 465