rovclock-0.6e/0000755000175000001440000000000010357036402012227 5ustar haswusersrovclock-0.6e/COPYING0000644000175000001440000004311010254410761013261 0ustar haswusers GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. rovclock-0.6e/Makefile0000644000175000001440000000040010254410761013661 0ustar haswusers# Makefile for rovclock # PROG = rovclock SRCS = rovclock.c CLEANFILES = $(PROG) CC = gcc DEFS = CFLAGS = -O2 -Wall -Wstrict-prototypes $(DEFS) all: $(PROG) $(PROG): $(SRCS) $(CC) $(CFLAGS) -o $@ $^ $(SRCS): $(HDRS) clean: $(RM) $(CLEANFILES) rovclock-0.6e/README0000644000175000001440000000124610357036271013116 0ustar haswusersRadeon overlocking utility version 0.6e It tries to detect the reference clock (xtal) from the video BIOS, if this doesn't work you can specify it manually. Try 1432 or 2950 if the default value of 2700 does not show the correct frequency when using -i: rovclock -x 1432 -i Cards reported to work: Radeon 7500 Radeon 8500 Radeon 9000 Radeon 9100 Radeon 9500 (Pro) Radeon 9550 Radeon 9600 Mobility FireGL T2 Mobility Radeon 9600 M10 Radeon 9700 (Pro) Radeon X800XL Use the memory timing options with care and login via ssh to make changes. So you can revert them back if your screen corrupts: rovclock -t tRcdRD:7 Any comments, patches, bug reports to: se.witt@gmx.net rovclock-0.6e/pci.h0000644000175000001440000004624210260757150013166 0ustar haswusers #ifndef PCI_H #define PCI_H 1 #ifdef __cplusplus #define EXTERNC extern "C" #else #define EXTERNC #endif /* * Under PCI, each device has 256 bytes of configuration address space, * of which the first 64 bytes are standardized as follows: */ #define PCI_VENDOR_ID 0x00 /* 16 bits */ #define PCI_DEVICE_ID 0x02 /* 16 bits */ #define PCI_COMMAND 0x04 /* 16 bits */ #define PCI_COMMAND_IO 0x1 /* Enable response in I/O space */ #define PCI_COMMAND_MEMORY 0x2 /* Enable response in Memory space */ #define PCI_COMMAND_MASTER 0x4 /* Enable bus mastering */ #define PCI_COMMAND_SPECIAL 0x8 /* Enable response to special cycles */ #define PCI_COMMAND_INVALIDATE 0x10 /* Use memory write and invalidate */ #define PCI_COMMAND_VGA_PALETTE 0x20 /* Enable palette snooping */ #define PCI_COMMAND_PARITY 0x40 /* Enable parity checking */ #define PCI_COMMAND_WAIT 0x80 /* Enable address/data stepping */ #define PCI_COMMAND_SERR 0x100 /* Enable SERR */ #define PCI_COMMAND_FAST_BACK 0x200 /* Enable back-to-back writes */ #define PCI_STATUS 0x06 /* 16 bits */ #define PCI_STATUS_CAP_LIST 0x10 /* Support Capability List */ #define PCI_STATUS_66MHZ 0x20 /* Support 66 Mhz PCI 2.1 bus */ #define PCI_STATUS_UDF 0x40 /* Support User Definable Features [obsolete] */ #define PCI_STATUS_FAST_BACK 0x80 /* Accept fast-back to back */ #define PCI_STATUS_PARITY 0x100 /* Detected parity error */ #define PCI_STATUS_DEVSEL_MASK 0x600 /* DEVSEL timing */ #define PCI_STATUS_DEVSEL_FAST 0x000 #define PCI_STATUS_DEVSEL_MEDIUM 0x200 #define PCI_STATUS_DEVSEL_SLOW 0x400 #define PCI_STATUS_SIG_TARGET_ABORT 0x800 /* Set on target abort */ #define PCI_STATUS_REC_TARGET_ABORT 0x1000 /* Master ack of " */ #define PCI_STATUS_REC_MASTER_ABORT 0x2000 /* Set on master abort */ #define PCI_STATUS_SIG_SYSTEM_ERROR 0x4000 /* Set when we drive SERR */ #define PCI_STATUS_DETECTED_PARITY 0x8000 /* Set on parity error */ #define PCI_CLASS_REVISION 0x08 /* High 24 bits are class, low 8 revision */ #define PCI_REVISION_ID 0x08 /* Revision ID */ #define PCI_CLASS_PROG 0x09 /* Reg. Level Programming Interface */ #define PCI_CLASS_DEVICE 0x0a /* Device class */ #define PCI_CACHE_LINE_SIZE 0x0c /* 8 bits */ #define PCI_LATENCY_TIMER 0x0d /* 8 bits */ #define PCI_HEADER_TYPE 0x0e /* 8 bits */ #define PCI_HEADER_TYPE_NORMAL 0 #define PCI_HEADER_TYPE_BRIDGE 1 #define PCI_HEADER_TYPE_CARDBUS 2 #define PCI_BIST 0x0f /* 8 bits */ #define PCI_BIST_CODE_MASK 0x0f /* Return result */ #define PCI_BIST_START 0x40 /* 1 to start BIST, 2 secs or less */ #define PCI_BIST_CAPABLE 0x80 /* 1 if BIST capable */ /* * Base addresses specify locations in memory or I/O space. * Decoded size can be determined by writing a value of * 0xffffffff to the register, and reading it back. Only * 1 bits are decoded. */ #define PCI_BASE_ADDRESS_0 0x10 /* 32 bits */ #define PCI_BASE_ADDRESS_1 0x14 /* 32 bits [htype 0,1 only] */ #define PCI_BASE_ADDRESS_2 0x18 /* 32 bits [htype 0 only] */ #define PCI_BASE_ADDRESS_3 0x1c /* 32 bits */ #define PCI_BASE_ADDRESS_4 0x20 /* 32 bits */ #define PCI_BASE_ADDRESS_5 0x24 /* 32 bits */ #define PCI_BASE_ADDRESS_SPACE 0x01 /* 0 = memory, 1 = I/O */ #define PCI_BASE_ADDRESS_SPACE_IO 0x01 #define PCI_BASE_ADDRESS_SPACE_MEMORY 0x00 #define PCI_BASE_ADDRESS_MEM_TYPE_MASK 0x06 #define PCI_BASE_ADDRESS_MEM_TYPE_32 0x00 /* 32 bit address */ #define PCI_BASE_ADDRESS_MEM_TYPE_1M 0x02 /* Below 1M [obsolete] */ #define PCI_BASE_ADDRESS_MEM_TYPE_64 0x04 /* 64 bit address */ #define PCI_BASE_ADDRESS_MEM_PREFETCH 0x08 /* prefetchable? */ #define PCI_BASE_ADDRESS_MEM_MASK (~0x0fUL) #define PCI_BASE_ADDRESS_IO_MASK (~0x03UL) /* bit 1 is reserved if address_space = 1 */ /* Header type 0 (normal devices) */ #define PCI_CARDBUS_CIS 0x28 #define PCI_SUBSYSTEM_VENDOR_ID 0x2c #define PCI_SUBSYSTEM_ID 0x2e #define PCI_ROM_ADDRESS 0x30 /* Bits 31..11 are address, 10..1 reserved */ #define PCI_ROM_ADDRESS_ENABLE 0x01 #define PCI_ROM_ADDRESS_MASK (~0x7ffUL) #define PCI_CAPABILITY_LIST 0x34 /* Offset of first capability list entry */ /* 0x35-0x3b are reserved */ #define PCI_INTERRUPT_LINE 0x3c /* 8 bits */ #define PCI_INTERRUPT_PIN 0x3d /* 8 bits */ #define PCI_MIN_GNT 0x3e /* 8 bits */ #define PCI_MAX_LAT 0x3f /* 8 bits */ /* Header type 1 (PCI-to-PCI bridges) */ #define PCI_PRIMARY_BUS 0x18 /* Primary bus number */ #define PCI_SECONDARY_BUS 0x19 /* Secondary bus number */ #define PCI_SUBORDINATE_BUS 0x1a /* Highest bus number behind the bridge */ #define PCI_SEC_LATENCY_TIMER 0x1b /* Latency timer for secondary interface */ #define PCI_IO_BASE 0x1c /* I/O range behind the bridge */ #define PCI_IO_LIMIT 0x1d #define PCI_IO_RANGE_TYPE_MASK 0x0f /* I/O bridging type */ #define PCI_IO_RANGE_TYPE_16 0x00 #define PCI_IO_RANGE_TYPE_32 0x01 #define PCI_IO_RANGE_MASK ~0x0f #define PCI_SEC_STATUS 0x1e /* Secondary status register, only bit 14 used */ #define PCI_MEMORY_BASE 0x20 /* Memory range behind */ #define PCI_MEMORY_LIMIT 0x22 #define PCI_MEMORY_RANGE_TYPE_MASK 0x0f #define PCI_MEMORY_RANGE_MASK ~0x0f #define PCI_PREF_MEMORY_BASE 0x24 /* Prefetchable memory range behind */ #define PCI_PREF_MEMORY_LIMIT 0x26 #define PCI_PREF_RANGE_TYPE_MASK 0x0f #define PCI_PREF_RANGE_TYPE_32 0x00 #define PCI_PREF_RANGE_TYPE_64 0x01 #define PCI_PREF_RANGE_MASK ~0x0f #define PCI_PREF_BASE_UPPER32 0x28 /* Upper half of prefetchable memory range */ #define PCI_PREF_LIMIT_UPPER32 0x2c #define PCI_IO_BASE_UPPER16 0x30 /* Upper half of I/O addresses */ #define PCI_IO_LIMIT_UPPER16 0x32 /* 0x34 same as for htype 0 */ /* 0x35-0x3b is reserved */ #define PCI_ROM_ADDRESS1 0x38 /* Same as PCI_ROM_ADDRESS, but for htype 1 */ /* 0x3c-0x3d are same as for htype 0 */ #define PCI_BRIDGE_CONTROL 0x3e #define PCI_BRIDGE_CTL_PARITY 0x01 /* Enable parity detection on secondary interface */ #define PCI_BRIDGE_CTL_SERR 0x02 /* The same for SERR forwarding */ #define PCI_BRIDGE_CTL_NO_ISA 0x04 /* Disable bridging of ISA ports */ #define PCI_BRIDGE_CTL_VGA 0x08 /* Forward VGA addresses */ #define PCI_BRIDGE_CTL_MASTER_ABORT 0x20 /* Report master aborts */ #define PCI_BRIDGE_CTL_BUS_RESET 0x40 /* Secondary bus reset */ #define PCI_BRIDGE_CTL_FAST_BACK 0x80 /* Fast Back2Back enabled on secondary interface */ /* Header type 2 (CardBus bridges) */ /* 0x14-0x15 reserved */ #define PCI_CB_SEC_STATUS 0x16 /* Secondary status */ #define PCI_CB_PRIMARY_BUS 0x18 /* PCI bus number */ #define PCI_CB_CARD_BUS 0x19 /* CardBus bus number */ #define PCI_CB_SUBORDINATE_BUS 0x1a /* Subordinate bus number */ #define PCI_CB_LATENCY_TIMER 0x1b /* CardBus latency timer */ #define PCI_CB_MEMORY_BASE_0 0x1c #define PCI_CB_MEMORY_LIMIT_0 0x20 #define PCI_CB_MEMORY_BASE_1 0x24 #define PCI_CB_MEMORY_LIMIT_1 0x28 #define PCI_CB_IO_BASE_0 0x2c #define PCI_CB_IO_BASE_0_HI 0x2e #define PCI_CB_IO_LIMIT_0 0x30 #define PCI_CB_IO_LIMIT_0_HI 0x32 #define PCI_CB_IO_BASE_1 0x34 #define PCI_CB_IO_BASE_1_HI 0x36 #define PCI_CB_IO_LIMIT_1 0x38 #define PCI_CB_IO_LIMIT_1_HI 0x3a #define PCI_CB_IO_RANGE_MASK ~0x03 /* 0x3c-0x3d are same as for htype 0 */ #define PCI_CB_BRIDGE_CONTROL 0x3e #define PCI_CB_BRIDGE_CTL_PARITY 0x01 /* Similar to standard bridge control register */ #define PCI_CB_BRIDGE_CTL_SERR 0x02 #define PCI_CB_BRIDGE_CTL_ISA 0x04 #define PCI_CB_BRIDGE_CTL_VGA 0x08 #define PCI_CB_BRIDGE_CTL_MASTER_ABORT 0x20 #define PCI_CB_BRIDGE_CTL_CB_RESET 0x40 /* CardBus reset */ #define PCI_CB_BRIDGE_CTL_16BIT_INT 0x80 /* Enable interrupt for 16-bit cards */ #define PCI_CB_BRIDGE_CTL_PREFETCH_MEM0 0x100 /* Prefetch enable for both memory regions */ #define PCI_CB_BRIDGE_CTL_PREFETCH_MEM1 0x200 #define PCI_CB_BRIDGE_CTL_POST_WRITES 0x400 #define PCI_CB_SUBSYSTEM_VENDOR_ID 0x40 #define PCI_CB_SUBSYSTEM_ID 0x42 #define PCI_CB_LEGACY_MODE_BASE 0x44 /* 16-bit PC Card legacy mode base address (ExCa) */ /* 0x48-0x7f reserved */ /* Capability lists */ #define PCI_CAP_LIST_ID 0 /* Capability ID */ #define PCI_CAP_ID_PM 0x01 /* Power Management */ #define PCI_CAP_ID_AGP 0x02 /* Accelerated Graphics Port */ #define PCI_CAP_ID_VPD 0x03 /* Vital Product Data */ #define PCI_CAP_ID_SLOTID 0x04 /* Slot Identification */ #define PCI_CAP_ID_MSI 0x05 /* Message Signalled Interrupts */ #define PCI_CAP_ID_CHSWP 0x06 /* CompactPCI HotSwap */ #define PCI_CAP_ID_PCIX 0x07 /* PCI-X */ #define PCI_CAP_LIST_NEXT 1 /* Next capability in the list */ #define PCI_CAP_FLAGS 2 /* Capability defined flags (16 bits) */ #define PCI_CAP_SIZEOF 4 /* Power Management Registers */ #define PCI_PM_CAP_VER_MASK 0x0007 /* Version (2=PM1.1) */ #define PCI_PM_CAP_PME_CLOCK 0x0008 /* Clock required for PME generation */ #define PCI_PM_CAP_DSI 0x0020 /* Device specific initialization required */ #define PCI_PM_CAP_AUX_C_MASK 0x01c0 /* Maximum aux current required in D3cold */ #define PCI_PM_CAP_D1 0x0200 /* D1 power state support */ #define PCI_PM_CAP_D2 0x0400 /* D2 power state support */ #define PCI_PM_CAP_PME_D0 0x0800 /* PME can be asserted from D0 */ #define PCI_PM_CAP_PME_D1 0x1000 /* PME can be asserted from D1 */ #define PCI_PM_CAP_PME_D2 0x2000 /* PME can be asserted from D2 */ #define PCI_PM_CAP_PME_D3_HOT 0x4000 /* PME can be asserted from D3hot */ #define PCI_PM_CAP_PME_D3_COLD 0x8000 /* PME can be asserted from D3cold */ #define PCI_PM_CTRL 4 /* PM control and status register */ #define PCI_PM_CTRL_STATE_MASK 0x0003 /* Current power state (D0 to D3) */ #define PCI_PM_CTRL_PME_ENABLE 0x0100 /* PME pin enable */ #define PCI_PM_CTRL_DATA_SEL_MASK 0x1e00 /* PM table data index */ #define PCI_PM_CTRL_DATA_SCALE_MASK 0x6000 /* PM table data scaling factor */ #define PCI_PM_CTRL_PME_STATUS 0x8000 /* PME pin status */ #define PCI_PM_PPB_EXTENSIONS 6 /* PPB support extensions */ #define PCI_PM_PPB_B2_B3 0x40 /* If bridge enters D3hot, bus enters: 0=B3, 1=B2 */ #define PCI_PM_BPCC_ENABLE 0x80 /* Secondary bus is power managed */ #define PCI_PM_DATA_REGISTER 7 /* PM table contents read here */ #define PCI_PM_SIZEOF 8 /* AGP registers */ #define PCI_AGP_VERSION 2 /* BCD version number */ #define PCI_AGP_RFU 3 /* Rest of capability flags */ #define PCI_AGP_STATUS 4 /* Status register */ #define PCI_AGP_STATUS_RQ_MASK 0xff000000 /* Maximum number of requests - 1 */ #define PCI_AGP_STATUS_SBA 0x0200 /* Sideband addressing supported */ #define PCI_AGP_STATUS_64BIT 0x0020 /* 64-bit addressing supported */ #define PCI_AGP_STATUS_FW 0x0010 /* FW transfers supported */ #define PCI_AGP_STATUS_RATE4 0x0004 /* 4x transfer rate supported */ #define PCI_AGP_STATUS_RATE2 0x0002 /* 2x transfer rate supported */ #define PCI_AGP_STATUS_RATE1 0x0001 /* 1x transfer rate supported */ #define PCI_AGP_COMMAND 8 /* Control register */ #define PCI_AGP_COMMAND_RQ_MASK 0xff000000 /* Master: Maximum number of requests */ #define PCI_AGP_COMMAND_SBA 0x0200 /* Sideband addressing enabled */ #define PCI_AGP_COMMAND_AGP 0x0100 /* Allow processing of AGP transactions */ #define PCI_AGP_COMMAND_64BIT 0x0020 /* Allow processing of 64-bit addresses */ #define PCI_AGP_COMMAND_FW 0x0010 /* Force FW transfers */ #define PCI_AGP_COMMAND_RATE4 0x0004 /* Use 4x rate */ #define PCI_AGP_COMMAND_RATE2 0x0002 /* Use 2x rate */ #define PCI_AGP_COMMAND_RATE1 0x0001 /* Use 1x rate */ #define PCI_AGP_SIZEOF 12 /* Slot Identification */ #define PCI_SID_ESR 2 /* Expansion Slot Register */ #define PCI_SID_ESR_NSLOTS 0x1f /* Number of expansion slots available */ #define PCI_SID_ESR_FIC 0x20 /* First In Chassis Flag */ #define PCI_SID_CHASSIS_NR 3 /* Chassis Number */ /* Message Signalled Interrupts registers */ #define PCI_MSI_FLAGS 2 /* Various flags */ #define PCI_MSI_FLAGS_64BIT 0x80 /* 64-bit addresses allowed */ #define PCI_MSI_FLAGS_QSIZE 0x70 /* Message queue size configured */ #define PCI_MSI_FLAGS_QMASK 0x0e /* Maximum queue size available */ #define PCI_MSI_FLAGS_ENABLE 0x01 /* MSI feature enabled */ #define PCI_MSI_RFU 3 /* Rest of capability flags */ #define PCI_MSI_ADDRESS_LO 4 /* Lower 32 bits */ #define PCI_MSI_ADDRESS_HI 8 /* Upper 32 bits (if PCI_MSI_FLAGS_64BIT set) */ #define PCI_MSI_DATA_32 8 /* 16 bits of data for 32-bit devices */ #define PCI_MSI_DATA_64 12 /* 16 bits of data for 64-bit devices */ /* PCI-X */ #define PCI_PCIX_COMMAND 2 /* Command register offset */ #define PCI_PCIX_COMMAND_DPERE 0x0001 /* Data Parity Error Recover Enable */ #define PCI_PCIX_COMMAND_ERO 0x0002 /* Enable Relaxed Ordering */ #define PCI_PCIX_COMMAND_MAX_MEM_READ_BYTE_COUNT 0x000c /* Maximum Memory Read Byte Count */ #define PCI_PCIX_COMMAND_MAX_OUTSTANDING_SPLIT_TRANS 0x0070 #define PCI_PCIX_COMMAND_RESERVED 0xf80 #define PCI_PCIX_STATUS 4 /* Status register offset */ #define PCI_PCIX_STATUS_FUNCTION 0x00000007 #define PCI_PCIX_STATUS_DEVICE 0x000000f8 #define PCI_PCIX_STATUS_BUS 0x0000ff00 #define PCI_PCIX_STATUS_64BIT 0x00010000 #define PCI_PCIX_STATUS_133MHZ 0x00020000 #define PCI_PCIX_STATUS_SC_DISCARDED 0x00040000 /* Split Completion Discarded */ #define PCI_PCIX_STATUS_UNEXPECTED_SC 0x00080000 /* Unexpected Split Completion */ #define PCI_PCIX_STATUS_DEVICE_COMPLEXITY 0x00100000 /* 0 = simple device, 1 = bridge device */ #define PCI_PCIX_STATUS_DESIGNED_MAX_MEM_READ_BYTE_COUNT 0x00600000 /* 0 = 512 bytes, 1 = 1024, 2 = 2048, 3 = 4096 */ #define PCI_PCIX_STATUS_DESIGNED_MAX_OUTSTANDING_SPLIT_TRANS 0x03800000 #define PCI_PCIX_STATUS_DESIGNED_MAX_CUMULATIVE_READ_SIZE 0x1c000000 #define PCI_PCIX_STATUS_RCVD_SC_ERR_MESS 0x20000000 /* Received Split Completion Error Message */ #define PCI_PCIX_STATUS_RESERVED 0xc0000000 #define PCI_PCIX_SIZEOF 4 /* PCI-X Bridges */ #define PCI_PCIX_BRIDGE_SEC_STATUS 2 /* Secondary bus status register offset */ #define PCI_PCIX_BRIDGE_SEC_STATUS_64BIT 0x0001 #define PCI_PCIX_BRIDGE_SEC_STATUS_133MHZ 0x0002 #define PCI_PCIX_BRIDGE_SEC_STATUS_SC_DISCARDED 0x0004 /* Split Completion Discarded on secondary bus */ #define PCI_PCIX_BRIDGE_SEC_STATUS_UNEXPECTED_SC 0x0008 /* Unexpected Split Completion on secondary bus */ #define PCI_PCIX_BRIDGE_SEC_STATUS_SC_OVERRUN 0x0010 /* Split Completion Overrun on secondary bus */ #define PCI_PCIX_BRIDGE_SEC_STATUS_SPLIT_REQUEST_DELAYED 0x0020 #define PCI_PCIX_BRIDGE_SEC_STATUS_CLOCK_FREQ 0x01c0 #define PCI_PCIX_BRIDGE_SEC_STATUS_RESERVED 0xfe00 #define PCI_PCIX_BRIDGE_STATUS 4 /* Primary bus status register offset */ #define PCI_PCIX_BRIDGE_STATUS_FUNCTION 0x00000007 #define PCI_PCIX_BRIDGE_STATUS_DEVICE 0x000000f8 #define PCI_PCIX_BRIDGE_STATUS_BUS 0x0000ff00 #define PCI_PCIX_BRIDGE_STATUS_64BIT 0x00010000 #define PCI_PCIX_BRIDGE_STATUS_133MHZ 0x00020000 #define PCI_PCIX_BRIDGE_STATUS_SC_DISCARDED 0x00040000 /* Split Completion Discarded */ #define PCI_PCIX_BRIDGE_STATUS_UNEXPECTED_SC 0x00080000 /* Unexpected Split Completion */ #define PCI_PCIX_BRIDGE_STATUS_SC_OVERRUN 0x00100000 /* Split Completion Overrun */ #define PCI_PCIX_BRIDGE_STATUS_SPLIT_REQUEST_DELAYED 0x00200000 #define PCI_PCIX_BRIDGE_STATUS_RESERVED 0xffc00000 #define PCI_PCIX_BRIDGE_UPSTREAM_SPLIT_TRANS_CTRL 8 /* Upstream Split Transaction Register offset */ #define PCI_PCIX_BRIDGE_DOWNSTREAM_SPLIT_TRANS_CTRL 12 /* Downstream Split Transaction Register offset */ #define PCI_PCIX_BRIDGE_STR_CAPACITY 0x0000ffff #define PCI_PCIX_BRIDGE_STR_COMMITMENT_LIMIT 0xffff0000 #define PCI_PCIX_BRIDGE_SIZEOF 12 /* * The PCI interface treats multi-function devices as independent * devices. The slot/function address of each device is encoded * in a single byte as follows: * * 7:3 = slot * 2:0 = function */ #define PCI_DEVFN(slot,func) ((((slot) & 0x1f) << 3) | ((func) & 0x07)) #define PCI_SLOT(devfn) (((devfn) >> 3) & 0x1f) #define PCI_FUNC(devfn) ((devfn) & 0x07) /* Device classes and subclasses */ #define PCI_CLASS_NOT_DEFINED 0x0000 #define PCI_CLASS_NOT_DEFINED_VGA 0x0001 #define PCI_BASE_CLASS_STORAGE 0x01 #define PCI_CLASS_STORAGE_SCSI 0x0100 #define PCI_CLASS_STORAGE_IDE 0x0101 #define PCI_CLASS_STORAGE_FLOPPY 0x0102 #define PCI_CLASS_STORAGE_IPI 0x0103 #define PCI_CLASS_STORAGE_RAID 0x0104 #define PCI_CLASS_STORAGE_OTHER 0x0180 #define PCI_BASE_CLASS_NETWORK 0x02 #define PCI_CLASS_NETWORK_ETHERNET 0x0200 #define PCI_CLASS_NETWORK_TOKEN_RING 0x0201 #define PCI_CLASS_NETWORK_FDDI 0x0202 #define PCI_CLASS_NETWORK_ATM 0x0203 #define PCI_CLASS_NETWORK_OTHER 0x0280 #define PCI_BASE_CLASS_DISPLAY 0x03 #define PCI_CLASS_DISPLAY_VGA 0x0300 #define PCI_CLASS_DISPLAY_XGA 0x0301 #define PCI_CLASS_DISPLAY_OTHER 0x0380 #define PCI_BASE_CLASS_MULTIMEDIA 0x04 #define PCI_CLASS_MULTIMEDIA_VIDEO 0x0400 #define PCI_CLASS_MULTIMEDIA_AUDIO 0x0401 #define PCI_CLASS_MULTIMEDIA_OTHER 0x0480 #define PCI_BASE_CLASS_MEMORY 0x05 #define PCI_CLASS_MEMORY_RAM 0x0500 #define PCI_CLASS_MEMORY_FLASH 0x0501 #define PCI_CLASS_MEMORY_OTHER 0x0580 #define PCI_BASE_CLASS_BRIDGE 0x06 #define PCI_CLASS_BRIDGE_HOST 0x0600 #define PCI_CLASS_BRIDGE_ISA 0x0601 #define PCI_CLASS_BRIDGE_EISA 0x0602 #define PCI_CLASS_BRIDGE_MC 0x0603 #define PCI_CLASS_BRIDGE_PCI 0x0604 #define PCI_CLASS_BRIDGE_PCMCIA 0x0605 #define PCI_CLASS_BRIDGE_NUBUS 0x0606 #define PCI_CLASS_BRIDGE_CARDBUS 0x0607 #define PCI_CLASS_BRIDGE_OTHER 0x0680 #define PCI_BASE_CLASS_COMMUNICATION 0x07 #define PCI_CLASS_COMMUNICATION_SERIAL 0x0700 #define PCI_CLASS_COMMUNICATION_PARALLEL 0x0701 #define PCI_CLASS_COMMUNICATION_OTHER 0x0780 #define PCI_BASE_CLASS_SYSTEM 0x08 #define PCI_CLASS_SYSTEM_PIC 0x0800 #define PCI_CLASS_SYSTEM_DMA 0x0801 #define PCI_CLASS_SYSTEM_TIMER 0x0802 #define PCI_CLASS_SYSTEM_RTC 0x0803 #define PCI_CLASS_SYSTEM_OTHER 0x0880 #define PCI_BASE_CLASS_INPUT 0x09 #define PCI_CLASS_INPUT_KEYBOARD 0x0900 #define PCI_CLASS_INPUT_PEN 0x0901 #define PCI_CLASS_INPUT_MOUSE 0x0902 #define PCI_CLASS_INPUT_OTHER 0x0980 #define PCI_BASE_CLASS_DOCKING 0x0a #define PCI_CLASS_DOCKING_GENERIC 0x0a00 #define PCI_CLASS_DOCKING_OTHER 0x0a01 #define PCI_BASE_CLASS_PROCESSOR 0x0b #define PCI_CLASS_PROCESSOR_386 0x0b00 #define PCI_CLASS_PROCESSOR_486 0x0b01 #define PCI_CLASS_PROCESSOR_PENTIUM 0x0b02 #define PCI_CLASS_PROCESSOR_ALPHA 0x0b10 #define PCI_CLASS_PROCESSOR_POWERPC 0x0b20 #define PCI_CLASS_PROCESSOR_CO 0x0b40 #define PCI_BASE_CLASS_SERIAL 0x0c #define PCI_CLASS_SERIAL_FIREWIRE 0x0c00 #define PCI_CLASS_SERIAL_ACCESS 0x0c01 #define PCI_CLASS_SERIAL_SSA 0x0c02 #define PCI_CLASS_SERIAL_USB 0x0c03 #define PCI_CLASS_SERIAL_FIBER 0x0c04 #define PCI_CLASS_OTHERS 0xff #endif rovclock-0.6e/radeon.h0000644000175000001440000033261710254410761013664 0ustar haswusers#ifndef _RADEON_H #define _RADEON_H #define RADEON_REGSIZE 0x4000 #define MM_INDEX 0x0000 #define MM_DATA 0x0004 #define BUS_CNTL 0x0030 #define HI_STAT 0x004C #define BUS_CNTL1 0x0034 #define I2C_CNTL_1 0x0094 #define CONFIG_CNTL 0x00E0 #define CONFIG_MEMSIZE 0x00F8 #define CONFIG_APER_0_BASE 0x0100 #define CONFIG_APER_1_BASE 0x0104 #define CONFIG_APER_SIZE 0x0108 #define CONFIG_REG_1_BASE 0x010C #define CONFIG_REG_APER_SIZE 0x0110 #define PAD_AGPINPUT_DELAY 0x0164 #define PAD_CTLR_STRENGTH 0x0168 #define PAD_CTLR_UPDATE 0x016C #define PAD_CTLR_MISC 0x0aa0 #define AGP_CNTL 0x0174 #define BM_STATUS 0x0160 #define CAP0_TRIG_CNTL 0x0950 #define CAP1_TRIG_CNTL 0x09c0 #define VIPH_CONTROL 0x0C40 #define VENDOR_ID 0x0F00 #define DEVICE_ID 0x0F02 #define COMMAND 0x0F04 #define STATUS 0x0F06 #define REVISION_ID 0x0F08 #define REGPROG_INF 0x0F09 #define SUB_CLASS 0x0F0A #define BASE_CODE 0x0F0B #define CACHE_LINE 0x0F0C #define LATENCY 0x0F0D #define HEADER 0x0F0E #define BIST 0x0F0F #define REG_MEM_BASE 0x0F10 #define REG_IO_BASE 0x0F14 #define REG_REG_BASE 0x0F18 #define ADAPTER_ID 0x0F2C #define BIOS_ROM 0x0F30 #define CAPABILITIES_PTR 0x0F34 #define INTERRUPT_LINE 0x0F3C #define INTERRUPT_PIN 0x0F3D #define MIN_GRANT 0x0F3E #define MAX_LATENCY 0x0F3F #define ADAPTER_ID_W 0x0F4C #define PMI_CAP_ID 0x0F50 #define PMI_NXT_CAP_PTR 0x0F51 #define PMI_PMC_REG 0x0F52 #define PM_STATUS 0x0F54 #define PMI_DATA 0x0F57 #define AGP_CAP_ID 0x0F58 #define AGP_STATUS 0x0F5C #define AGP_COMMAND 0x0F60 #define AIC_CTRL 0x01D0 #define AIC_STAT 0x01D4 #define AIC_PT_BASE 0x01D8 #define AIC_LO_ADDR 0x01DC #define AIC_HI_ADDR 0x01E0 #define AIC_TLB_ADDR 0x01E4 #define AIC_TLB_DATA 0x01E8 #define DAC_CNTL 0x0058 #define DAC_CNTL2 0x007c #define CRTC_GEN_CNTL 0x0050 #define MEM_CNTL 0x0140 #define MC_CNTL 0x0140 #define EXT_MEM_CNTL 0x0144 #define MC_TIMING_CNTL 0x0144 #define MC_AGP_LOCATION 0x014C #define MEM_IO_CNTL_A0 0x0178 #define MEM_REFRESH_CNTL 0x0178 #define MEM_INIT_LATENCY_TIMER 0x0154 #define MC_INIT_GFX_LAT_TIMER 0x0154 #define MEM_SDRAM_MODE_REG 0x0158 #define AGP_BASE 0x0170 #define MEM_IO_CNTL_A1 0x017C #define MC_READ_CNTL_AB 0x017C #define MEM_IO_CNTL_B0 0x0180 #define MC_INIT_MISC_LAT_TIMER 0x0180 #define MEM_IO_CNTL_B1 0x0184 #define MC_IOPAD_CNTL 0x0184 #define MC_DEBUG 0x0188 #define MC_STATUS 0x0150 #define MEM_IO_OE_CNTL 0x018C #define MC_CHIP_IO_OE_CNTL_AB 0x018C #define MC_FB_LOCATION 0x0148 #define HOST_PATH_CNTL 0x0130 #define MEM_VGA_WP_SEL 0x0038 #define MEM_VGA_RP_SEL 0x003C #define HDP_DEBUG 0x0138 #define SW_SEMAPHORE 0x013C #define CRTC2_GEN_CNTL 0x03f8 #define CRTC2_DISPLAY_BASE_ADDR 0x033c #define SURFACE_CNTL 0x0B00 #define SURFACE0_LOWER_BOUND 0x0B04 #define SURFACE1_LOWER_BOUND 0x0B14 #define SURFACE2_LOWER_BOUND 0x0B24 #define SURFACE3_LOWER_BOUND 0x0B34 #define SURFACE4_LOWER_BOUND 0x0B44 #define SURFACE5_LOWER_BOUND 0x0B54 #define SURFACE6_LOWER_BOUND 0x0B64 #define SURFACE7_LOWER_BOUND 0x0B74 #define SURFACE0_UPPER_BOUND 0x0B08 #define SURFACE1_UPPER_BOUND 0x0B18 #define SURFACE2_UPPER_BOUND 0x0B28 #define SURFACE3_UPPER_BOUND 0x0B38 #define SURFACE4_UPPER_BOUND 0x0B48 #define SURFACE5_UPPER_BOUND 0x0B58 #define SURFACE6_UPPER_BOUND 0x0B68 #define SURFACE7_UPPER_BOUND 0x0B78 #define SURFACE0_INFO 0x0B0C #define SURFACE1_INFO 0x0B1C #define SURFACE2_INFO 0x0B2C #define SURFACE3_INFO 0x0B3C #define SURFACE4_INFO 0x0B4C #define SURFACE5_INFO 0x0B5C #define SURFACE6_INFO 0x0B6C #define SURFACE7_INFO 0x0B7C #define SURFACE_ACCESS_FLAGS 0x0BF8 #define SURFACE_ACCESS_CLR 0x0BFC #define GEN_INT_CNTL 0x0040 #define GEN_INT_STATUS 0x0044 #define CRTC_EXT_CNTL 0x0054 #define RB3D_CNTL 0x1C3C #define WAIT_UNTIL 0x1720 #define ISYNC_CNTL 0x1724 #define RBBM_GUICNTL 0x172C #define RBBM_STATUS 0x0E40 #define RBBM_STATUS_alt_1 0x1740 #define RBBM_CNTL 0x00EC #define RBBM_CNTL_alt_1 0x0E44 #define RBBM_SOFT_RESET 0x00F0 #define RBBM_SOFT_RESET_alt_1 0x0E48 #define NQWAIT_UNTIL 0x0E50 #define RBBM_DEBUG 0x0E6C #define RBBM_CMDFIFO_ADDR 0x0E70 #define RBBM_CMDFIFO_DATAL 0x0E74 #define RBBM_CMDFIFO_DATAH 0x0E78 #define RBBM_CMDFIFO_STAT 0x0E7C #define CRTC_STATUS 0x005C #define GPIO_VGA_DDC 0x0060 #define GPIO_DVI_DDC 0x0064 #define GPIO_MONID 0x0068 #define GPIO_CRT2_DDC 0x006c #define PALETTE_INDEX 0x00B0 #define PALETTE_DATA 0x00B4 #define PALETTE_30_DATA 0x00B8 #define CRTC_H_TOTAL_DISP 0x0200 #define CRTC_H_SYNC_STRT_WID 0x0204 #define CRTC_V_TOTAL_DISP 0x0208 #define CRTC_V_SYNC_STRT_WID 0x020C #define CRTC_VLINE_CRNT_VLINE 0x0210 #define CRTC_CRNT_FRAME 0x0214 #define CRTC_GUI_TRIG_VLINE 0x0218 #define CRTC_DEBUG 0x021C #define CRTC_OFFSET_RIGHT 0x0220 #define CRTC_OFFSET 0x0224 #define CRTC_OFFSET_CNTL 0x0228 #define CRTC_PITCH 0x022C #define OVR_CLR 0x0230 #define OVR_WID_LEFT_RIGHT 0x0234 #define OVR_WID_TOP_BOTTOM 0x0238 #define DISPLAY_BASE_ADDR 0x023C #define SNAPSHOT_VH_COUNTS 0x0240 #define SNAPSHOT_F_COUNT 0x0244 #define N_VIF_COUNT 0x0248 #define SNAPSHOT_VIF_COUNT 0x024C #define FP_CRTC_H_TOTAL_DISP 0x0250 #define FP_CRTC_V_TOTAL_DISP 0x0254 #define CRT_CRTC_H_SYNC_STRT_WID 0x0258 #define CRT_CRTC_V_SYNC_STRT_WID 0x025C #define CUR_OFFSET 0x0260 #define CUR_HORZ_VERT_POSN 0x0264 #define CUR_HORZ_VERT_OFF 0x0268 #define CUR_CLR0 0x026C #define CUR_CLR1 0x0270 #define FP_HORZ_VERT_ACTIVE 0x0278 #define CRTC_MORE_CNTL 0x027C #define CRTC_H_CUTOFF_ACTIVE_EN (1<<4) #define CRTC_V_CUTOFF_ACTIVE_EN (1<<5) #define DAC_EXT_CNTL 0x0280 #define FP_GEN_CNTL 0x0284 #define FP_HORZ_STRETCH 0x028C #define FP_VERT_STRETCH 0x0290 #define FP_H_SYNC_STRT_WID 0x02C4 #define FP_V_SYNC_STRT_WID 0x02C8 #define AUX_WINDOW_HORZ_CNTL 0x02D8 #define AUX_WINDOW_VERT_CNTL 0x02DC //#define DDA_CONFIG 0x02e0 //#define DDA_ON_OFF 0x02e4 #define DVI_I2C_CNTL_1 0x02e4 #define GRPH_BUFFER_CNTL 0x02F0 #define GRPH2_BUFFER_CNTL 0x03F0 #define VGA_BUFFER_CNTL 0x02F4 #define OV0_Y_X_START 0x0400 #define OV0_Y_X_END 0x0404 #define OV0_PIPELINE_CNTL 0x0408 #define OV0_REG_LOAD_CNTL 0x0410 #define OV0_SCALE_CNTL 0x0420 #define OV0_V_INC 0x0424 #define OV0_P1_V_ACCUM_INIT 0x0428 #define OV0_P23_V_ACCUM_INIT 0x042C #define OV0_P1_BLANK_LINES_AT_TOP 0x0430 #define OV0_P23_BLANK_LINES_AT_TOP 0x0434 #define OV0_BASE_ADDR 0x043C #define OV0_VID_BUF0_BASE_ADRS 0x0440 #define OV0_VID_BUF1_BASE_ADRS 0x0444 #define OV0_VID_BUF2_BASE_ADRS 0x0448 #define OV0_VID_BUF3_BASE_ADRS 0x044C #define OV0_VID_BUF4_BASE_ADRS 0x0450 #define OV0_VID_BUF5_BASE_ADRS 0x0454 #define OV0_VID_BUF_PITCH0_VALUE 0x0460 #define OV0_VID_BUF_PITCH1_VALUE 0x0464 #define OV0_AUTO_FLIP_CNTRL 0x0470 #define OV0_DEINTERLACE_PATTERN 0x0474 #define OV0_SUBMIT_HISTORY 0x0478 #define OV0_H_INC 0x0480 #define OV0_STEP_BY 0x0484 #define OV0_P1_H_ACCUM_INIT 0x0488 #define OV0_P23_H_ACCUM_INIT 0x048C #define OV0_P1_X_START_END 0x0494 #define OV0_P2_X_START_END 0x0498 #define OV0_P3_X_START_END 0x049C #define OV0_FILTER_CNTL 0x04A0 #define OV0_FOUR_TAP_COEF_0 0x04B0 #define OV0_FOUR_TAP_COEF_1 0x04B4 #define OV0_FOUR_TAP_COEF_2 0x04B8 #define OV0_FOUR_TAP_COEF_3 0x04BC #define OV0_FOUR_TAP_COEF_4 0x04C0 #define OV0_FLAG_CNTRL 0x04DC #define OV0_SLICE_CNTL 0x04E0 #define OV0_VID_KEY_CLR_LOW 0x04E4 #define OV0_VID_KEY_CLR_HIGH 0x04E8 #define OV0_GRPH_KEY_CLR_LOW 0x04EC #define OV0_GRPH_KEY_CLR_HIGH 0x04F0 #define OV0_KEY_CNTL 0x04F4 #define OV0_TEST 0x04F8 #define SUBPIC_CNTL 0x0540 #define SUBPIC_DEFCOLCON 0x0544 #define SUBPIC_Y_X_START 0x054C #define SUBPIC_Y_X_END 0x0550 #define SUBPIC_V_INC 0x0554 #define SUBPIC_H_INC 0x0558 #define SUBPIC_BUF0_OFFSET 0x055C #define SUBPIC_BUF1_OFFSET 0x0560 #define SUBPIC_LC0_OFFSET 0x0564 #define SUBPIC_LC1_OFFSET 0x0568 #define SUBPIC_PITCH 0x056C #define SUBPIC_BTN_HLI_COLCON 0x0570 #define SUBPIC_BTN_HLI_Y_X_START 0x0574 #define SUBPIC_BTN_HLI_Y_X_END 0x0578 #define SUBPIC_PALETTE_INDEX 0x057C #define SUBPIC_PALETTE_DATA 0x0580 #define SUBPIC_H_ACCUM_INIT 0x0584 #define SUBPIC_V_ACCUM_INIT 0x0588 #define DISP_MISC_CNTL 0x0D00 #define DAC_MACRO_CNTL 0x0D04 #define DISP_PWR_MAN 0x0D08 #define DISP_TEST_DEBUG_CNTL 0x0D10 #define DISP_HW_DEBUG 0x0D14 #define DAC_CRC_SIG1 0x0D18 #define DAC_CRC_SIG2 0x0D1C #define OV0_LIN_TRANS_A 0x0D20 #define OV0_LIN_TRANS_B 0x0D24 #define OV0_LIN_TRANS_C 0x0D28 #define OV0_LIN_TRANS_D 0x0D2C #define OV0_LIN_TRANS_E 0x0D30 #define OV0_LIN_TRANS_F 0x0D34 #define OV0_GAMMA_0_F 0x0D40 #define OV0_GAMMA_10_1F 0x0D44 #define OV0_GAMMA_20_3F 0x0D48 #define OV0_GAMMA_40_7F 0x0D4C #define OV0_GAMMA_380_3BF 0x0D50 #define OV0_GAMMA_3C0_3FF 0x0D54 #define DISP_MERGE_CNTL 0x0D60 #define DISP_OUTPUT_CNTL 0x0D64 #define DISP_LIN_TRANS_GRPH_A 0x0D80 #define DISP_LIN_TRANS_GRPH_B 0x0D84 #define DISP_LIN_TRANS_GRPH_C 0x0D88 #define DISP_LIN_TRANS_GRPH_D 0x0D8C #define DISP_LIN_TRANS_GRPH_E 0x0D90 #define DISP_LIN_TRANS_GRPH_F 0x0D94 #define DISP_LIN_TRANS_VID_A 0x0D98 #define DISP_LIN_TRANS_VID_B 0x0D9C #define DISP_LIN_TRANS_VID_C 0x0DA0 #define DISP_LIN_TRANS_VID_D 0x0DA4 #define DISP_LIN_TRANS_VID_E 0x0DA8 #define DISP_LIN_TRANS_VID_F 0x0DAC #define RMX_HORZ_FILTER_0TAP_COEF 0x0DB0 #define RMX_HORZ_FILTER_1TAP_COEF 0x0DB4 #define RMX_HORZ_FILTER_2TAP_COEF 0x0DB8 #define RMX_HORZ_PHASE 0x0DBC #define DAC_EMBEDDED_SYNC_CNTL 0x0DC0 #define DAC_BROAD_PULSE 0x0DC4 #define DAC_SKEW_CLKS 0x0DC8 #define DAC_INCR 0x0DCC #define DAC_NEG_SYNC_LEVEL 0x0DD0 #define DAC_POS_SYNC_LEVEL 0x0DD4 #define DAC_BLANK_LEVEL 0x0DD8 #define CLOCK_CNTL_INDEX 0x0008 #define CLOCK_CNTL_DATA 0x000C #define CP_RB_CNTL 0x0704 #define CP_RB_BASE 0x0700 #define CP_RB_RPTR_ADDR 0x070C #define CP_RB_RPTR 0x0710 #define CP_RB_WPTR 0x0714 #define CP_RB_WPTR_DELAY 0x0718 #define CP_IB_BASE 0x0738 #define CP_IB_BUFSZ 0x073C #define SCRATCH_REG0 0x15E0 #define GUI_SCRATCH_REG0 0x15E0 #define SCRATCH_REG1 0x15E4 #define GUI_SCRATCH_REG1 0x15E4 #define SCRATCH_REG2 0x15E8 #define GUI_SCRATCH_REG2 0x15E8 #define SCRATCH_REG3 0x15EC #define GUI_SCRATCH_REG3 0x15EC #define SCRATCH_REG4 0x15F0 #define GUI_SCRATCH_REG4 0x15F0 #define SCRATCH_REG5 0x15F4 #define GUI_SCRATCH_REG5 0x15F4 #define SCRATCH_UMSK 0x0770 #define SCRATCH_ADDR 0x0774 #define DP_BRUSH_FRGD_CLR 0x147C #define DP_BRUSH_BKGD_CLR 0x1478 #define DST_LINE_START 0x1600 #define DST_LINE_END 0x1604 #define SRC_OFFSET 0x15AC #define SRC_PITCH 0x15B0 #define SRC_TILE 0x1704 #define SRC_PITCH_OFFSET 0x1428 #define SRC_X 0x1414 #define SRC_Y 0x1418 #define SRC_X_Y 0x1590 #define SRC_Y_X 0x1434 #define DST_Y_X 0x1438 #define DST_WIDTH_HEIGHT 0x1598 #define DST_HEIGHT_WIDTH 0x143c #define DST_OFFSET 0x1404 #define SRC_CLUT_ADDRESS 0x1780 #define SRC_CLUT_DATA 0x1784 #define SRC_CLUT_DATA_RD 0x1788 #define HOST_DATA0 0x17C0 #define HOST_DATA1 0x17C4 #define HOST_DATA2 0x17C8 #define HOST_DATA3 0x17CC #define HOST_DATA4 0x17D0 #define HOST_DATA5 0x17D4 #define HOST_DATA6 0x17D8 #define HOST_DATA7 0x17DC #define HOST_DATA_LAST 0x17E0 #define DP_SRC_ENDIAN 0x15D4 #define DP_SRC_FRGD_CLR 0x15D8 #define DP_SRC_BKGD_CLR 0x15DC #define SC_LEFT 0x1640 #define SC_RIGHT 0x1644 #define SC_TOP 0x1648 #define SC_BOTTOM 0x164C #define SRC_SC_RIGHT 0x1654 #define SRC_SC_BOTTOM 0x165C #define DP_CNTL 0x16C0 #define DP_CNTL_XDIR_YDIR_YMAJOR 0x16D0 #define DP_DATATYPE 0x16C4 #define DP_MIX 0x16C8 #define DP_WRITE_MSK 0x16CC #define DP_XOP 0x17F8 #define CLR_CMP_CLR_SRC 0x15C4 #define CLR_CMP_CLR_DST 0x15C8 #define CLR_CMP_CNTL 0x15C0 #define CLR_CMP_MSK 0x15CC #define DSTCACHE_MODE 0x1710 #define DSTCACHE_CTLSTAT 0x1714 #define DEFAULT_PITCH_OFFSET 0x16E0 #define DEFAULT_SC_BOTTOM_RIGHT 0x16E8 #define DEFAULT_SC_TOP_LEFT 0x16EC #define SRC_PITCH_OFFSET 0x1428 #define DST_PITCH_OFFSET 0x142C #define DP_GUI_MASTER_CNTL 0x146C #define SC_TOP_LEFT 0x16EC #define SC_BOTTOM_RIGHT 0x16F0 #define SRC_SC_BOTTOM_RIGHT 0x16F4 #define RB2D_DSTCACHE_MODE 0x3428 #define RB2D_DSTCACHE_CTLSTAT 0x342C #define LVDS_GEN_CNTL 0x02d0 #define LVDS_PLL_CNTL 0x02d4 #define FP2_GEN_CNTL 0x0288 #define TMDS_CNTL 0x0294 #define TMDS_CRC 0x02a0 #define TMDS_TRANSMITTER_CNTL 0x02a4 #define MPP_TB_CONFIG 0x01c0 #define PAMAC0_DLY_CNTL 0x0a94 #define PAMAC1_DLY_CNTL 0x0a98 #define PAMAC2_DLY_CNTL 0x0a9c #define FW_CNTL 0x0118 #define FCP_CNTL 0x0910 #define VGA_DDA_ON_OFF 0x02ec #define TV_MASTER_CNTL 0x0800 //#define BASE_CODE 0x0f0b #define BIOS_0_SCRATCH 0x0010 #define BIOS_1_SCRATCH 0x0014 #define BIOS_2_SCRATCH 0x0018 #define BIOS_3_SCRATCH 0x001c #define BIOS_4_SCRATCH 0x0020 #define BIOS_5_SCRATCH 0x0024 #define BIOS_6_SCRATCH 0x0028 #define BIOS_7_SCRATCH 0x002c #define HDP_SOFT_RESET (1 << 26) #define TV_DAC_CNTL 0x088c #define GPIOPAD_MASK 0x0198 #define GPIOPAD_A 0x019c #define GPIOPAD_EN 0x01a0 #define GPIOPAD_Y 0x01a4 #define ZV_LCDPAD_MASK 0x01a8 #define ZV_LCDPAD_A 0x01ac #define ZV_LCDPAD_EN 0x01b0 #define ZV_LCDPAD_Y 0x01b4 /* PLL Registers */ #define CLK_PIN_CNTL 0x0001 #define PPLL_CNTL 0x0002 #define PPLL_REF_DIV 0x0003 #define PPLL_DIV_0 0x0004 #define PPLL_DIV_1 0x0005 #define PPLL_DIV_2 0x0006 #define PPLL_DIV_3 0x0007 #define VCLK_ECP_CNTL 0x0008 #define HTOTAL_CNTL 0x0009 #define M_SPLL_REF_FB_DIV 0x000a #define AGP_PLL_CNTL 0x000b #define SPLL_CNTL 0x000c #define SCLK_CNTL 0x000d #define MPLL_CNTL 0x000e #define MDLL_CKO 0x000f #define MDLL_RDCKA 0x0010 #define MCLK_CNTL 0x0012 #define AGP_PLL_CNTL 0x000b #define PLL_TEST_CNTL 0x0013 #define CLK_PWRMGT_CNTL 0x0014 #define PLL_PWRMGT_CNTL 0x0015 #define MCLK_MISC 0x001f #define P2PLL_CNTL 0x002a #define P2PLL_REF_DIV 0x002b #define PIXCLKS_CNTL 0x002d #define SCLK_MORE_CNTL 0x0035 /* MCLK_CNTL bit constants */ #define FORCEON_MCLKA (1 << 16) #define FORCEON_MCLKB (1 << 17) #define FORCEON_YCLKA (1 << 18) #define FORCEON_YCLKB (1 << 19) #define FORCEON_MC (1 << 20) #define FORCEON_AIC (1 << 21) /* SCLK_CNTL bit constants */ #define DYN_STOP_LAT_MASK 0x00007ff8 #define CP_MAX_DYN_STOP_LAT 0x0008 #define SCLK_FORCEON_MASK 0xffff8000 /* SCLK_MORE_CNTL bit constants */ #define SCLK_MORE_FORCEON 0x0700 /* BUS_CNTL bit constants */ #define BUS_DBL_RESYNC 0x00000001 #define BUS_MSTR_RESET 0x00000002 #define BUS_FLUSH_BUF 0x00000004 #define BUS_STOP_REQ_DIS 0x00000008 #define BUS_ROTATION_DIS 0x00000010 #define BUS_MASTER_DIS 0x00000040 #define BUS_ROM_WRT_EN 0x00000080 #define BUS_DIS_ROM 0x00001000 #define BUS_PCI_READ_RETRY_EN 0x00002000 #define BUS_AGP_AD_STEPPING_EN 0x00004000 #define BUS_PCI_WRT_RETRY_EN 0x00008000 #define BUS_MSTR_RD_MULT 0x00100000 #define BUS_MSTR_RD_LINE 0x00200000 #define BUS_SUSPEND 0x00400000 #define LAT_16X 0x00800000 #define BUS_RD_DISCARD_EN 0x01000000 #define BUS_RD_ABORT_EN 0x02000000 #define BUS_MSTR_WS 0x04000000 #define BUS_PARKING_DIS 0x08000000 #define BUS_MSTR_DISCONNECT_EN 0x10000000 #define BUS_WRT_BURST 0x20000000 #define BUS_READ_BURST 0x40000000 #define BUS_RDY_READ_DLY 0x80000000 /* PIXCLKS_CNTL */ #define PIX2CLK_SRC_SEL_MASK 0x03 #define PIX2CLK_SRC_SEL_CPUCLK 0x00 #define PIX2CLK_SRC_SEL_PSCANCLK 0x01 #define PIX2CLK_SRC_SEL_BYTECLK 0x02 #define PIX2CLK_SRC_SEL_P2PLLCLK 0x03 #define PIX2CLK_ALWAYS_ONb (1<<6) #define PIX2CLK_DAC_ALWAYS_ONb (1<<7) #define PIXCLK_TV_SRC_SEL (1 << 8) #define PIXCLK_LVDS_ALWAYS_ONb (1 << 14) #define PIXCLK_TMDS_ALWAYS_ONb (1 << 15) /* CLOCK_CNTL_INDEX bit constants */ #define PLL_WR_EN 0x00000080 /* CONFIG_CNTL bit constants */ #define CFG_VGA_RAM_EN 0x00000100 #define CFG_ATI_REV_ID_MASK (0xf << 16) #define CFG_ATI_REV_A11 (0 << 16) #define CFG_ATI_REV_A12 (1 << 16) #define CFG_ATI_REV_A13 (2 << 16) /* CRTC_EXT_CNTL bit constants */ #define VGA_ATI_LINEAR 0x00000008 #define VGA_128KAP_PAGING 0x00000010 #define XCRT_CNT_EN (1 << 6) #define CRTC_HSYNC_DIS (1 << 8) #define CRTC_VSYNC_DIS (1 << 9) #define CRTC_DISPLAY_DIS (1 << 10) #define CRTC_CRT_ON (1 << 15) /* DSTCACHE_CTLSTAT bit constants */ #define RB2D_DC_FLUSH (3 << 0) #define RB2D_DC_FLUSH_ALL 0xf #define RB2D_DC_BUSY (1 << 31) /* CRTC_GEN_CNTL bit constants */ #define CRTC_DBL_SCAN_EN 0x00000001 #define CRTC_CUR_EN 0x00010000 #define CRTC_INTERLACE_EN (1 << 1) #define CRTC_BYPASS_LUT_EN (1 << 14) #define CRTC_EXT_DISP_EN (1 << 24) #define CRTC_EN (1 << 25) #define CRTC_DISP_REQ_EN_B (1 << 26) /* CRTC_STATUS bit constants */ #define CRTC_VBLANK 0x00000001 /* CRTC2_GEN_CNTL bit constants */ #define CRT2_ON (1 << 7) #define CRTC2_DISPLAY_DIS (1 << 23) #define CRTC2_EN (1 << 25) #define CRTC2_DISP_REQ_EN_B (1 << 26) /* CUR_OFFSET, CUR_HORZ_VERT_POSN, CUR_HORZ_VERT_OFF bit constants */ #define CUR_LOCK 0x80000000 /* GPIO bit constants */ #define GPIO_A_0 (1 << 0) #define GPIO_A_1 (1 << 1) #define GPIO_Y_0 (1 << 8) #define GPIO_Y_1 (1 << 9) #define GPIO_EN_0 (1 << 16) #define GPIO_EN_1 (1 << 17) #define GPIO_MASK_0 (1 << 24) #define GPIO_MASK_1 (1 << 25) #define VGA_DDC_DATA_OUTPUT GPIO_A_0 #define VGA_DDC_CLK_OUTPUT GPIO_A_1 #define VGA_DDC_DATA_INPUT GPIO_Y_0 #define VGA_DDC_CLK_INPUT GPIO_Y_1 #define VGA_DDC_DATA_OUT_EN GPIO_EN_0 #define VGA_DDC_CLK_OUT_EN GPIO_EN_1 /* FP bit constants */ #define FP_CRTC_H_TOTAL_MASK 0x000003ff #define FP_CRTC_H_DISP_MASK 0x01ff0000 #define FP_CRTC_V_TOTAL_MASK 0x00000fff #define FP_CRTC_V_DISP_MASK 0x0fff0000 #define FP_H_SYNC_STRT_CHAR_MASK 0x00001ff8 #define FP_H_SYNC_WID_MASK 0x003f0000 #define FP_V_SYNC_STRT_MASK 0x00000fff #define FP_V_SYNC_WID_MASK 0x001f0000 #define FP_CRTC_H_TOTAL_SHIFT 0x00000000 #define FP_CRTC_H_DISP_SHIFT 0x00000010 #define FP_CRTC_V_TOTAL_SHIFT 0x00000000 #define FP_CRTC_V_DISP_SHIFT 0x00000010 #define FP_H_SYNC_STRT_CHAR_SHIFT 0x00000003 #define FP_H_SYNC_WID_SHIFT 0x00000010 #define FP_V_SYNC_STRT_SHIFT 0x00000000 #define FP_V_SYNC_WID_SHIFT 0x00000010 /* FP_GEN_CNTL bit constants */ #define FP_FPON (1 << 0) #define FP_TMDS_EN (1 << 2) #define FP_PANEL_FORMAT (1 << 3) #define FP_EN_TMDS (1 << 7) #define FP_DETECT_SENSE (1 << 8) #define R200_FP_SOURCE_SEL_MASK (3 << 10) #define R200_FP_SOURCE_SEL_CRTC1 (0 << 10) #define R200_FP_SOURCE_SEL_CRTC2 (1 << 10) #define R200_FP_SOURCE_SEL_RMX (2 << 10) #define R200_FP_SOURCE_SEL_TRANS (3 << 10) #define FP_SEL_CRTC1 (0 << 13) #define FP_SEL_CRTC2 (1 << 13) #define FP_USE_VGA_HSYNC (1 << 14) #define FP_CRTC_DONT_SHADOW_HPAR (1 << 15) #define FP_CRTC_DONT_SHADOW_VPAR (1 << 16) #define FP_CRTC_DONT_SHADOW_HEND (1 << 17) #define FP_CRTC_USE_SHADOW_VEND (1 << 18) #define FP_RMX_HVSYNC_CONTROL_EN (1 << 20) #define FP_DFP_SYNC_SEL (1 << 21) #define FP_CRTC_LOCK_8DOT (1 << 22) #define FP_CRT_SYNC_SEL (1 << 23) #define FP_USE_SHADOW_EN (1 << 24) #define FP_CRT_SYNC_ALT (1 << 26) /* FP2_GEN_CNTL bit constants */ #define FP2_BLANK_EN (1 << 1) #define FP2_ON (1 << 2) #define FP2_PANEL_FORMAT (1 << 3) #define FP2_SOURCE_SEL_MASK (3 << 10) #define FP2_SOURCE_SEL_CRTC2 (1 << 10) #define FP2_SRC_SEL_MASK (3 << 13) #define FP2_SRC_SEL_CRTC2 (1 << 13) #define FP2_FP_POL (1 << 16) #define FP2_LP_POL (1 << 17) #define FP2_SCK_POL (1 << 18) #define FP2_LCD_CNTL_MASK (7 << 19) #define FP2_PAD_FLOP_EN (1 << 22) #define FP2_CRC_EN (1 << 23) #define FP2_CRC_READ_EN (1 << 24) #define FP2_DV0_EN (1 << 25) #define FP2_DV0_RATE_SEL_SDR (1 << 26) /* LVDS_GEN_CNTL bit constants */ #define LVDS_ON (1 << 0) #define LVDS_DISPLAY_DIS (1 << 1) #define LVDS_PANEL_TYPE (1 << 2) #define LVDS_PANEL_FORMAT (1 << 3) #define LVDS_EN (1 << 7) #define LVDS_BL_MOD_LEVEL_MASK 0x0000ff00 #define LVDS_BL_MOD_LEVEL_SHIFT 8 #define LVDS_BL_MOD_EN (1 << 16) #define LVDS_DIGON (1 << 18) #define LVDS_BLON (1 << 19) #define LVDS_SEL_CRTC2 (1 << 23) #define LVDS_STATE_MASK \ (LVDS_ON | LVDS_DISPLAY_DIS | LVDS_BL_MOD_LEVEL_MASK | LVDS_BLON) /* LVDS_PLL_CNTL bit constatns */ #define HSYNC_DELAY_SHIFT 0x1c #define HSYNC_DELAY_MASK (0xf << 0x1c) /* TMDS_TRANSMITTER_CNTL bit constants */ #define TMDS_PLL_EN (1 << 0) #define TMDS_PLLRST (1 << 1) #define TMDS_RAN_PAT_RST (1 << 7) #define TMDS_ICHCSEL (1 << 28) /* FP_HORZ_STRETCH bit constants */ #define HORZ_STRETCH_RATIO_MASK 0xffff #define HORZ_STRETCH_RATIO_MAX 4096 #define HORZ_PANEL_SIZE (0x1ff << 16) #define HORZ_PANEL_SHIFT 16 #define HORZ_STRETCH_PIXREP (0 << 25) #define HORZ_STRETCH_BLEND (1 << 26) #define HORZ_STRETCH_ENABLE (1 << 25) #define HORZ_AUTO_RATIO (1 << 27) #define HORZ_FP_LOOP_STRETCH (0x7 << 28) #define HORZ_AUTO_RATIO_INC (1 << 31) /* FP_VERT_STRETCH bit constants */ #define VERT_STRETCH_RATIO_MASK 0xfff #define VERT_STRETCH_RATIO_MAX 4096 #define VERT_PANEL_SIZE (0xfff << 12) #define VERT_PANEL_SHIFT 12 #define VERT_STRETCH_LINREP (0 << 26) #define VERT_STRETCH_BLEND (1 << 26) #define VERT_STRETCH_ENABLE (1 << 25) #define VERT_AUTO_RATIO_EN (1 << 27) #define VERT_FP_LOOP_STRETCH (0x7 << 28) #define VERT_STRETCH_RESERVED 0xf1000000 /* DAC_CNTL bit constants */ #define DAC_8BIT_EN 0x00000100 #define DAC_4BPP_PIX_ORDER 0x00000200 #define DAC_CRC_EN 0x00080000 #define DAC_MASK_ALL (0xff << 24) #define DAC_PDWN (1 << 15) #define DAC_EXPAND_MODE (1 << 14) #define DAC_VGA_ADR_EN (1 << 13) #define DAC_RANGE_CNTL (3 << 0) #define DAC_RANGE_CNTL_MASK 0x03 #define DAC_BLANKING (1 << 2) #define DAC_CMP_EN (1 << 3) #define DAC_CMP_OUTPUT (1 << 7) /* DAC_CNTL2 bit constants */ #define DAC2_EXPAND_MODE (1 << 14) #define DAC2_CMP_EN (1 << 7) #define DAC2_PALETTE_ACCESS_CNTL (1 << 5) /* DAC_EXT_CNTL bit constants */ #define DAC_FORCE_BLANK_OFF_EN (1 << 4) #define DAC_FORCE_DATA_EN (1 << 5) #define DAC_FORCE_DATA_SEL_MASK (3 << 6) #define DAC_FORCE_DATA_MASK 0x0003ff00 #define DAC_FORCE_DATA_SHIFT 8 /* GEN_RESET_CNTL bit constants */ #define SOFT_RESET_GUI 0x00000001 #define SOFT_RESET_VCLK 0x00000100 #define SOFT_RESET_PCLK 0x00000200 #define SOFT_RESET_ECP 0x00000400 #define SOFT_RESET_DISPENG_XCLK 0x00000800 /* MEM_CNTL bit constants */ #define MEM_CTLR_STATUS_IDLE 0x00000000 #define MEM_CTLR_STATUS_BUSY 0x00100000 #define MEM_SEQNCR_STATUS_IDLE 0x00000000 #define MEM_SEQNCR_STATUS_BUSY 0x00200000 #define MEM_ARBITER_STATUS_IDLE 0x00000000 #define MEM_ARBITER_STATUS_BUSY 0x00400000 #define MEM_REQ_UNLOCK 0x00000000 #define MEM_REQ_LOCK 0x00800000 #define MEM_NUM_CHANNELS_MASK 0x00000001 #define MEM_USE_B_CH_ONLY 0x00000002 #define RV100_MEM_HALF_MODE 0x00000008 #define R300_MEM_NUM_CHANNELS_MASK 0x00000003 #define R300_MEM_USE_CD_CH_ONLY 0x00000004 /* RBBM_SOFT_RESET bit constants */ #define SOFT_RESET_CP (1 << 0) #define SOFT_RESET_HI (1 << 1) #define SOFT_RESET_SE (1 << 2) #define SOFT_RESET_RE (1 << 3) #define SOFT_RESET_PP (1 << 4) #define SOFT_RESET_E2 (1 << 5) #define SOFT_RESET_RB (1 << 6) #define SOFT_RESET_HDP (1 << 7) /* SURFACE_CNTL bit consants */ #define SURF_TRANSLATION_DIS (1 << 8) #define NONSURF_AP0_SWP_16BPP (1 << 20) #define NONSURF_AP0_SWP_32BPP (1 << 21) #define NONSURF_AP1_SWP_16BPP (1 << 22) #define NONSURF_AP1_SWP_32BPP (1 << 23) /* DEFAULT_SC_BOTTOM_RIGHT bit constants */ #define DEFAULT_SC_RIGHT_MAX (0x1fff << 0) #define DEFAULT_SC_BOTTOM_MAX (0x1fff << 16) /* MM_INDEX bit constants */ #define MM_APER 0x80000000 /* CLR_CMP_CNTL bit constants */ #define COMPARE_SRC_FALSE 0x00000000 #define COMPARE_SRC_TRUE 0x00000001 #define COMPARE_SRC_NOT_EQUAL 0x00000004 #define COMPARE_SRC_EQUAL 0x00000005 #define COMPARE_SRC_EQUAL_FLIP 0x00000007 #define COMPARE_DST_FALSE 0x00000000 #define COMPARE_DST_TRUE 0x00000100 #define COMPARE_DST_NOT_EQUAL 0x00000400 #define COMPARE_DST_EQUAL 0x00000500 #define COMPARE_DESTINATION 0x00000000 #define COMPARE_SOURCE 0x01000000 #define COMPARE_SRC_AND_DST 0x02000000 /* DP_CNTL bit constants */ #define DST_X_RIGHT_TO_LEFT 0x00000000 #define DST_X_LEFT_TO_RIGHT 0x00000001 #define DST_Y_BOTTOM_TO_TOP 0x00000000 #define DST_Y_TOP_TO_BOTTOM 0x00000002 #define DST_X_MAJOR 0x00000000 #define DST_Y_MAJOR 0x00000004 #define DST_X_TILE 0x00000008 #define DST_Y_TILE 0x00000010 #define DST_LAST_PEL 0x00000020 #define DST_TRAIL_X_RIGHT_TO_LEFT 0x00000000 #define DST_TRAIL_X_LEFT_TO_RIGHT 0x00000040 #define DST_TRAP_FILL_RIGHT_TO_LEFT 0x00000000 #define DST_TRAP_FILL_LEFT_TO_RIGHT 0x00000080 #define DST_BRES_SIGN 0x00000100 #define DST_HOST_BIG_ENDIAN_EN 0x00000200 #define DST_POLYLINE_NONLAST 0x00008000 #define DST_RASTER_STALL 0x00010000 #define DST_POLY_EDGE 0x00040000 /* DP_CNTL_YDIR_XDIR_YMAJOR bit constants (short version of DP_CNTL) */ #define DST_X_MAJOR_S 0x00000000 #define DST_Y_MAJOR_S 0x00000001 #define DST_Y_BOTTOM_TO_TOP_S 0x00000000 #define DST_Y_TOP_TO_BOTTOM_S 0x00008000 #define DST_X_RIGHT_TO_LEFT_S 0x00000000 #define DST_X_LEFT_TO_RIGHT_S 0x80000000 /* DP_DATATYPE bit constants */ #define DST_8BPP 0x00000002 #define DST_15BPP 0x00000003 #define DST_16BPP 0x00000004 #define DST_24BPP 0x00000005 #define DST_32BPP 0x00000006 #define DST_8BPP_RGB332 0x00000007 #define DST_8BPP_Y8 0x00000008 #define DST_8BPP_RGB8 0x00000009 #define DST_16BPP_VYUY422 0x0000000b #define DST_16BPP_YVYU422 0x0000000c #define DST_32BPP_AYUV444 0x0000000e #define DST_16BPP_ARGB4444 0x0000000f #define BRUSH_SOLIDCOLOR 0x00000d00 #define SRC_MONO 0x00000000 #define SRC_MONO_LBKGD 0x00010000 #define SRC_DSTCOLOR 0x00030000 #define BYTE_ORDER_MSB_TO_LSB 0x00000000 #define BYTE_ORDER_LSB_TO_MSB 0x40000000 #define DP_CONVERSION_TEMP 0x80000000 #define HOST_BIG_ENDIAN_EN (1 << 29) /* DP_GUI_MASTER_CNTL bit constants */ #define GMC_SRC_PITCH_OFFSET_DEFAULT 0x00000000 #define GMC_SRC_PITCH_OFFSET_LEAVE 0x00000001 #define GMC_DST_PITCH_OFFSET_DEFAULT 0x00000000 #define GMC_DST_PITCH_OFFSET_LEAVE 0x00000002 #define GMC_SRC_CLIP_DEFAULT 0x00000000 #define GMC_SRC_CLIP_LEAVE 0x00000004 #define GMC_DST_CLIP_DEFAULT 0x00000000 #define GMC_DST_CLIP_LEAVE 0x00000008 #define GMC_BRUSH_8x8MONO 0x00000000 #define GMC_BRUSH_8x8MONO_LBKGD 0x00000010 #define GMC_BRUSH_8x1MONO 0x00000020 #define GMC_BRUSH_8x1MONO_LBKGD 0x00000030 #define GMC_BRUSH_1x8MONO 0x00000040 #define GMC_BRUSH_1x8MONO_LBKGD 0x00000050 #define GMC_BRUSH_32x1MONO 0x00000060 #define GMC_BRUSH_32x1MONO_LBKGD 0x00000070 #define GMC_BRUSH_32x32MONO 0x00000080 #define GMC_BRUSH_32x32MONO_LBKGD 0x00000090 #define GMC_BRUSH_8x8COLOR 0x000000a0 #define GMC_BRUSH_8x1COLOR 0x000000b0 #define GMC_BRUSH_1x8COLOR 0x000000c0 #define GMC_BRUSH_SOLID_COLOR 0x000000d0 #define GMC_DST_8BPP 0x00000200 #define GMC_DST_15BPP 0x00000300 #define GMC_DST_16BPP 0x00000400 #define GMC_DST_24BPP 0x00000500 #define GMC_DST_32BPP 0x00000600 #define GMC_DST_8BPP_RGB332 0x00000700 #define GMC_DST_8BPP_Y8 0x00000800 #define GMC_DST_8BPP_RGB8 0x00000900 #define GMC_DST_16BPP_VYUY422 0x00000b00 #define GMC_DST_16BPP_YVYU422 0x00000c00 #define GMC_DST_32BPP_AYUV444 0x00000e00 #define GMC_DST_16BPP_ARGB4444 0x00000f00 #define GMC_SRC_MONO 0x00000000 #define GMC_SRC_MONO_LBKGD 0x00001000 #define GMC_SRC_DSTCOLOR 0x00003000 #define GMC_BYTE_ORDER_MSB_TO_LSB 0x00000000 #define GMC_BYTE_ORDER_LSB_TO_MSB 0x00004000 #define GMC_DP_CONVERSION_TEMP_9300 0x00008000 #define GMC_DP_CONVERSION_TEMP_6500 0x00000000 #define GMC_DP_SRC_RECT 0x02000000 #define GMC_DP_SRC_HOST 0x03000000 #define GMC_DP_SRC_HOST_BYTEALIGN 0x04000000 #define GMC_3D_FCN_EN_CLR 0x00000000 #define GMC_3D_FCN_EN_SET 0x08000000 #define GMC_DST_CLR_CMP_FCN_LEAVE 0x00000000 #define GMC_DST_CLR_CMP_FCN_CLEAR 0x10000000 #define GMC_AUX_CLIP_LEAVE 0x00000000 #define GMC_AUX_CLIP_CLEAR 0x20000000 #define GMC_WRITE_MASK_LEAVE 0x00000000 #define GMC_WRITE_MASK_SET 0x40000000 #define GMC_CLR_CMP_CNTL_DIS (1 << 28) #define GMC_SRC_DATATYPE_COLOR (3 << 12) #define ROP3_S 0x00cc0000 #define ROP3_SRCCOPY 0x00cc0000 #define ROP3_P 0x00f00000 #define ROP3_PATCOPY 0x00f00000 #define DP_SRC_SOURCE_MASK (7 << 24) #define GMC_BRUSH_NONE (15 << 4) #define DP_SRC_SOURCE_MEMORY (2 << 24) #define GMC_BRUSH_SOLIDCOLOR 0x000000d0 /* DP_MIX bit constants */ #define DP_SRC_RECT 0x00000200 #define DP_SRC_HOST 0x00000300 #define DP_SRC_HOST_BYTEALIGN 0x00000400 /* MPLL_CNTL bit constants */ #define MPLL_RESET 0x00000001 /* MDLL_CKO bit constants */ #define MCKOA_SLEEP 0x00000001 #define MCKOA_RESET 0x00000002 #define MCKOA_REF_SKEW_MASK 0x00000700 #define MCKOA_FB_SKEW_MASK 0x00007000 /* MDLL_RDCKA bit constants */ #define MRDCKA0_SLEEP 0x00000001 #define MRDCKA0_RESET 0x00000002 #define MRDCKA1_SLEEP 0x00010000 #define MRDCKA1_RESET 0x00020000 /* VCLK_ECP_CNTL constants */ #define VCLK_SRC_SEL_MASK 0x03 #define VCLK_SRC_SEL_CPUCLK 0x00 #define VCLK_SRC_SEL_PSCANCLK 0x01 #define VCLK_SRC_SEL_BYTECLK 0x02 #define VCLK_SRC_SEL_PPLLCLK 0x03 #define PIXCLK_ALWAYS_ONb 0x00000040 #define PIXCLK_DAC_ALWAYS_ONb 0x00000080 /* BUS_CNTL1 constants */ #define BUS_CNTL1_MOBILE_PLATFORM_SEL_MASK 0x0c000000 #define BUS_CNTL1_MOBILE_PLATFORM_SEL_SHIFT 26 #define BUS_CNTL1_AGPCLK_VALID 0x80000000 /* PLL_PWRMGT_CNTL constants */ #define PLL_PWRMGT_CNTL_SPLL_TURNOFF 0x00000002 #define PLL_PWRMGT_CNTL_PPLL_TURNOFF 0x00000004 #define PLL_PWRMGT_CNTL_P2PLL_TURNOFF 0x00000008 #define PLL_PWRMGT_CNTL_TVPLL_TURNOFF 0x00000010 #define PLL_PWRMGT_CNTL_MOBILE_SU 0x00010000 #define PLL_PWRMGT_CNTL_SU_SCLK_USE_BCLK 0x00020000 #define PLL_PWRMGT_CNTL_SU_MCLK_USE_BCLK 0x00040000 /* TV_DAC_CNTL constants */ #define TV_DAC_CNTL_BGSLEEP 0x00000040 #define TV_DAC_CNTL_DETECT 0x00000010 #define TV_DAC_CNTL_BGADJ_MASK 0x000f0000 #define TV_DAC_CNTL_DACADJ_MASK 0x00f00000 #define TV_DAC_CNTL_BGADJ__SHIFT 16 #define TV_DAC_CNTL_DACADJ__SHIFT 20 #define TV_DAC_CNTL_RDACPD 0x01000000 #define TV_DAC_CNTL_GDACPD 0x02000000 #define TV_DAC_CNTL_BDACPD 0x04000000 /* DISP_MISC_CNTL constants */ #define DISP_MISC_CNTL_SOFT_RESET_GRPH_PP (1 << 0) #define DISP_MISC_CNTL_SOFT_RESET_SUBPIC_PP (1 << 1) #define DISP_MISC_CNTL_SOFT_RESET_OV0_PP (1 << 2) #define DISP_MISC_CNTL_SOFT_RESET_GRPH_SCLK (1 << 4) #define DISP_MISC_CNTL_SOFT_RESET_SUBPIC_SCLK (1 << 5) #define DISP_MISC_CNTL_SOFT_RESET_OV0_SCLK (1 << 6) #define DISP_MISC_CNTL_SOFT_RESET_GRPH2_PP (1 << 12) #define DISP_MISC_CNTL_SOFT_RESET_GRPH2_SCLK (1 << 15) #define DISP_MISC_CNTL_SOFT_RESET_LVDS (1 << 16) #define DISP_MISC_CNTL_SOFT_RESET_TMDS (1 << 17) #define DISP_MISC_CNTL_SOFT_RESET_DIG_TMDS (1 << 18) #define DISP_MISC_CNTL_SOFT_RESET_TV (1 << 19) /* DISP_PWR_MAN constants */ #define DISP_PWR_MAN_DISP_PWR_MAN_D3_CRTC_EN (1 << 0) #define DISP_PWR_MAN_DISP2_PWR_MAN_D3_CRTC2_EN (1 << 4) #define DISP_PWR_MAN_DISP_D3_RST (1 << 16) #define DISP_PWR_MAN_DISP_D3_REG_RST (1 << 17) #define DISP_PWR_MAN_DISP_D3_GRPH_RST (1 << 18) #define DISP_PWR_MAN_DISP_D3_SUBPIC_RST (1 << 19) #define DISP_PWR_MAN_DISP_D3_OV0_RST (1 << 20) #define DISP_PWR_MAN_DISP_D1D2_GRPH_RST (1 << 21) #define DISP_PWR_MAN_DISP_D1D2_SUBPIC_RST (1 << 22) #define DISP_PWR_MAN_DISP_D1D2_OV0_RST (1 << 23) #define DISP_PWR_MAN_DIG_TMDS_ENABLE_RST (1 << 24) #define DISP_PWR_MAN_TV_ENABLE_RST (1 << 25) #define DISP_PWR_MAN_AUTO_PWRUP_EN (1 << 26) /* masks */ #define CONFIG_MEMSIZE_MASK 0x1f000000 #define MEM_CFG_TYPE 0x40000000 #define DST_OFFSET_MASK 0x003fffff #define DST_PITCH_MASK 0x3fc00000 #define DEFAULT_TILE_MASK 0xc0000000 #define PPLL_DIV_SEL_MASK 0x00000300 #define PPLL_RESET 0x00000001 #define PPLL_SLEEP 0x00000002 #define PPLL_ATOMIC_UPDATE_EN 0x00010000 #define PPLL_REF_DIV_MASK 0x000003ff #define PPLL_FB3_DIV_MASK 0x000007ff #define PPLL_POST3_DIV_MASK 0x00070000 #define PPLL_ATOMIC_UPDATE_R 0x00008000 #define PPLL_ATOMIC_UPDATE_W 0x00008000 #define PPLL_VGA_ATOMIC_UPDATE_EN 0x00020000 #define R300_PPLL_REF_DIV_ACC_MASK (0x3ff << 18) #define R300_PPLL_REF_DIV_ACC_SHIFT 18 #define GUI_ACTIVE 0x80000000 #define MC_IND_INDEX 0x01F8 #define MC_IND_DATA 0x01FC /* PAD_CTLR_STRENGTH */ #define PAD_MANUAL_OVERRIDE 0x80000000 // pllCLK_PIN_CNTL #define CLK_PIN_CNTL__OSC_EN_MASK 0x00000001L #define CLK_PIN_CNTL__OSC_EN 0x00000001L #define CLK_PIN_CNTL__XTL_LOW_GAIN_MASK 0x00000004L #define CLK_PIN_CNTL__XTL_LOW_GAIN 0x00000004L #define CLK_PIN_CNTL__DONT_USE_XTALIN_MASK 0x00000010L #define CLK_PIN_CNTL__DONT_USE_XTALIN 0x00000010L #define CLK_PIN_CNTL__SLOW_CLOCK_SOURCE_MASK 0x00000020L #define CLK_PIN_CNTL__SLOW_CLOCK_SOURCE 0x00000020L #define CLK_PIN_CNTL__CG_CLK_TO_OUTPIN_MASK 0x00000800L #define CLK_PIN_CNTL__CG_CLK_TO_OUTPIN 0x00000800L #define CLK_PIN_CNTL__CG_COUNT_UP_TO_OUTPIN_MASK 0x00001000L #define CLK_PIN_CNTL__CG_COUNT_UP_TO_OUTPIN 0x00001000L #define CLK_PIN_CNTL__ACCESS_REGS_IN_SUSPEND_MASK 0x00002000L #define CLK_PIN_CNTL__ACCESS_REGS_IN_SUSPEND 0x00002000L #define CLK_PIN_CNTL__CG_SPARE_MASK 0x00004000L #define CLK_PIN_CNTL__CG_SPARE 0x00004000L #define CLK_PIN_CNTL__SCLK_DYN_START_CNTL_MASK 0x00008000L #define CLK_PIN_CNTL__SCLK_DYN_START_CNTL 0x00008000L #define CLK_PIN_CNTL__CP_CLK_RUNNING_MASK 0x00010000L #define CLK_PIN_CNTL__CP_CLK_RUNNING 0x00010000L #define CLK_PIN_CNTL__CG_SPARE_RD_MASK 0x00060000L #define CLK_PIN_CNTL__XTALIN_ALWAYS_ONb_MASK 0x00080000L #define CLK_PIN_CNTL__XTALIN_ALWAYS_ONb 0x00080000L #define CLK_PIN_CNTL__PWRSEQ_DELAY_MASK 0xff000000L // pllCLK_PWRMGT_CNTL #define CLK_PWRMGT_CNTL__MPLL_PWRMGT_OFF__SHIFT 0x00000000 #define CLK_PWRMGT_CNTL__SPLL_PWRMGT_OFF__SHIFT 0x00000001 #define CLK_PWRMGT_CNTL__PPLL_PWRMGT_OFF__SHIFT 0x00000002 #define CLK_PWRMGT_CNTL__P2PLL_PWRMGT_OFF__SHIFT 0x00000003 #define CLK_PWRMGT_CNTL__MCLK_TURNOFF__SHIFT 0x00000004 #define CLK_PWRMGT_CNTL__SCLK_TURNOFF__SHIFT 0x00000005 #define CLK_PWRMGT_CNTL__PCLK_TURNOFF__SHIFT 0x00000006 #define CLK_PWRMGT_CNTL__P2CLK_TURNOFF__SHIFT 0x00000007 #define CLK_PWRMGT_CNTL__MC_CH_MODE__SHIFT 0x00000008 #define CLK_PWRMGT_CNTL__TEST_MODE__SHIFT 0x00000009 #define CLK_PWRMGT_CNTL__GLOBAL_PMAN_EN__SHIFT 0x0000000a #define CLK_PWRMGT_CNTL__ENGINE_DYNCLK_MODE__SHIFT 0x0000000c #define CLK_PWRMGT_CNTL__ACTIVE_HILO_LAT__SHIFT 0x0000000d #define CLK_PWRMGT_CNTL__DISP_DYN_STOP_LAT__SHIFT 0x0000000f #define CLK_PWRMGT_CNTL__MC_BUSY__SHIFT 0x00000010 #define CLK_PWRMGT_CNTL__MC_INT_CNTL__SHIFT 0x00000011 #define CLK_PWRMGT_CNTL__MC_SWITCH__SHIFT 0x00000012 #define CLK_PWRMGT_CNTL__DLL_READY__SHIFT 0x00000013 #define CLK_PWRMGT_CNTL__DISP_PM__SHIFT 0x00000014 #define CLK_PWRMGT_CNTL__DYN_STOP_MODE__SHIFT 0x00000015 #define CLK_PWRMGT_CNTL__CG_NO1_DEBUG__SHIFT 0x00000018 #define CLK_PWRMGT_CNTL__TVPLL_PWRMGT_OFF__SHIFT 0x0000001e #define CLK_PWRMGT_CNTL__TVCLK_TURNOFF__SHIFT 0x0000001f // pllP2PLL_CNTL #define P2PLL_CNTL__P2PLL_RESET_MASK 0x00000001L #define P2PLL_CNTL__P2PLL_RESET 0x00000001L #define P2PLL_CNTL__P2PLL_SLEEP_MASK 0x00000002L #define P2PLL_CNTL__P2PLL_SLEEP 0x00000002L #define P2PLL_CNTL__P2PLL_TST_EN_MASK 0x00000004L #define P2PLL_CNTL__P2PLL_TST_EN 0x00000004L #define P2PLL_CNTL__P2PLL_REFCLK_SEL_MASK 0x00000010L #define P2PLL_CNTL__P2PLL_REFCLK_SEL 0x00000010L #define P2PLL_CNTL__P2PLL_FBCLK_SEL_MASK 0x00000020L #define P2PLL_CNTL__P2PLL_FBCLK_SEL 0x00000020L #define P2PLL_CNTL__P2PLL_TCPOFF_MASK 0x00000040L #define P2PLL_CNTL__P2PLL_TCPOFF 0x00000040L #define P2PLL_CNTL__P2PLL_TVCOMAX_MASK 0x00000080L #define P2PLL_CNTL__P2PLL_TVCOMAX 0x00000080L #define P2PLL_CNTL__P2PLL_PCP_MASK 0x00000700L #define P2PLL_CNTL__P2PLL_PVG_MASK 0x00003800L #define P2PLL_CNTL__P2PLL_PDC_MASK 0x0000c000L #define P2PLL_CNTL__P2PLL_ATOMIC_UPDATE_EN_MASK 0x00010000L #define P2PLL_CNTL__P2PLL_ATOMIC_UPDATE_EN 0x00010000L #define P2PLL_CNTL__P2PLL_ATOMIC_UPDATE_SYNC_MASK 0x00040000L #define P2PLL_CNTL__P2PLL_ATOMIC_UPDATE_SYNC 0x00040000L #define P2PLL_CNTL__P2PLL_DISABLE_AUTO_RESET_MASK 0x00080000L #define P2PLL_CNTL__P2PLL_DISABLE_AUTO_RESET 0x00080000L // pllPIXCLKS_CNTL #define PIXCLKS_CNTL__PIX2CLK_SRC_SEL__SHIFT 0x00000000 #define PIXCLKS_CNTL__PIX2CLK_INVERT__SHIFT 0x00000004 #define PIXCLKS_CNTL__PIX2CLK_SRC_INVERT__SHIFT 0x00000005 #define PIXCLKS_CNTL__PIX2CLK_ALWAYS_ONb__SHIFT 0x00000006 #define PIXCLKS_CNTL__PIX2CLK_DAC_ALWAYS_ONb__SHIFT 0x00000007 #define PIXCLKS_CNTL__PIXCLK_TV_SRC_SEL__SHIFT 0x00000008 #define PIXCLKS_CNTL__PIXCLK_BLEND_ALWAYS_ONb__SHIFT 0x0000000b #define PIXCLKS_CNTL__PIXCLK_GV_ALWAYS_ONb__SHIFT 0x0000000c #define PIXCLKS_CNTL__PIXCLK_DIG_TMDS_ALWAYS_ONb__SHIFT 0x0000000d #define PIXCLKS_CNTL__PIXCLK_LVDS_ALWAYS_ONb__SHIFT 0x0000000e #define PIXCLKS_CNTL__PIXCLK_TMDS_ALWAYS_ONb__SHIFT 0x0000000f // pllPIXCLKS_CNTL #define PIXCLKS_CNTL__PIX2CLK_SRC_SEL_MASK 0x00000003L #define PIXCLKS_CNTL__PIX2CLK_INVERT 0x00000010L #define PIXCLKS_CNTL__PIX2CLK_SRC_INVERT 0x00000020L #define PIXCLKS_CNTL__PIX2CLK_ALWAYS_ONb 0x00000040L #define PIXCLKS_CNTL__PIX2CLK_DAC_ALWAYS_ONb 0x00000080L #define PIXCLKS_CNTL__PIXCLK_TV_SRC_SEL 0x00000100L #define PIXCLKS_CNTL__PIXCLK_BLEND_ALWAYS_ONb 0x00000800L #define PIXCLKS_CNTL__PIXCLK_GV_ALWAYS_ONb 0x00001000L #define PIXCLKS_CNTL__PIXCLK_DIG_TMDS_ALWAYS_ONb 0x00002000L #define PIXCLKS_CNTL__PIXCLK_LVDS_ALWAYS_ONb 0x00004000L #define PIXCLKS_CNTL__PIXCLK_TMDS_ALWAYS_ONb 0x00008000L #define PIXCLKS_CNTL__DISP_TVOUT_PIXCLK_TV_ALWAYS_ONb (1 << 9) #define PIXCLKS_CNTL__R300_DVOCLK_ALWAYS_ONb (1 << 10) #define PIXCLKS_CNTL__R300_PIXCLK_DVO_ALWAYS_ONb (1 << 13) #define PIXCLKS_CNTL__R300_PIXCLK_TRANS_ALWAYS_ONb (1 << 16) #define PIXCLKS_CNTL__R300_PIXCLK_TVO_ALWAYS_ONb (1 << 17) #define PIXCLKS_CNTL__R300_P2G2CLK_ALWAYS_ONb (1 << 18) #define PIXCLKS_CNTL__R300_P2G2CLK_DAC_ALWAYS_ONb (1 << 19) #define PIXCLKS_CNTL__R300_DISP_DAC_PIXCLK_DAC2_BLANK_OFF (1 << 23) // pllP2PLL_DIV_0 #define P2PLL_DIV_0__P2PLL_FB_DIV_MASK 0x000007ffL #define P2PLL_DIV_0__P2PLL_ATOMIC_UPDATE_W_MASK 0x00008000L #define P2PLL_DIV_0__P2PLL_ATOMIC_UPDATE_W 0x00008000L #define P2PLL_DIV_0__P2PLL_ATOMIC_UPDATE_R_MASK 0x00008000L #define P2PLL_DIV_0__P2PLL_ATOMIC_UPDATE_R 0x00008000L #define P2PLL_DIV_0__P2PLL_POST_DIV_MASK 0x00070000L // pllSCLK_CNTL #define SCLK_CNTL__SCLK_SRC_SEL_MASK 0x00000007L #define SCLK_CNTL__CP_MAX_DYN_STOP_LAT 0x00000008L #define SCLK_CNTL__HDP_MAX_DYN_STOP_LAT 0x00000010L #define SCLK_CNTL__TV_MAX_DYN_STOP_LAT 0x00000020L #define SCLK_CNTL__E2_MAX_DYN_STOP_LAT 0x00000040L #define SCLK_CNTL__SE_MAX_DYN_STOP_LAT 0x00000080L #define SCLK_CNTL__IDCT_MAX_DYN_STOP_LAT 0x00000100L #define SCLK_CNTL__VIP_MAX_DYN_STOP_LAT 0x00000200L #define SCLK_CNTL__RE_MAX_DYN_STOP_LAT 0x00000400L #define SCLK_CNTL__PB_MAX_DYN_STOP_LAT 0x00000800L #define SCLK_CNTL__TAM_MAX_DYN_STOP_LAT 0x00001000L #define SCLK_CNTL__TDM_MAX_DYN_STOP_LAT 0x00002000L #define SCLK_CNTL__RB_MAX_DYN_STOP_LAT 0x00004000L #define SCLK_CNTL__DYN_STOP_LAT_MASK 0x00007ff8 #define SCLK_CNTL__FORCE_DISP2 0x00008000L #define SCLK_CNTL__FORCE_CP 0x00010000L #define SCLK_CNTL__FORCE_HDP 0x00020000L #define SCLK_CNTL__FORCE_DISP1 0x00040000L #define SCLK_CNTL__FORCE_TOP 0x00080000L #define SCLK_CNTL__FORCE_E2 0x00100000L #define SCLK_CNTL__FORCE_SE 0x00200000L #define SCLK_CNTL__FORCE_IDCT 0x00400000L #define SCLK_CNTL__FORCE_VIP 0x00800000L #define SCLK_CNTL__FORCE_RE 0x01000000L #define SCLK_CNTL__FORCE_PB 0x02000000L #define SCLK_CNTL__FORCE_TAM 0x04000000L #define SCLK_CNTL__FORCE_TDM 0x08000000L #define SCLK_CNTL__FORCE_RB 0x10000000L #define SCLK_CNTL__FORCE_TV_SCLK 0x20000000L #define SCLK_CNTL__FORCE_SUBPIC 0x40000000L #define SCLK_CNTL__FORCE_OV0 0x80000000L #define SCLK_CNTL__R300_FORCE_VAP (1<<21) #define SCLK_CNTL__R300_FORCE_SR (1<<25) #define SCLK_CNTL__R300_FORCE_PX (1<<26) #define SCLK_CNTL__R300_FORCE_TX (1<<27) #define SCLK_CNTL__R300_FORCE_US (1<<28) #define SCLK_CNTL__R300_FORCE_SU (1<<30) #define SCLK_CNTL__FORCEON_MASK 0xffff8000L // pllSCLK_CNTL2 #define SCLK_CNTL2__R300_TCL_MAX_DYN_STOP_LAT (1<<10) #define SCLK_CNTL2__R300_GA_MAX_DYN_STOP_LAT (1<<11) #define SCLK_CNTL2__R300_CBA_MAX_DYN_STOP_LAT (1<<12) #define SCLK_CNTL2__R300_FORCE_TCL (1<<13) #define SCLK_CNTL2__R300_FORCE_CBA (1<<14) #define SCLK_CNTL2__R300_FORCE_GA (1<<15) // SCLK_MORE_CNTL #define SCLK_MORE_CNTL__DISPREGS_MAX_DYN_STOP_LAT 0x00000001L #define SCLK_MORE_CNTL__MC_GUI_MAX_DYN_STOP_LAT 0x00000002L #define SCLK_MORE_CNTL__MC_HOST_MAX_DYN_STOP_LAT 0x00000004L #define SCLK_MORE_CNTL__FORCE_DISPREGS 0x00000100L #define SCLK_MORE_CNTL__FORCE_MC_GUI 0x00000200L #define SCLK_MORE_CNTL__FORCE_MC_HOST 0x00000400L #define SCLK_MORE_CNTL__STOP_SCLK_EN 0x00001000L #define SCLK_MORE_CNTL__STOP_SCLK_A 0x00002000L #define SCLK_MORE_CNTL__STOP_SCLK_B 0x00004000L #define SCLK_MORE_CNTL__STOP_SCLK_C 0x00008000L #define SCLK_MORE_CNTL__HALF_SPEED_SCLK 0x00010000L #define SCLK_MORE_CNTL__IO_CG_VOLTAGE_DROP 0x00020000L #define SCLK_MORE_CNTL__TVFB_SOFT_RESET 0x00040000L #define SCLK_MORE_CNTL__VOLTAGE_DROP_SYNC 0x00080000L #define SCLK_MORE_CNTL__IDLE_DELAY_HALF_SCLK 0x00400000L #define SCLK_MORE_CNTL__AGP_BUSY_HALF_SCLK 0x00800000L #define SCLK_MORE_CNTL__CG_SPARE_RD_C_MASK 0xff000000L #define SCLK_MORE_CNTL__FORCEON 0x00000700L // MCLK_CNTL #define MCLK_CNTL__MCLKA_SRC_SEL_MASK 0x00000007L #define MCLK_CNTL__YCLKA_SRC_SEL_MASK 0x00000070L #define MCLK_CNTL__MCLKB_SRC_SEL_MASK 0x00000700L #define MCLK_CNTL__YCLKB_SRC_SEL_MASK 0x00007000L #define MCLK_CNTL__FORCE_MCLKA_MASK 0x00010000L #define MCLK_CNTL__FORCE_MCLKA 0x00010000L #define MCLK_CNTL__FORCE_MCLKB_MASK 0x00020000L #define MCLK_CNTL__FORCE_MCLKB 0x00020000L #define MCLK_CNTL__FORCE_YCLKA_MASK 0x00040000L #define MCLK_CNTL__FORCE_YCLKA 0x00040000L #define MCLK_CNTL__FORCE_YCLKB_MASK 0x00080000L #define MCLK_CNTL__FORCE_YCLKB 0x00080000L #define MCLK_CNTL__FORCE_MC_MASK 0x00100000L #define MCLK_CNTL__FORCE_MC 0x00100000L #define MCLK_CNTL__FORCE_AIC_MASK 0x00200000L #define MCLK_CNTL__FORCE_AIC 0x00200000L #define MCLK_CNTL__MRDCKA0_SOUTSEL_MASK 0x03000000L #define MCLK_CNTL__MRDCKA1_SOUTSEL_MASK 0x0c000000L #define MCLK_CNTL__MRDCKB0_SOUTSEL_MASK 0x30000000L #define MCLK_CNTL__MRDCKB1_SOUTSEL_MASK 0xc0000000L #define MCLK_CNTL__R300_DISABLE_MC_MCLKA (1 << 21) #define MCLK_CNTL__R300_DISABLE_MC_MCLKB (1 << 21) // MCLK_MISC #define MCLK_MISC__SCLK_SOURCED_FROM_MPLL_SEL_MASK 0x00000003L #define MCLK_MISC__MCLK_FROM_SPLL_DIV_SEL_MASK 0x00000004L #define MCLK_MISC__MCLK_FROM_SPLL_DIV_SEL 0x00000004L #define MCLK_MISC__ENABLE_SCLK_FROM_MPLL_MASK 0x00000008L #define MCLK_MISC__ENABLE_SCLK_FROM_MPLL 0x00000008L #define MCLK_MISC__MPLL_MODEA_MODEC_HW_SEL_EN_MASK 0x00000010L #define MCLK_MISC__MPLL_MODEA_MODEC_HW_SEL_EN 0x00000010L #define MCLK_MISC__DLL_READY_LAT_MASK 0x00000100L #define MCLK_MISC__DLL_READY_LAT 0x00000100L #define MCLK_MISC__MC_MCLK_MAX_DYN_STOP_LAT_MASK 0x00001000L #define MCLK_MISC__MC_MCLK_MAX_DYN_STOP_LAT 0x00001000L #define MCLK_MISC__IO_MCLK_MAX_DYN_STOP_LAT_MASK 0x00002000L #define MCLK_MISC__IO_MCLK_MAX_DYN_STOP_LAT 0x00002000L #define MCLK_MISC__MC_MCLK_DYN_ENABLE_MASK 0x00004000L #define MCLK_MISC__MC_MCLK_DYN_ENABLE 0x00004000L #define MCLK_MISC__IO_MCLK_DYN_ENABLE_MASK 0x00008000L #define MCLK_MISC__IO_MCLK_DYN_ENABLE 0x00008000L #define MCLK_MISC__CGM_CLK_TO_OUTPIN_MASK 0x00010000L #define MCLK_MISC__CGM_CLK_TO_OUTPIN 0x00010000L #define MCLK_MISC__CLK_OR_COUNT_SEL_MASK 0x00020000L #define MCLK_MISC__CLK_OR_COUNT_SEL 0x00020000L #define MCLK_MISC__EN_MCLK_TRISTATE_IN_SUSPEND_MASK 0x00040000L #define MCLK_MISC__EN_MCLK_TRISTATE_IN_SUSPEND 0x00040000L #define MCLK_MISC__CGM_SPARE_RD_MASK 0x00300000L #define MCLK_MISC__CGM_SPARE_A_RD_MASK 0x00c00000L #define MCLK_MISC__TCLK_TO_YCLKB_EN_MASK 0x01000000L #define MCLK_MISC__TCLK_TO_YCLKB_EN 0x01000000L #define MCLK_MISC__CGM_SPARE_A_MASK 0x0e000000L // VCLK_ECP_CNTL #define VCLK_ECP_CNTL__VCLK_SRC_SEL_MASK 0x00000003L #define VCLK_ECP_CNTL__VCLK_INVERT 0x00000010L #define VCLK_ECP_CNTL__PIXCLK_SRC_INVERT 0x00000020L #define VCLK_ECP_CNTL__PIXCLK_ALWAYS_ONb 0x00000040L #define VCLK_ECP_CNTL__PIXCLK_DAC_ALWAYS_ONb 0x00000080L #define VCLK_ECP_CNTL__ECP_DIV_MASK 0x00000300L #define VCLK_ECP_CNTL__ECP_FORCE_ON 0x00040000L #define VCLK_ECP_CNTL__SUBCLK_FORCE_ON 0x00080000L #define VCLK_ECP_CNTL__R300_DISP_DAC_PIXCLK_DAC_BLANK_OFF (1<<23) // PLL_PWRMGT_CNTL #define PLL_PWRMGT_CNTL__MPLL_TURNOFF_MASK 0x00000001L #define PLL_PWRMGT_CNTL__MPLL_TURNOFF 0x00000001L #define PLL_PWRMGT_CNTL__SPLL_TURNOFF_MASK 0x00000002L #define PLL_PWRMGT_CNTL__SPLL_TURNOFF 0x00000002L #define PLL_PWRMGT_CNTL__PPLL_TURNOFF_MASK 0x00000004L #define PLL_PWRMGT_CNTL__PPLL_TURNOFF 0x00000004L #define PLL_PWRMGT_CNTL__P2PLL_TURNOFF_MASK 0x00000008L #define PLL_PWRMGT_CNTL__P2PLL_TURNOFF 0x00000008L #define PLL_PWRMGT_CNTL__TVPLL_TURNOFF_MASK 0x00000010L #define PLL_PWRMGT_CNTL__TVPLL_TURNOFF 0x00000010L #define PLL_PWRMGT_CNTL__AGPCLK_DYN_STOP_LAT_MASK 0x000001e0L #define PLL_PWRMGT_CNTL__APM_POWER_STATE_MASK 0x00000600L #define PLL_PWRMGT_CNTL__APM_PWRSTATE_RD_MASK 0x00001800L #define PLL_PWRMGT_CNTL__PM_MODE_SEL_MASK 0x00002000L #define PLL_PWRMGT_CNTL__PM_MODE_SEL 0x00002000L #define PLL_PWRMGT_CNTL__EN_PWRSEQ_DONE_COND_MASK 0x00004000L #define PLL_PWRMGT_CNTL__EN_PWRSEQ_DONE_COND 0x00004000L #define PLL_PWRMGT_CNTL__EN_DISP_PARKED_COND_MASK 0x00008000L #define PLL_PWRMGT_CNTL__EN_DISP_PARKED_COND 0x00008000L #define PLL_PWRMGT_CNTL__MOBILE_SU_MASK 0x00010000L #define PLL_PWRMGT_CNTL__MOBILE_SU 0x00010000L #define PLL_PWRMGT_CNTL__SU_SCLK_USE_BCLK_MASK 0x00020000L #define PLL_PWRMGT_CNTL__SU_SCLK_USE_BCLK 0x00020000L #define PLL_PWRMGT_CNTL__SU_MCLK_USE_BCLK_MASK 0x00040000L #define PLL_PWRMGT_CNTL__SU_MCLK_USE_BCLK 0x00040000L #define PLL_PWRMGT_CNTL__SU_SUSTAIN_DISABLE_MASK 0x00080000L #define PLL_PWRMGT_CNTL__SU_SUSTAIN_DISABLE 0x00080000L #define PLL_PWRMGT_CNTL__TCL_BYPASS_DISABLE_MASK 0x00100000L #define PLL_PWRMGT_CNTL__TCL_BYPASS_DISABLE 0x00100000L #define PLL_PWRMGT_CNTL__TCL_CLOCK_CTIVE_RD_MASK 0x00200000L #define PLL_PWRMGT_CNTL__TCL_CLOCK_ACTIVE_RD 0x00200000L #define PLL_PWRMGT_CNTL__CG_NO2_DEBUG_MASK 0xff000000L // CLK_PWRMGT_CNTL #define CLK_PWRMGT_CNTL__MPLL_PWRMGT_OFF_MASK 0x00000001L #define CLK_PWRMGT_CNTL__MPLL_PWRMGT_OFF 0x00000001L #define CLK_PWRMGT_CNTL__SPLL_PWRMGT_OFF_MASK 0x00000002L #define CLK_PWRMGT_CNTL__SPLL_PWRMGT_OFF 0x00000002L #define CLK_PWRMGT_CNTL__PPLL_PWRMGT_OFF_MASK 0x00000004L #define CLK_PWRMGT_CNTL__PPLL_PWRMGT_OFF 0x00000004L #define CLK_PWRMGT_CNTL__P2PLL_PWRMGT_OFF_MASK 0x00000008L #define CLK_PWRMGT_CNTL__P2PLL_PWRMGT_OFF 0x00000008L #define CLK_PWRMGT_CNTL__MCLK_TURNOFF_MASK 0x00000010L #define CLK_PWRMGT_CNTL__MCLK_TURNOFF 0x00000010L #define CLK_PWRMGT_CNTL__SCLK_TURNOFF_MASK 0x00000020L #define CLK_PWRMGT_CNTL__SCLK_TURNOFF 0x00000020L #define CLK_PWRMGT_CNTL__PCLK_TURNOFF_MASK 0x00000040L #define CLK_PWRMGT_CNTL__PCLK_TURNOFF 0x00000040L #define CLK_PWRMGT_CNTL__P2CLK_TURNOFF_MASK 0x00000080L #define CLK_PWRMGT_CNTL__P2CLK_TURNOFF 0x00000080L #define CLK_PWRMGT_CNTL__MC_CH_MODE_MASK 0x00000100L #define CLK_PWRMGT_CNTL__MC_CH_MODE 0x00000100L #define CLK_PWRMGT_CNTL__TEST_MODE_MASK 0x00000200L #define CLK_PWRMGT_CNTL__TEST_MODE 0x00000200L #define CLK_PWRMGT_CNTL__GLOBAL_PMAN_EN_MASK 0x00000400L #define CLK_PWRMGT_CNTL__GLOBAL_PMAN_EN 0x00000400L #define CLK_PWRMGT_CNTL__ENGINE_DYNCLK_MODE_MASK 0x00001000L #define CLK_PWRMGT_CNTL__ENGINE_DYNCLK_MODE 0x00001000L #define CLK_PWRMGT_CNTL__ACTIVE_HILO_LAT_MASK 0x00006000L #define CLK_PWRMGT_CNTL__DISP_DYN_STOP_LAT_MASK 0x00008000L #define CLK_PWRMGT_CNTL__DISP_DYN_STOP_LAT 0x00008000L #define CLK_PWRMGT_CNTL__MC_BUSY_MASK 0x00010000L #define CLK_PWRMGT_CNTL__MC_BUSY 0x00010000L #define CLK_PWRMGT_CNTL__MC_INT_CNTL_MASK 0x00020000L #define CLK_PWRMGT_CNTL__MC_INT_CNTL 0x00020000L #define CLK_PWRMGT_CNTL__MC_SWITCH_MASK 0x00040000L #define CLK_PWRMGT_CNTL__MC_SWITCH 0x00040000L #define CLK_PWRMGT_CNTL__DLL_READY_MASK 0x00080000L #define CLK_PWRMGT_CNTL__DLL_READY 0x00080000L #define CLK_PWRMGT_CNTL__DISP_PM_MASK 0x00100000L #define CLK_PWRMGT_CNTL__DISP_PM 0x00100000L #define CLK_PWRMGT_CNTL__DYN_STOP_MODE_MASK 0x00e00000L #define CLK_PWRMGT_CNTL__CG_NO1_DEBUG_MASK 0x3f000000L #define CLK_PWRMGT_CNTL__TVPLL_PWRMGT_OFF_MASK 0x40000000L #define CLK_PWRMGT_CNTL__TVPLL_PWRMGT_OFF 0x40000000L #define CLK_PWRMGT_CNTL__TVCLK_TURNOFF_MASK 0x80000000L #define CLK_PWRMGT_CNTL__TVCLK_TURNOFF 0x80000000L // BUS_CNTL1 #define BUS_CNTL1__PMI_IO_DISABLE_MASK 0x00000001L #define BUS_CNTL1__PMI_IO_DISABLE 0x00000001L #define BUS_CNTL1__PMI_MEM_DISABLE_MASK 0x00000002L #define BUS_CNTL1__PMI_MEM_DISABLE 0x00000002L #define BUS_CNTL1__PMI_BM_DISABLE_MASK 0x00000004L #define BUS_CNTL1__PMI_BM_DISABLE 0x00000004L #define BUS_CNTL1__PMI_INT_DISABLE_MASK 0x00000008L #define BUS_CNTL1__PMI_INT_DISABLE 0x00000008L #define BUS_CNTL1__BUS2_IMMEDIATE_PMI_DISABLE_MASK 0x00000020L #define BUS_CNTL1__BUS2_IMMEDIATE_PMI_DISABLE 0x00000020L #define BUS_CNTL1__BUS2_VGA_REG_COHERENCY_DIS_MASK 0x00000100L #define BUS_CNTL1__BUS2_VGA_REG_COHERENCY_DIS 0x00000100L #define BUS_CNTL1__BUS2_VGA_MEM_COHERENCY_DIS_MASK 0x00000200L #define BUS_CNTL1__BUS2_VGA_MEM_COHERENCY_DIS 0x00000200L #define BUS_CNTL1__BUS2_HDP_REG_COHERENCY_DIS_MASK 0x00000400L #define BUS_CNTL1__BUS2_HDP_REG_COHERENCY_DIS 0x00000400L #define BUS_CNTL1__BUS2_GUI_INITIATOR_COHERENCY_DIS_MASK 0x00000800L #define BUS_CNTL1__BUS2_GUI_INITIATOR_COHERENCY_DIS 0x00000800L #define BUS_CNTL1__MOBILE_PLATFORM_SEL_MASK 0x0c000000L #define BUS_CNTL1__SEND_SBA_LATENCY_MASK 0x70000000L #define BUS_CNTL1__AGPCLK_VALID_MASK 0x80000000L #define BUS_CNTL1__AGPCLK_VALID 0x80000000L // BUS_CNTL1 #define BUS_CNTL1__PMI_IO_DISABLE__SHIFT 0x00000000 #define BUS_CNTL1__PMI_MEM_DISABLE__SHIFT 0x00000001 #define BUS_CNTL1__PMI_BM_DISABLE__SHIFT 0x00000002 #define BUS_CNTL1__PMI_INT_DISABLE__SHIFT 0x00000003 #define BUS_CNTL1__BUS2_IMMEDIATE_PMI_DISABLE__SHIFT 0x00000005 #define BUS_CNTL1__BUS2_VGA_REG_COHERENCY_DIS__SHIFT 0x00000008 #define BUS_CNTL1__BUS2_VGA_MEM_COHERENCY_DIS__SHIFT 0x00000009 #define BUS_CNTL1__BUS2_HDP_REG_COHERENCY_DIS__SHIFT 0x0000000a #define BUS_CNTL1__BUS2_GUI_INITIATOR_COHERENCY_DIS__SHIFT 0x0000000b #define BUS_CNTL1__MOBILE_PLATFORM_SEL__SHIFT 0x0000001a #define BUS_CNTL1__SEND_SBA_LATENCY__SHIFT 0x0000001c #define BUS_CNTL1__AGPCLK_VALID__SHIFT 0x0000001f // CRTC_OFFSET_CNTL #define CRTC_OFFSET_CNTL__CRTC_TILE_LINE_MASK 0x0000000fL #define CRTC_OFFSET_CNTL__CRTC_TILE_LINE_RIGHT_MASK 0x000000f0L #define CRTC_OFFSET_CNTL__CRTC_TILE_EN_RIGHT_MASK 0x00004000L #define CRTC_OFFSET_CNTL__CRTC_TILE_EN_RIGHT 0x00004000L #define CRTC_OFFSET_CNTL__CRTC_TILE_EN_MASK 0x00008000L #define CRTC_OFFSET_CNTL__CRTC_TILE_EN 0x00008000L #define CRTC_OFFSET_CNTL__CRTC_OFFSET_FLIP_CNTL_MASK 0x00010000L #define CRTC_OFFSET_CNTL__CRTC_OFFSET_FLIP_CNTL 0x00010000L #define CRTC_OFFSET_CNTL__CRTC_STEREO_OFFSET_EN_MASK 0x00020000L #define CRTC_OFFSET_CNTL__CRTC_STEREO_OFFSET_EN 0x00020000L #define CRTC_OFFSET_CNTL__CRTC_STEREO_SYNC_EN_MASK 0x000c0000L #define CRTC_OFFSET_CNTL__CRTC_STEREO_SYNC_OUT_EN_MASK 0x00100000L #define CRTC_OFFSET_CNTL__CRTC_STEREO_SYNC_OUT_EN 0x00100000L #define CRTC_OFFSET_CNTL__CRTC_STEREO_SYNC_MASK 0x00200000L #define CRTC_OFFSET_CNTL__CRTC_STEREO_SYNC 0x00200000L #define CRTC_OFFSET_CNTL__CRTC_GUI_TRIG_OFFSET_LEFT_EN_MASK 0x10000000L #define CRTC_OFFSET_CNTL__CRTC_GUI_TRIG_OFFSET_LEFT_EN 0x10000000L #define CRTC_OFFSET_CNTL__CRTC_GUI_TRIG_OFFSET_RIGHT_EN_MASK 0x20000000L #define CRTC_OFFSET_CNTL__CRTC_GUI_TRIG_OFFSET_RIGHT_EN 0x20000000L #define CRTC_OFFSET_CNTL__CRTC_GUI_TRIG_OFFSET_MASK 0x40000000L #define CRTC_OFFSET_CNTL__CRTC_GUI_TRIG_OFFSET 0x40000000L #define CRTC_OFFSET_CNTL__CRTC_OFFSET_LOCK_MASK 0x80000000L #define CRTC_OFFSET_CNTL__CRTC_OFFSET_LOCK 0x80000000L // CRTC_GEN_CNTL #define CRTC_GEN_CNTL__CRTC_DBL_SCAN_EN_MASK 0x00000001L #define CRTC_GEN_CNTL__CRTC_DBL_SCAN_EN 0x00000001L #define CRTC_GEN_CNTL__CRTC_INTERLACE_EN_MASK 0x00000002L #define CRTC_GEN_CNTL__CRTC_INTERLACE_EN 0x00000002L #define CRTC_GEN_CNTL__CRTC_C_SYNC_EN_MASK 0x00000010L #define CRTC_GEN_CNTL__CRTC_C_SYNC_EN 0x00000010L #define CRTC_GEN_CNTL__CRTC_PIX_WIDTH_MASK 0x00000f00L #define CRTC_GEN_CNTL__CRTC_ICON_EN_MASK 0x00008000L #define CRTC_GEN_CNTL__CRTC_ICON_EN 0x00008000L #define CRTC_GEN_CNTL__CRTC_CUR_EN_MASK 0x00010000L #define CRTC_GEN_CNTL__CRTC_CUR_EN 0x00010000L #define CRTC_GEN_CNTL__CRTC_VSTAT_MODE_MASK 0x00060000L #define CRTC_GEN_CNTL__CRTC_CUR_MODE_MASK 0x00700000L #define CRTC_GEN_CNTL__CRTC_EXT_DISP_EN_MASK 0x01000000L #define CRTC_GEN_CNTL__CRTC_EXT_DISP_EN 0x01000000L #define CRTC_GEN_CNTL__CRTC_EN_MASK 0x02000000L #define CRTC_GEN_CNTL__CRTC_EN 0x02000000L #define CRTC_GEN_CNTL__CRTC_DISP_REQ_EN_B_MASK 0x04000000L #define CRTC_GEN_CNTL__CRTC_DISP_REQ_EN_B 0x04000000L // CRTC2_GEN_CNTL #define CRTC2_GEN_CNTL__CRTC2_DBL_SCAN_EN_MASK 0x00000001L #define CRTC2_GEN_CNTL__CRTC2_DBL_SCAN_EN 0x00000001L #define CRTC2_GEN_CNTL__CRTC2_INTERLACE_EN_MASK 0x00000002L #define CRTC2_GEN_CNTL__CRTC2_INTERLACE_EN 0x00000002L #define CRTC2_GEN_CNTL__CRTC2_SYNC_TRISTATE_MASK 0x00000010L #define CRTC2_GEN_CNTL__CRTC2_SYNC_TRISTATE 0x00000010L #define CRTC2_GEN_CNTL__CRTC2_HSYNC_TRISTATE_MASK 0x00000020L #define CRTC2_GEN_CNTL__CRTC2_HSYNC_TRISTATE 0x00000020L #define CRTC2_GEN_CNTL__CRTC2_VSYNC_TRISTATE_MASK 0x00000040L #define CRTC2_GEN_CNTL__CRTC2_VSYNC_TRISTATE 0x00000040L #define CRTC2_GEN_CNTL__CRT2_ON_MASK 0x00000080L #define CRTC2_GEN_CNTL__CRT2_ON 0x00000080L #define CRTC2_GEN_CNTL__CRTC2_PIX_WIDTH_MASK 0x00000f00L #define CRTC2_GEN_CNTL__CRTC2_ICON_EN_MASK 0x00008000L #define CRTC2_GEN_CNTL__CRTC2_ICON_EN 0x00008000L #define CRTC2_GEN_CNTL__CRTC2_CUR_EN_MASK 0x00010000L #define CRTC2_GEN_CNTL__CRTC2_CUR_EN 0x00010000L #define CRTC2_GEN_CNTL__CRTC2_CUR_MODE_MASK 0x00700000L #define CRTC2_GEN_CNTL__CRTC2_DISPLAY_DIS_MASK 0x00800000L #define CRTC2_GEN_CNTL__CRTC2_DISPLAY_DIS 0x00800000L #define CRTC2_GEN_CNTL__CRTC2_EN_MASK 0x02000000L #define CRTC2_GEN_CNTL__CRTC2_EN 0x02000000L #define CRTC2_GEN_CNTL__CRTC2_DISP_REQ_EN_B_MASK 0x04000000L #define CRTC2_GEN_CNTL__CRTC2_DISP_REQ_EN_B 0x04000000L #define CRTC2_GEN_CNTL__CRTC2_C_SYNC_EN_MASK 0x08000000L #define CRTC2_GEN_CNTL__CRTC2_C_SYNC_EN 0x08000000L #define CRTC2_GEN_CNTL__CRTC2_HSYNC_DIS_MASK 0x10000000L #define CRTC2_GEN_CNTL__CRTC2_HSYNC_DIS 0x10000000L #define CRTC2_GEN_CNTL__CRTC2_VSYNC_DIS_MASK 0x20000000L #define CRTC2_GEN_CNTL__CRTC2_VSYNC_DIS 0x20000000L // AGP_CNTL #define AGP_CNTL__MAX_IDLE_CLK_MASK 0x000000ffL #define AGP_CNTL__HOLD_RD_FIFO_MASK 0x00000100L #define AGP_CNTL__HOLD_RD_FIFO 0x00000100L #define AGP_CNTL__HOLD_RQ_FIFO_MASK 0x00000200L #define AGP_CNTL__HOLD_RQ_FIFO 0x00000200L #define AGP_CNTL__EN_2X_STBB_MASK 0x00000400L #define AGP_CNTL__EN_2X_STBB 0x00000400L #define AGP_CNTL__FORCE_FULL_SBA_MASK 0x00000800L #define AGP_CNTL__FORCE_FULL_SBA 0x00000800L #define AGP_CNTL__SBA_DIS_MASK 0x00001000L #define AGP_CNTL__SBA_DIS 0x00001000L #define AGP_CNTL__AGP_REV_ID_MASK 0x00002000L #define AGP_CNTL__AGP_REV_ID 0x00002000L #define AGP_CNTL__REG_CRIPPLE_AGP4X_MASK 0x00004000L #define AGP_CNTL__REG_CRIPPLE_AGP4X 0x00004000L #define AGP_CNTL__REG_CRIPPLE_AGP2X4X_MASK 0x00008000L #define AGP_CNTL__REG_CRIPPLE_AGP2X4X 0x00008000L #define AGP_CNTL__FORCE_INT_VREF_MASK 0x00010000L #define AGP_CNTL__FORCE_INT_VREF 0x00010000L #define AGP_CNTL__PENDING_SLOTS_VAL_MASK 0x00060000L #define AGP_CNTL__PENDING_SLOTS_SEL_MASK 0x00080000L #define AGP_CNTL__PENDING_SLOTS_SEL 0x00080000L #define AGP_CNTL__EN_EXTENDED_AD_STB_2X_MASK 0x00100000L #define AGP_CNTL__EN_EXTENDED_AD_STB_2X 0x00100000L #define AGP_CNTL__DIS_QUEUED_GNT_FIX_MASK 0x00200000L #define AGP_CNTL__DIS_QUEUED_GNT_FIX 0x00200000L #define AGP_CNTL__EN_RDATA2X4X_MULTIRESET_MASK 0x00400000L #define AGP_CNTL__EN_RDATA2X4X_MULTIRESET 0x00400000L #define AGP_CNTL__EN_RBFCALM_MASK 0x00800000L #define AGP_CNTL__EN_RBFCALM 0x00800000L #define AGP_CNTL__FORCE_EXT_VREF_MASK 0x01000000L #define AGP_CNTL__FORCE_EXT_VREF 0x01000000L #define AGP_CNTL__DIS_RBF_MASK 0x02000000L #define AGP_CNTL__DIS_RBF 0x02000000L #define AGP_CNTL__DELAY_FIRST_SBA_EN_MASK 0x04000000L #define AGP_CNTL__DELAY_FIRST_SBA_EN 0x04000000L #define AGP_CNTL__DELAY_FIRST_SBA_VAL_MASK 0x38000000L #define AGP_CNTL__AGP_MISC_MASK 0xc0000000L // AGP_CNTL #define AGP_CNTL__MAX_IDLE_CLK__SHIFT 0x00000000 #define AGP_CNTL__HOLD_RD_FIFO__SHIFT 0x00000008 #define AGP_CNTL__HOLD_RQ_FIFO__SHIFT 0x00000009 #define AGP_CNTL__EN_2X_STBB__SHIFT 0x0000000a #define AGP_CNTL__FORCE_FULL_SBA__SHIFT 0x0000000b #define AGP_CNTL__SBA_DIS__SHIFT 0x0000000c #define AGP_CNTL__AGP_REV_ID__SHIFT 0x0000000d #define AGP_CNTL__REG_CRIPPLE_AGP4X__SHIFT 0x0000000e #define AGP_CNTL__REG_CRIPPLE_AGP2X4X__SHIFT 0x0000000f #define AGP_CNTL__FORCE_INT_VREF__SHIFT 0x00000010 #define AGP_CNTL__PENDING_SLOTS_VAL__SHIFT 0x00000011 #define AGP_CNTL__PENDING_SLOTS_SEL__SHIFT 0x00000013 #define AGP_CNTL__EN_EXTENDED_AD_STB_2X__SHIFT 0x00000014 #define AGP_CNTL__DIS_QUEUED_GNT_FIX__SHIFT 0x00000015 #define AGP_CNTL__EN_RDATA2X4X_MULTIRESET__SHIFT 0x00000016 #define AGP_CNTL__EN_RBFCALM__SHIFT 0x00000017 #define AGP_CNTL__FORCE_EXT_VREF__SHIFT 0x00000018 #define AGP_CNTL__DIS_RBF__SHIFT 0x00000019 #define AGP_CNTL__DELAY_FIRST_SBA_EN__SHIFT 0x0000001a #define AGP_CNTL__DELAY_FIRST_SBA_VAL__SHIFT 0x0000001b #define AGP_CNTL__AGP_MISC__SHIFT 0x0000001e // DISP_MISC_CNTL #define DISP_MISC_CNTL__SOFT_RESET_GRPH_PP_MASK 0x00000001L #define DISP_MISC_CNTL__SOFT_RESET_GRPH_PP 0x00000001L #define DISP_MISC_CNTL__SOFT_RESET_SUBPIC_PP_MASK 0x00000002L #define DISP_MISC_CNTL__SOFT_RESET_SUBPIC_PP 0x00000002L #define DISP_MISC_CNTL__SOFT_RESET_OV0_PP_MASK 0x00000004L #define DISP_MISC_CNTL__SOFT_RESET_OV0_PP 0x00000004L #define DISP_MISC_CNTL__SOFT_RESET_GRPH_SCLK_MASK 0x00000010L #define DISP_MISC_CNTL__SOFT_RESET_GRPH_SCLK 0x00000010L #define DISP_MISC_CNTL__SOFT_RESET_SUBPIC_SCLK_MASK 0x00000020L #define DISP_MISC_CNTL__SOFT_RESET_SUBPIC_SCLK 0x00000020L #define DISP_MISC_CNTL__SOFT_RESET_OV0_SCLK_MASK 0x00000040L #define DISP_MISC_CNTL__SOFT_RESET_OV0_SCLK 0x00000040L #define DISP_MISC_CNTL__SYNC_STRENGTH_MASK 0x00000300L #define DISP_MISC_CNTL__SYNC_PAD_FLOP_EN_MASK 0x00000400L #define DISP_MISC_CNTL__SYNC_PAD_FLOP_EN 0x00000400L #define DISP_MISC_CNTL__SOFT_RESET_GRPH2_PP_MASK 0x00001000L #define DISP_MISC_CNTL__SOFT_RESET_GRPH2_PP 0x00001000L #define DISP_MISC_CNTL__SOFT_RESET_GRPH2_SCLK_MASK 0x00008000L #define DISP_MISC_CNTL__SOFT_RESET_GRPH2_SCLK 0x00008000L #define DISP_MISC_CNTL__SOFT_RESET_LVDS_MASK 0x00010000L #define DISP_MISC_CNTL__SOFT_RESET_LVDS 0x00010000L #define DISP_MISC_CNTL__SOFT_RESET_TMDS_MASK 0x00020000L #define DISP_MISC_CNTL__SOFT_RESET_TMDS 0x00020000L #define DISP_MISC_CNTL__SOFT_RESET_DIG_TMDS_MASK 0x00040000L #define DISP_MISC_CNTL__SOFT_RESET_DIG_TMDS 0x00040000L #define DISP_MISC_CNTL__SOFT_RESET_TV_MASK 0x00080000L #define DISP_MISC_CNTL__SOFT_RESET_TV 0x00080000L #define DISP_MISC_CNTL__PALETTE2_MEM_RD_MARGIN_MASK 0x00f00000L #define DISP_MISC_CNTL__PALETTE_MEM_RD_MARGIN_MASK 0x0f000000L #define DISP_MISC_CNTL__RMX_BUF_MEM_RD_MARGIN_MASK 0xf0000000L // DISP_PWR_MAN #define DISP_PWR_MAN__DISP_PWR_MAN_D3_CRTC_EN_MASK 0x00000001L #define DISP_PWR_MAN__DISP_PWR_MAN_D3_CRTC_EN 0x00000001L #define DISP_PWR_MAN__DISP2_PWR_MAN_D3_CRTC2_EN_MASK 0x00000010L #define DISP_PWR_MAN__DISP2_PWR_MAN_D3_CRTC2_EN 0x00000010L #define DISP_PWR_MAN__DISP_PWR_MAN_DPMS_MASK 0x00000300L #define DISP_PWR_MAN__DISP_D3_RST_MASK 0x00010000L #define DISP_PWR_MAN__DISP_D3_RST 0x00010000L #define DISP_PWR_MAN__DISP_D3_REG_RST_MASK 0x00020000L #define DISP_PWR_MAN__DISP_D3_REG_RST 0x00020000L #define DISP_PWR_MAN__DISP_D3_GRPH_RST_MASK 0x00040000L #define DISP_PWR_MAN__DISP_D3_GRPH_RST 0x00040000L #define DISP_PWR_MAN__DISP_D3_SUBPIC_RST_MASK 0x00080000L #define DISP_PWR_MAN__DISP_D3_SUBPIC_RST 0x00080000L #define DISP_PWR_MAN__DISP_D3_OV0_RST_MASK 0x00100000L #define DISP_PWR_MAN__DISP_D3_OV0_RST 0x00100000L #define DISP_PWR_MAN__DISP_D1D2_GRPH_RST_MASK 0x00200000L #define DISP_PWR_MAN__DISP_D1D2_GRPH_RST 0x00200000L #define DISP_PWR_MAN__DISP_D1D2_SUBPIC_RST_MASK 0x00400000L #define DISP_PWR_MAN__DISP_D1D2_SUBPIC_RST 0x00400000L #define DISP_PWR_MAN__DISP_D1D2_OV0_RST_MASK 0x00800000L #define DISP_PWR_MAN__DISP_D1D2_OV0_RST 0x00800000L #define DISP_PWR_MAN__DIG_TMDS_ENABLE_RST_MASK 0x01000000L #define DISP_PWR_MAN__DIG_TMDS_ENABLE_RST 0x01000000L #define DISP_PWR_MAN__TV_ENABLE_RST_MASK 0x02000000L #define DISP_PWR_MAN__TV_ENABLE_RST 0x02000000L #define DISP_PWR_MAN__AUTO_PWRUP_EN_MASK 0x04000000L #define DISP_PWR_MAN__AUTO_PWRUP_EN 0x04000000L // MC_IND_INDEX #define MC_IND_INDEX__MC_IND_ADDR_MASK 0x0000001fL #define MC_IND_INDEX__MC_IND_WR_EN_MASK 0x00000100L #define MC_IND_INDEX__MC_IND_WR_EN 0x00000100L // MC_IND_DATA #define MC_IND_DATA__MC_IND_DATA_MASK 0xffffffffL // MC_CHP_IO_CNTL_A1 #define MC_CHP_IO_CNTL_A1__MEM_SLEWN_CKA__SHIFT 0x00000000 #define MC_CHP_IO_CNTL_A1__MEM_SLEWN_AA__SHIFT 0x00000001 #define MC_CHP_IO_CNTL_A1__MEM_SLEWN_DQMA__SHIFT 0x00000002 #define MC_CHP_IO_CNTL_A1__MEM_SLEWN_DQSA__SHIFT 0x00000003 #define MC_CHP_IO_CNTL_A1__MEM_SLEWP_CKA__SHIFT 0x00000004 #define MC_CHP_IO_CNTL_A1__MEM_SLEWP_AA__SHIFT 0x00000005 #define MC_CHP_IO_CNTL_A1__MEM_SLEWP_DQMA__SHIFT 0x00000006 #define MC_CHP_IO_CNTL_A1__MEM_SLEWP_DQSA__SHIFT 0x00000007 #define MC_CHP_IO_CNTL_A1__MEM_PREAMP_AA__SHIFT 0x00000008 #define MC_CHP_IO_CNTL_A1__MEM_PREAMP_DQMA__SHIFT 0x00000009 #define MC_CHP_IO_CNTL_A1__MEM_PREAMP_DQSA__SHIFT 0x0000000a #define MC_CHP_IO_CNTL_A1__MEM_IO_MODEA__SHIFT 0x0000000c #define MC_CHP_IO_CNTL_A1__MEM_REC_CKA__SHIFT 0x0000000e #define MC_CHP_IO_CNTL_A1__MEM_REC_AA__SHIFT 0x00000010 #define MC_CHP_IO_CNTL_A1__MEM_REC_DQMA__SHIFT 0x00000012 #define MC_CHP_IO_CNTL_A1__MEM_REC_DQSA__SHIFT 0x00000014 #define MC_CHP_IO_CNTL_A1__MEM_SYNC_PHASEA__SHIFT 0x00000016 #define MC_CHP_IO_CNTL_A1__MEM_SYNC_CENTERA__SHIFT 0x00000017 #define MC_CHP_IO_CNTL_A1__MEM_SYNC_ENA__SHIFT 0x00000018 #define MC_CHP_IO_CNTL_A1__MEM_CLK_SELA__SHIFT 0x0000001a #define MC_CHP_IO_CNTL_A1__MEM_CLK_INVA__SHIFT 0x0000001c #define MC_CHP_IO_CNTL_A1__MEM_DATA_ENIMP_A__SHIFT 0x0000001e #define MC_CHP_IO_CNTL_A1__MEM_CNTL_ENIMP_A__SHIFT 0x0000001f // MC_CHP_IO_CNTL_B1 #define MC_CHP_IO_CNTL_B1__MEM_SLEWN_CKB__SHIFT 0x00000000 #define MC_CHP_IO_CNTL_B1__MEM_SLEWN_AB__SHIFT 0x00000001 #define MC_CHP_IO_CNTL_B1__MEM_SLEWN_DQMB__SHIFT 0x00000002 #define MC_CHP_IO_CNTL_B1__MEM_SLEWN_DQSB__SHIFT 0x00000003 #define MC_CHP_IO_CNTL_B1__MEM_SLEWP_CKB__SHIFT 0x00000004 #define MC_CHP_IO_CNTL_B1__MEM_SLEWP_AB__SHIFT 0x00000005 #define MC_CHP_IO_CNTL_B1__MEM_SLEWP_DQMB__SHIFT 0x00000006 #define MC_CHP_IO_CNTL_B1__MEM_SLEWP_DQSB__SHIFT 0x00000007 #define MC_CHP_IO_CNTL_B1__MEM_PREAMP_AB__SHIFT 0x00000008 #define MC_CHP_IO_CNTL_B1__MEM_PREAMP_DQMB__SHIFT 0x00000009 #define MC_CHP_IO_CNTL_B1__MEM_PREAMP_DQSB__SHIFT 0x0000000a #define MC_CHP_IO_CNTL_B1__MEM_IO_MODEB__SHIFT 0x0000000c #define MC_CHP_IO_CNTL_B1__MEM_REC_CKB__SHIFT 0x0000000e #define MC_CHP_IO_CNTL_B1__MEM_REC_AB__SHIFT 0x00000010 #define MC_CHP_IO_CNTL_B1__MEM_REC_DQMB__SHIFT 0x00000012 #define MC_CHP_IO_CNTL_B1__MEM_REC_DQSB__SHIFT 0x00000014 #define MC_CHP_IO_CNTL_B1__MEM_SYNC_PHASEB__SHIFT 0x00000016 #define MC_CHP_IO_CNTL_B1__MEM_SYNC_CENTERB__SHIFT 0x00000017 #define MC_CHP_IO_CNTL_B1__MEM_SYNC_ENB__SHIFT 0x00000018 #define MC_CHP_IO_CNTL_B1__MEM_CLK_SELB__SHIFT 0x0000001a #define MC_CHP_IO_CNTL_B1__MEM_CLK_INVB__SHIFT 0x0000001c #define MC_CHP_IO_CNTL_B1__MEM_DATA_ENIMP_B__SHIFT 0x0000001e #define MC_CHP_IO_CNTL_B1__MEM_CNTL_ENIMP_B__SHIFT 0x0000001f // MC_CHP_IO_CNTL_A1 #define MC_CHP_IO_CNTL_A1__MEM_SLEWN_CKA_MASK 0x00000001L #define MC_CHP_IO_CNTL_A1__MEM_SLEWN_CKA 0x00000001L #define MC_CHP_IO_CNTL_A1__MEM_SLEWN_AA_MASK 0x00000002L #define MC_CHP_IO_CNTL_A1__MEM_SLEWN_AA 0x00000002L #define MC_CHP_IO_CNTL_A1__MEM_SLEWN_DQMA_MASK 0x00000004L #define MC_CHP_IO_CNTL_A1__MEM_SLEWN_DQMA 0x00000004L #define MC_CHP_IO_CNTL_A1__MEM_SLEWN_DQSA_MASK 0x00000008L #define MC_CHP_IO_CNTL_A1__MEM_SLEWN_DQSA 0x00000008L #define MC_CHP_IO_CNTL_A1__MEM_SLEWP_CKA_MASK 0x00000010L #define MC_CHP_IO_CNTL_A1__MEM_SLEWP_CKA 0x00000010L #define MC_CHP_IO_CNTL_A1__MEM_SLEWP_AA_MASK 0x00000020L #define MC_CHP_IO_CNTL_A1__MEM_SLEWP_AA 0x00000020L #define MC_CHP_IO_CNTL_A1__MEM_SLEWP_DQMA_MASK 0x00000040L #define MC_CHP_IO_CNTL_A1__MEM_SLEWP_DQMA 0x00000040L #define MC_CHP_IO_CNTL_A1__MEM_SLEWP_DQSA_MASK 0x00000080L #define MC_CHP_IO_CNTL_A1__MEM_SLEWP_DQSA 0x00000080L #define MC_CHP_IO_CNTL_A1__MEM_PREAMP_AA_MASK 0x00000100L #define MC_CHP_IO_CNTL_A1__MEM_PREAMP_AA 0x00000100L #define MC_CHP_IO_CNTL_A1__MEM_PREAMP_DQMA_MASK 0x00000200L #define MC_CHP_IO_CNTL_A1__MEM_PREAMP_DQMA 0x00000200L #define MC_CHP_IO_CNTL_A1__MEM_PREAMP_DQSA_MASK 0x00000400L #define MC_CHP_IO_CNTL_A1__MEM_PREAMP_DQSA 0x00000400L #define MC_CHP_IO_CNTL_A1__MEM_IO_MODEA_MASK 0x00003000L #define MC_CHP_IO_CNTL_A1__MEM_REC_CKA_MASK 0x0000c000L #define MC_CHP_IO_CNTL_A1__MEM_REC_AA_MASK 0x00030000L #define MC_CHP_IO_CNTL_A1__MEM_REC_DQMA_MASK 0x000c0000L #define MC_CHP_IO_CNTL_A1__MEM_REC_DQSA_MASK 0x00300000L #define MC_CHP_IO_CNTL_A1__MEM_SYNC_PHASEA_MASK 0x00400000L #define MC_CHP_IO_CNTL_A1__MEM_SYNC_PHASEA 0x00400000L #define MC_CHP_IO_CNTL_A1__MEM_SYNC_CENTERA_MASK 0x00800000L #define MC_CHP_IO_CNTL_A1__MEM_SYNC_CENTERA 0x00800000L #define MC_CHP_IO_CNTL_A1__MEM_SYNC_ENA_MASK 0x03000000L #define MC_CHP_IO_CNTL_A1__MEM_CLK_SELA_MASK 0x0c000000L #define MC_CHP_IO_CNTL_A1__MEM_CLK_INVA_MASK 0x10000000L #define MC_CHP_IO_CNTL_A1__MEM_CLK_INVA 0x10000000L #define MC_CHP_IO_CNTL_A1__MEM_DATA_ENIMP_A_MASK 0x40000000L #define MC_CHP_IO_CNTL_A1__MEM_DATA_ENIMP_A 0x40000000L #define MC_CHP_IO_CNTL_A1__MEM_CNTL_ENIMP_A_MASK 0x80000000L #define MC_CHP_IO_CNTL_A1__MEM_CNTL_ENIMP_A 0x80000000L // MC_CHP_IO_CNTL_B1 #define MC_CHP_IO_CNTL_B1__MEM_SLEWN_CKB_MASK 0x00000001L #define MC_CHP_IO_CNTL_B1__MEM_SLEWN_CKB 0x00000001L #define MC_CHP_IO_CNTL_B1__MEM_SLEWN_AB_MASK 0x00000002L #define MC_CHP_IO_CNTL_B1__MEM_SLEWN_AB 0x00000002L #define MC_CHP_IO_CNTL_B1__MEM_SLEWN_DQMB_MASK 0x00000004L #define MC_CHP_IO_CNTL_B1__MEM_SLEWN_DQMB 0x00000004L #define MC_CHP_IO_CNTL_B1__MEM_SLEWN_DQSB_MASK 0x00000008L #define MC_CHP_IO_CNTL_B1__MEM_SLEWN_DQSB 0x00000008L #define MC_CHP_IO_CNTL_B1__MEM_SLEWP_CKB_MASK 0x00000010L #define MC_CHP_IO_CNTL_B1__MEM_SLEWP_CKB 0x00000010L #define MC_CHP_IO_CNTL_B1__MEM_SLEWP_AB_MASK 0x00000020L #define MC_CHP_IO_CNTL_B1__MEM_SLEWP_AB 0x00000020L #define MC_CHP_IO_CNTL_B1__MEM_SLEWP_DQMB_MASK 0x00000040L #define MC_CHP_IO_CNTL_B1__MEM_SLEWP_DQMB 0x00000040L #define MC_CHP_IO_CNTL_B1__MEM_SLEWP_DQSB_MASK 0x00000080L #define MC_CHP_IO_CNTL_B1__MEM_SLEWP_DQSB 0x00000080L #define MC_CHP_IO_CNTL_B1__MEM_PREAMP_AB_MASK 0x00000100L #define MC_CHP_IO_CNTL_B1__MEM_PREAMP_AB 0x00000100L #define MC_CHP_IO_CNTL_B1__MEM_PREAMP_DQMB_MASK 0x00000200L #define MC_CHP_IO_CNTL_B1__MEM_PREAMP_DQMB 0x00000200L #define MC_CHP_IO_CNTL_B1__MEM_PREAMP_DQSB_MASK 0x00000400L #define MC_CHP_IO_CNTL_B1__MEM_PREAMP_DQSB 0x00000400L #define MC_CHP_IO_CNTL_B1__MEM_IO_MODEB_MASK 0x00003000L #define MC_CHP_IO_CNTL_B1__MEM_REC_CKB_MASK 0x0000c000L #define MC_CHP_IO_CNTL_B1__MEM_REC_AB_MASK 0x00030000L #define MC_CHP_IO_CNTL_B1__MEM_REC_DQMB_MASK 0x000c0000L #define MC_CHP_IO_CNTL_B1__MEM_REC_DQSB_MASK 0x00300000L #define MC_CHP_IO_CNTL_B1__MEM_SYNC_PHASEB_MASK 0x00400000L #define MC_CHP_IO_CNTL_B1__MEM_SYNC_PHASEB 0x00400000L #define MC_CHP_IO_CNTL_B1__MEM_SYNC_CENTERB_MASK 0x00800000L #define MC_CHP_IO_CNTL_B1__MEM_SYNC_CENTERB 0x00800000L #define MC_CHP_IO_CNTL_B1__MEM_SYNC_ENB_MASK 0x03000000L #define MC_CHP_IO_CNTL_B1__MEM_CLK_SELB_MASK 0x0c000000L #define MC_CHP_IO_CNTL_B1__MEM_CLK_INVB_MASK 0x10000000L #define MC_CHP_IO_CNTL_B1__MEM_CLK_INVB 0x10000000L #define MC_CHP_IO_CNTL_B1__MEM_DATA_ENIMP_B_MASK 0x40000000L #define MC_CHP_IO_CNTL_B1__MEM_DATA_ENIMP_B 0x40000000L #define MC_CHP_IO_CNTL_B1__MEM_CNTL_ENIMP_B_MASK 0x80000000L #define MC_CHP_IO_CNTL_B1__MEM_CNTL_ENIMP_B 0x80000000L // MEM_SDRAM_MODE_REG #define MEM_SDRAM_MODE_REG__MEM_MODE_REG_MASK 0x00007fffL #define MEM_SDRAM_MODE_REG__MEM_WR_LATENCY_MASK 0x000f0000L #define MEM_SDRAM_MODE_REG__MEM_CAS_LATENCY_MASK 0x00700000L #define MEM_SDRAM_MODE_REG__MEM_CMD_LATENCY_MASK 0x00800000L #define MEM_SDRAM_MODE_REG__MEM_CMD_LATENCY 0x00800000L #define MEM_SDRAM_MODE_REG__MEM_STR_LATENCY_MASK 0x01000000L #define MEM_SDRAM_MODE_REG__MEM_STR_LATENCY 0x01000000L #define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_CMD_MASK 0x02000000L #define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_CMD 0x02000000L #define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_DATA_MASK 0x04000000L #define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_DATA 0x04000000L #define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_STR_MASK 0x08000000L #define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_STR 0x08000000L #define MEM_SDRAM_MODE_REG__MC_INIT_COMPLETE_MASK 0x10000000L #define MEM_SDRAM_MODE_REG__MC_INIT_COMPLETE 0x10000000L #define MEM_SDRAM_MODE_REG__MEM_DDR_DLL_MASK 0x20000000L #define MEM_SDRAM_MODE_REG__MEM_DDR_DLL 0x20000000L #define MEM_SDRAM_MODE_REG__MEM_CFG_TYPE_MASK 0x40000000L #define MEM_SDRAM_MODE_REG__MEM_CFG_TYPE 0x40000000L #define MEM_SDRAM_MODE_REG__MEM_SDRAM_RESET_MASK 0x80000000L #define MEM_SDRAM_MODE_REG__MEM_SDRAM_RESET 0x80000000L // MEM_SDRAM_MODE_REG #define MEM_SDRAM_MODE_REG__MEM_MODE_REG__SHIFT 0x00000000 #define MEM_SDRAM_MODE_REG__MEM_WR_LATENCY__SHIFT 0x00000010 #define MEM_SDRAM_MODE_REG__MEM_CAS_LATENCY__SHIFT 0x00000014 #define MEM_SDRAM_MODE_REG__MEM_CMD_LATENCY__SHIFT 0x00000017 #define MEM_SDRAM_MODE_REG__MEM_STR_LATENCY__SHIFT 0x00000018 #define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_CMD__SHIFT 0x00000019 #define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_DATA__SHIFT 0x0000001a #define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_STR__SHIFT 0x0000001b #define MEM_SDRAM_MODE_REG__MC_INIT_COMPLETE__SHIFT 0x0000001c #define MEM_SDRAM_MODE_REG__MEM_DDR_DLL__SHIFT 0x0000001d #define MEM_SDRAM_MODE_REG__MEM_CFG_TYPE__SHIFT 0x0000001e #define MEM_SDRAM_MODE_REG__MEM_SDRAM_RESET__SHIFT 0x0000001f // MEM_REFRESH_CNTL #define MEM_REFRESH_CNTL__MEM_REFRESH_RATE_MASK 0x000000ffL #define MEM_REFRESH_CNTL__MEM_REFRESH_DIS_MASK 0x00000100L #define MEM_REFRESH_CNTL__MEM_REFRESH_DIS 0x00000100L #define MEM_REFRESH_CNTL__MEM_DYNAMIC_CKE_MASK 0x00000200L #define MEM_REFRESH_CNTL__MEM_DYNAMIC_CKE 0x00000200L #define MEM_REFRESH_CNTL__MEM_TRFC_MASK 0x0000f000L #define MEM_REFRESH_CNTL__MEM_CLKA0_ENABLE_MASK 0x00010000L #define MEM_REFRESH_CNTL__MEM_CLKA0_ENABLE 0x00010000L #define MEM_REFRESH_CNTL__MEM_CLKA0b_ENABLE_MASK 0x00020000L #define MEM_REFRESH_CNTL__MEM_CLKA0b_ENABLE 0x00020000L #define MEM_REFRESH_CNTL__MEM_CLKA1_ENABLE_MASK 0x00040000L #define MEM_REFRESH_CNTL__MEM_CLKA1_ENABLE 0x00040000L #define MEM_REFRESH_CNTL__MEM_CLKA1b_ENABLE_MASK 0x00080000L #define MEM_REFRESH_CNTL__MEM_CLKA1b_ENABLE 0x00080000L #define MEM_REFRESH_CNTL__MEM_CLKAFB_ENABLE_MASK 0x00100000L #define MEM_REFRESH_CNTL__MEM_CLKAFB_ENABLE 0x00100000L #define MEM_REFRESH_CNTL__DLL_FB_SLCT_CKA_MASK 0x00c00000L #define MEM_REFRESH_CNTL__MEM_CLKB0_ENABLE_MASK 0x01000000L #define MEM_REFRESH_CNTL__MEM_CLKB0_ENABLE 0x01000000L #define MEM_REFRESH_CNTL__MEM_CLKB0b_ENABLE_MASK 0x02000000L #define MEM_REFRESH_CNTL__MEM_CLKB0b_ENABLE 0x02000000L #define MEM_REFRESH_CNTL__MEM_CLKB1_ENABLE_MASK 0x04000000L #define MEM_REFRESH_CNTL__MEM_CLKB1_ENABLE 0x04000000L #define MEM_REFRESH_CNTL__MEM_CLKB1b_ENABLE_MASK 0x08000000L #define MEM_REFRESH_CNTL__MEM_CLKB1b_ENABLE 0x08000000L #define MEM_REFRESH_CNTL__MEM_CLKBFB_ENABLE_MASK 0x10000000L #define MEM_REFRESH_CNTL__MEM_CLKBFB_ENABLE 0x10000000L #define MEM_REFRESH_CNTL__DLL_FB_SLCT_CKB_MASK 0xc0000000L // MC_STATUS #define MC_STATUS__MEM_PWRUP_COMPL_A_MASK 0x00000001L #define MC_STATUS__MEM_PWRUP_COMPL_A 0x00000001L #define MC_STATUS__MEM_PWRUP_COMPL_B_MASK 0x00000002L #define MC_STATUS__MEM_PWRUP_COMPL_B 0x00000002L #define MC_STATUS__MC_IDLE_MASK 0x00000004L #define MC_STATUS__MC_IDLE 0x00000004L #define MC_STATUS__IMP_N_VALUE_R_BACK_MASK 0x00000078L #define MC_STATUS__IMP_P_VALUE_R_BACK_MASK 0x00000780L #define MC_STATUS__TEST_OUT_R_BACK_MASK 0x00000800L #define MC_STATUS__TEST_OUT_R_BACK 0x00000800L #define MC_STATUS__DUMMY_OUT_R_BACK_MASK 0x00001000L #define MC_STATUS__DUMMY_OUT_R_BACK 0x00001000L #define MC_STATUS__IMP_N_VALUE_A_R_BACK_MASK 0x0001e000L #define MC_STATUS__IMP_P_VALUE_A_R_BACK_MASK 0x001e0000L #define MC_STATUS__IMP_N_VALUE_CK_R_BACK_MASK 0x01e00000L #define MC_STATUS__IMP_P_VALUE_CK_R_BACK_MASK 0x1e000000L // MDLL_CKO #define MDLL_CKO__MCKOA_SLEEP_MASK 0x00000001L #define MDLL_CKO__MCKOA_SLEEP 0x00000001L #define MDLL_CKO__MCKOA_RESET_MASK 0x00000002L #define MDLL_CKO__MCKOA_RESET 0x00000002L #define MDLL_CKO__MCKOA_RANGE_MASK 0x0000000cL #define MDLL_CKO__ERSTA_SOUTSEL_MASK 0x00000030L #define MDLL_CKO__MCKOA_FB_SEL_MASK 0x000000c0L #define MDLL_CKO__MCKOA_REF_SKEW_MASK 0x00000700L #define MDLL_CKO__MCKOA_FB_SKEW_MASK 0x00007000L #define MDLL_CKO__MCKOA_BP_SEL_MASK 0x00008000L #define MDLL_CKO__MCKOA_BP_SEL 0x00008000L #define MDLL_CKO__MCKOB_SLEEP_MASK 0x00010000L #define MDLL_CKO__MCKOB_SLEEP 0x00010000L #define MDLL_CKO__MCKOB_RESET_MASK 0x00020000L #define MDLL_CKO__MCKOB_RESET 0x00020000L #define MDLL_CKO__MCKOB_RANGE_MASK 0x000c0000L #define MDLL_CKO__ERSTB_SOUTSEL_MASK 0x00300000L #define MDLL_CKO__MCKOB_FB_SEL_MASK 0x00c00000L #define MDLL_CKO__MCKOB_REF_SKEW_MASK 0x07000000L #define MDLL_CKO__MCKOB_FB_SKEW_MASK 0x70000000L #define MDLL_CKO__MCKOB_BP_SEL_MASK 0x80000000L #define MDLL_CKO__MCKOB_BP_SEL 0x80000000L // MDLL_RDCKA #define MDLL_RDCKA__MRDCKA0_SLEEP_MASK 0x00000001L #define MDLL_RDCKA__MRDCKA0_SLEEP 0x00000001L #define MDLL_RDCKA__MRDCKA0_RESET_MASK 0x00000002L #define MDLL_RDCKA__MRDCKA0_RESET 0x00000002L #define MDLL_RDCKA__MRDCKA0_RANGE_MASK 0x0000000cL #define MDLL_RDCKA__MRDCKA0_REF_SEL_MASK 0x00000030L #define MDLL_RDCKA__MRDCKA0_FB_SEL_MASK 0x000000c0L #define MDLL_RDCKA__MRDCKA0_REF_SKEW_MASK 0x00000700L #define MDLL_RDCKA__MRDCKA0_SINSEL_MASK 0x00000800L #define MDLL_RDCKA__MRDCKA0_SINSEL 0x00000800L #define MDLL_RDCKA__MRDCKA0_FB_SKEW_MASK 0x00007000L #define MDLL_RDCKA__MRDCKA0_BP_SEL_MASK 0x00008000L #define MDLL_RDCKA__MRDCKA0_BP_SEL 0x00008000L #define MDLL_RDCKA__MRDCKA1_SLEEP_MASK 0x00010000L #define MDLL_RDCKA__MRDCKA1_SLEEP 0x00010000L #define MDLL_RDCKA__MRDCKA1_RESET_MASK 0x00020000L #define MDLL_RDCKA__MRDCKA1_RESET 0x00020000L #define MDLL_RDCKA__MRDCKA1_RANGE_MASK 0x000c0000L #define MDLL_RDCKA__MRDCKA1_REF_SEL_MASK 0x00300000L #define MDLL_RDCKA__MRDCKA1_FB_SEL_MASK 0x00c00000L #define MDLL_RDCKA__MRDCKA1_REF_SKEW_MASK 0x07000000L #define MDLL_RDCKA__MRDCKA1_SINSEL_MASK 0x08000000L #define MDLL_RDCKA__MRDCKA1_SINSEL 0x08000000L #define MDLL_RDCKA__MRDCKA1_FB_SKEW_MASK 0x70000000L #define MDLL_RDCKA__MRDCKA1_BP_SEL_MASK 0x80000000L #define MDLL_RDCKA__MRDCKA1_BP_SEL 0x80000000L // MDLL_RDCKB #define MDLL_RDCKB__MRDCKB0_SLEEP_MASK 0x00000001L #define MDLL_RDCKB__MRDCKB0_SLEEP 0x00000001L #define MDLL_RDCKB__MRDCKB0_RESET_MASK 0x00000002L #define MDLL_RDCKB__MRDCKB0_RESET 0x00000002L #define MDLL_RDCKB__MRDCKB0_RANGE_MASK 0x0000000cL #define MDLL_RDCKB__MRDCKB0_REF_SEL_MASK 0x00000030L #define MDLL_RDCKB__MRDCKB0_FB_SEL_MASK 0x000000c0L #define MDLL_RDCKB__MRDCKB0_REF_SKEW_MASK 0x00000700L #define MDLL_RDCKB__MRDCKB0_SINSEL_MASK 0x00000800L #define MDLL_RDCKB__MRDCKB0_SINSEL 0x00000800L #define MDLL_RDCKB__MRDCKB0_FB_SKEW_MASK 0x00007000L #define MDLL_RDCKB__MRDCKB0_BP_SEL_MASK 0x00008000L #define MDLL_RDCKB__MRDCKB0_BP_SEL 0x00008000L #define MDLL_RDCKB__MRDCKB1_SLEEP_MASK 0x00010000L #define MDLL_RDCKB__MRDCKB1_SLEEP 0x00010000L #define MDLL_RDCKB__MRDCKB1_RESET_MASK 0x00020000L #define MDLL_RDCKB__MRDCKB1_RESET 0x00020000L #define MDLL_RDCKB__MRDCKB1_RANGE_MASK 0x000c0000L #define MDLL_RDCKB__MRDCKB1_REF_SEL_MASK 0x00300000L #define MDLL_RDCKB__MRDCKB1_FB_SEL_MASK 0x00c00000L #define MDLL_RDCKB__MRDCKB1_REF_SKEW_MASK 0x07000000L #define MDLL_RDCKB__MRDCKB1_SINSEL_MASK 0x08000000L #define MDLL_RDCKB__MRDCKB1_SINSEL 0x08000000L #define MDLL_RDCKB__MRDCKB1_FB_SKEW_MASK 0x70000000L #define MDLL_RDCKB__MRDCKB1_BP_SEL_MASK 0x80000000L #define MDLL_RDCKB__MRDCKB1_BP_SEL 0x80000000L #define MDLL_R300_RDCK__MRDCKA_SLEEP 0x00000001L #define MDLL_R300_RDCK__MRDCKA_RESET 0x00000002L #define MDLL_R300_RDCK__MRDCKB_SLEEP 0x00000004L #define MDLL_R300_RDCK__MRDCKB_RESET 0x00000008L #define MDLL_R300_RDCK__MRDCKC_SLEEP 0x00000010L #define MDLL_R300_RDCK__MRDCKC_RESET 0x00000020L #define MDLL_R300_RDCK__MRDCKD_SLEEP 0x00000040L #define MDLL_R300_RDCK__MRDCKD_RESET 0x00000080L #define pllCLK_PIN_CNTL 0x0001 #define pllPPLL_CNTL 0x0002 #define pllPPLL_REF_DIV 0x0003 #define pllPPLL_DIV_0 0x0004 #define pllPPLL_DIV_1 0x0005 #define pllPPLL_DIV_2 0x0006 #define pllPPLL_DIV_3 0x0007 #define pllVCLK_ECP_CNTL 0x0008 #define pllHTOTAL_CNTL 0x0009 #define pllM_SPLL_REF_FB_DIV 0x000A #define pllAGP_PLL_CNTL 0x000B #define pllSPLL_CNTL 0x000C #define pllSCLK_CNTL 0x000D #define pllMPLL_CNTL 0x000E #define pllMDLL_CKO 0x000F #define pllMDLL_RDCKA 0x0010 #define pllMDLL_RDCKB 0x0011 #define pllMCLK_CNTL 0x0012 #define pllPLL_TEST_CNTL 0x0013 #define pllCLK_PWRMGT_CNTL 0x0014 #define pllPLL_PWRMGT_CNTL 0x0015 #define pllCG_TEST_MACRO_RW_WRITE 0x0016 #define pllCG_TEST_MACRO_RW_READ 0x0017 #define pllCG_TEST_MACRO_RW_DATA 0x0018 #define pllCG_TEST_MACRO_RW_CNTL 0x0019 #define pllDISP_TEST_MACRO_RW_WRITE 0x001A #define pllDISP_TEST_MACRO_RW_READ 0x001B #define pllDISP_TEST_MACRO_RW_DATA 0x001C #define pllDISP_TEST_MACRO_RW_CNTL 0x001D #define pllSCLK_CNTL2 0x001E #define pllMCLK_MISC 0x001F #define pllTV_PLL_FINE_CNTL 0x0020 #define pllTV_PLL_CNTL 0x0021 #define pllTV_PLL_CNTL1 0x0022 #define pllTV_DTO_INCREMENTS 0x0023 #define pllSPLL_AUX_CNTL 0x0024 #define pllMPLL_AUX_CNTL 0x0025 #define pllP2PLL_CNTL 0x002A #define pllP2PLL_REF_DIV 0x002B #define pllP2PLL_DIV_0 0x002C #define pllPIXCLKS_CNTL 0x002D #define pllHTOTAL2_CNTL 0x002E #define pllSSPLL_CNTL 0x0030 #define pllSSPLL_REF_DIV 0x0031 #define pllSSPLL_DIV_0 0x0032 #define pllSS_INT_CNTL 0x0033 #define pllSS_TST_CNTL 0x0034 #define pllSCLK_MORE_CNTL 0x0035 #define ixMC_PERF_CNTL 0x0000 #define ixMC_PERF_SEL 0x0001 #define ixMC_PERF_REGION_0 0x0002 #define ixMC_PERF_REGION_1 0x0003 #define ixMC_PERF_COUNT_0 0x0004 #define ixMC_PERF_COUNT_1 0x0005 #define ixMC_PERF_COUNT_2 0x0006 #define ixMC_PERF_COUNT_3 0x0007 #define ixMC_PERF_COUNT_MEMCH_A 0x0008 #define ixMC_PERF_COUNT_MEMCH_B 0x0009 #define ixMC_IMP_CNTL 0x000A #define ixMC_CHP_IO_CNTL_A0 0x000B #define ixMC_CHP_IO_CNTL_A1 0x000C #define ixMC_CHP_IO_CNTL_B0 0x000D #define ixMC_CHP_IO_CNTL_B1 0x000E #define ixMC_IMP_CNTL_0 0x000F #define ixTC_MISMATCH_1 0x0010 #define ixTC_MISMATCH_2 0x0011 #define ixMC_BIST_CTRL 0x0012 #define ixREG_COLLAR_WRITE 0x0013 #define ixREG_COLLAR_READ 0x0014 #define ixR300_MC_IMP_CNTL 0x0018 #define ixR300_MC_CHP_IO_CNTL_A0 0x0019 #define ixR300_MC_CHP_IO_CNTL_A1 0x001a #define ixR300_MC_CHP_IO_CNTL_B0 0x001b #define ixR300_MC_CHP_IO_CNTL_B1 0x001c #define ixR300_MC_CHP_IO_CNTL_C0 0x001d #define ixR300_MC_CHP_IO_CNTL_C1 0x001e #define ixR300_MC_CHP_IO_CNTL_D0 0x001f #define ixR300_MC_CHP_IO_CNTL_D1 0x0020 #define ixR300_MC_IMP_CNTL_0 0x0021 #define ixR300_MC_ELPIDA_CNTL 0x0022 #define ixR300_MC_CHP_IO_OE_CNTL_CD 0x0023 #define ixR300_MC_READ_CNTL_CD 0x0024 #define ixR300_MC_MC_INIT_WR_LAT_TIMER 0x0025 #define ixR300_MC_DEBUG_CNTL 0x0026 #define ixR300_MC_BIST_CNTL_0 0x0028 #define ixR300_MC_BIST_CNTL_1 0x0029 #define ixR300_MC_BIST_CNTL_2 0x002a #define ixR300_MC_BIST_CNTL_3 0x002b #define ixR300_MC_BIST_CNTL_4 0x002c #define ixR300_MC_BIST_CNTL_5 0x002d #define ixR300_MC_IMP_STATUS 0x002e #define ixR300_MC_DLL_CNTL 0x002f #define NB_TOM 0x15C #endif /* _RADEON_H */ rovclock-0.6e/rovclock.c0000644000175000001440000003306310357036324014225 0ustar haswusers/*****************************************************************************/ /* * rovclock.c -- Radeon overclocking utility. * * Copyright (C) 2005-2006 Sebastian Witt (se.witt@gmx.net) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /*****************************************************************************/ #include #include #include #include #include #include #include "pci.h" #include "radeon.h" #define VERSION "0.6e" #define PCI_VENDOR_ID_ATI 0x1002 #define XTAL 2700 typedef unsigned char u8; typedef unsigned short u16; typedef unsigned int u32; /* PLL info block from video BIOS */ struct pll_block { u8 clock_chip_type; u8 struct_size; u8 accelerator_entry; u8 VGA_entry; u16 VGA_table_offset; u16 POST_table_offset; u16 XCLK; u16 MCLK; u8 num_PLL_blocks; u8 size_PLL_blocks; u16 PCLK_ref_freq; u16 PCLK_ref_divider; u32 PCLK_min_freq; u32 PCLK_max_freq; u16 MCLK_ref_freq; u16 MCLK_ref_divider; u32 MCLK_min_freq; u32 MCLK_max_freq; u16 XCLK_ref_freq; u16 XCLK_ref_divider; u32 XCLK_min_freq; u32 XCLK_max_freq; } __attribute__ ((packed)); /* PLL register data */ struct pll_data { u8 M; u8 Nm; u8 Ns; u8 X; } __attribute__ ((packed)); /* Memory config locations */ struct mem_t { u16 reg; u32 mask; u8 shift; u8 offset; u16 value; char *description; }; struct mem_t mem_timings[] = { {EXT_MEM_CNTL, 0x00000007, 0, 3, 3, "tRcdRD: "}, {EXT_MEM_CNTL, 0x00000070, 4, 1, 2, "tRcdWR: "}, {EXT_MEM_CNTL, 0x00000700, 8, 3, 3, "tRP: "}, {EXT_MEM_CNTL, 0x00007800, 11, 6, 5, "tRAS: "}, {EXT_MEM_CNTL, 0x00038000, 15, 1, 2, "tRRD: "}, {EXT_MEM_CNTL, 0x000c0000, 18, 1, 2, "tR2W-CL: "}, {EXT_MEM_CNTL, 0x00700000, 20, 1, 2, "tWR: "}, {EXT_MEM_CNTL, 0x07000000, 24, 0, 2, "tW2R: "}, {EXT_MEM_CNTL, 0x08000000, 27, 0, 1, "tW2Rsb: "}, // same bank: 1 = tWR, 0 = tW2R {EXT_MEM_CNTL, 0x30000000, 28, 1, 1, "tR2R: "}, {MEM_REFRESH_CNTL, 0x0000f000, 12, 13, 7, "tRFC: "}, {MEM_SDRAM_MODE_REG, 0x000f0000, 16, 0, 2, "tWL(0.5):"}, {MEM_SDRAM_MODE_REG, 0x00700000, 20, 0, 4, "tCAS: "}, {MEM_SDRAM_MODE_REG, 0x00800000, 23, 0, 0, "tCMD: "}, {MEM_SDRAM_MODE_REG, 0x01000000, 24, 0, 1, "tSTR: "}, {0x0000, 0x00000000, 0, 0, 0, ""}, }; /* Program data */ struct rovclock_data { u32 pci_id; u32 pci_bus; u32 pci_dev; u32 iobase; u32 xtal; u32 cfreq; u32 mfreq; u32 ref_div; struct pll_data pllreg; struct pll_block pll; u32 mem_size; u8 mem_channels; u8 mem_cdch_only; }; /* PCI read/write functions */ unsigned int pci_read(u8 bus, u8 device, u8 func, u8 addr) { outl(0x80000000 | (bus << 16) | (PCI_DEVFN(device, func) << 8) | (addr & ~3), 0xcf8); return inl(0xcfc); } void pci_write(u8 bus, u8 device, u8 func, u8 addr, u32 data) { outl(0x80000000 | (bus << 16) | (PCI_DEVFN(device, func) << 8) | (addr & ~3), 0xcf8); outl(data, 0xcfc); } /* Register read/write functions */ u32 reg_read(struct rovclock_data *rovclock, u32 addr) { return inl(rovclock->iobase + addr); } void reg_write(struct rovclock_data *rovclock, u32 addr, u32 data) { outl(data, rovclock->iobase + addr); } /* PLL read/write functions */ u32 pll_read(struct rovclock_data *rovclock, u32 addr) { outb(addr & 0x0000003f, rovclock->iobase + CLOCK_CNTL_INDEX); return inl(rovclock->iobase + CLOCK_CNTL_DATA); } void pll_write(struct rovclock_data *rovclock, u32 addr, u32 data) { outb((addr & 0x3f) | PLL_WR_EN, rovclock->iobase + CLOCK_CNTL_INDEX); outl(data, rovclock->iobase + CLOCK_CNTL_DATA); } /* MM read/write functions */ u32 mm_read(struct rovclock_data *rovclock, u32 addr) { outl(addr, rovclock->iobase + MM_INDEX); return inl(rovclock->iobase + MM_DATA); } void mm_write(struct rovclock_data *rovclock, u32 addr, u32 data) { outl(addr, rovclock->iobase + MM_INDEX); outl(data, rovclock->iobase + MM_DATA); } int round_div(int num, int den) { return (num + (den / 2)) / den; } /* Print usage */ void usage(void) { printf("Usage: rovclock -i (info)\n"); printf(" -c [MHz] (set core clock)\n"); printf(" -m [MHz] (set mem clock)\n"); printf(" -x [kHz] (xtal frequency, default 2700)\n"); printf(" -t [name]:[val] (set memory timings)\n"); } /* Get memory info */ void get_mem_info(struct rovclock_data *rovclock) { u32 temp; u8 count; rovclock->mem_size = reg_read(rovclock, CONFIG_MEMSIZE); temp = mm_read(rovclock, MEM_CNTL); rovclock->mem_channels = temp & R300_MEM_NUM_CHANNELS_MASK; rovclock->mem_cdch_only = (temp & R300_MEM_USE_CD_CH_ONLY) ? 1 : 0; for (count = 0; mem_timings[count].reg != 0; count++) mem_timings[count].value = (mm_read(rovclock, mem_timings[count].reg) & mem_timings[count].mask) >> mem_timings[count].shift; } /* Display memory info */ void mem_info(struct rovclock_data *rovclock) { u8 count; printf("Memory size: %d kB\n", rovclock->mem_size/1024); printf("Memory channels: %d, CD,CH only: %d\n", rovclock->mem_channels, rovclock->mem_cdch_only); for (count = 0; mem_timings[count].reg != 0x00; count++) printf("%s %d\n", mem_timings[count].description, mem_timings[count].value + mem_timings[count].offset); } /* Set memory timings */ void mem_set_timings(struct rovclock_data *rovclock, char *string) { u32 val, temp; char *vp; u8 count; if ((vp = strchr(string, ':')) == NULL) return; if (*(vp+1) == '\0') return; else *(vp++) = '\0'; val = atoi(vp); for (count = 0; mem_timings[count].reg != 0x00; count++) { if (!strncmp(mem_timings[count].description, string, strlen(string))) { temp = mm_read(rovclock, mem_timings[count].reg) & ~mem_timings[count].mask; temp |= ((val - mem_timings[count].offset) << mem_timings[count].shift) & mem_timings[count].mask; mm_write(rovclock, mem_timings[count].reg, temp); return; } } fprintf(stderr, "%s not found...\n", string); } /* Print PLL info */ void pll_info(struct rovclock_data *rovclock) { /* Get reference divider */ rovclock->ref_div = pll_read(rovclock, PPLL_REF_DIV) & PPLL_REF_DIV_MASK; /* Calc. core and memory clock */ *(u32 *)(&rovclock->pllreg) = pll_read(rovclock, M_SPLL_REF_FB_DIV); rovclock->cfreq = round_div(rovclock->pllreg.Ns * rovclock->xtal, rovclock->pllreg.M); rovclock->mfreq = round_div(rovclock->pllreg.Nm * rovclock->xtal, rovclock->pllreg.M); //printf("Ns: 0x%02x, Nm: 0x%02x, M: 0x%02x\n", Ns, Nm, M); printf("XTAL: %d.%d MHz, RefDiv: %d\n\n", rovclock->xtal / 100, rovclock->xtal % 100, rovclock->ref_div); printf("Core: %d.%d MHz, Mem: %d.%d MHz\n", rovclock->cfreq / 100, rovclock->cfreq % 100, rovclock->mfreq / 100, rovclock->mfreq % 100); } /* Set new frequency */ void pll_set_freq(struct rovclock_data *rovclock) { *(u32 *)(&rovclock->pllreg) = pll_read(rovclock, M_SPLL_REF_FB_DIV); /* Calc. new PLL value */ rovclock->pllreg.Ns = round_div(rovclock->cfreq * 100 * rovclock->pllreg.M, rovclock->xtal); rovclock->pllreg.Nm = round_div(rovclock->mfreq * 100 * rovclock->pllreg.M, rovclock->xtal); //printf("%x\n", *(int *)&rovclock->pllreg); pll_write(rovclock, M_SPLL_REF_FB_DIV, *(u32 *)&rovclock->pllreg); } /* Search for ATI card on PCI bus */ int find_card(struct rovclock_data *rovclock) { FILE *proc; char temp; u32 id; /* Check /proc/bus/pci/devices first */ if ((proc = fopen("/proc/bus/pci/devices", "r")) != NULL) { while (fscanf(proc, "%x\t%x", &rovclock->pci_bus, &id) == 2) { if ((id >> 16) == PCI_VENDOR_ID_ATI) { rovclock->pci_dev = (rovclock->pci_bus & 0xff) >> 3; rovclock->pci_bus = rovclock->pci_bus >> 8; rovclock->pci_id = (id << 16) | (id >> 16); /* Check for display device */ id = pci_read(rovclock->pci_bus, rovclock->pci_dev, 0, PCI_CLASS_REVISION) >> 24; if (id == PCI_BASE_CLASS_DISPLAY) { fclose(proc); return 0; } } while ((temp = fgetc(proc)) != EOF) if (temp == '\n') break; } } if ((rovclock->pci_id & 0xffff) != PCI_VENDOR_ID_ATI) { fprintf(stderr, "Search in /proc/bus/pci/devices failed, scanning the PCI bus.\n"); /* Find card by scanning the PCI devices, check from bus 1 to 9 for ATI device */ rovclock->pci_dev = 0; for (rovclock->pci_bus = 1; rovclock->pci_bus < 10; rovclock->pci_bus++) { if (((rovclock->pci_id = pci_read(rovclock->pci_bus, 0, 0, 0)) & 0xffff) == PCI_VENDOR_ID_ATI) { id = pci_read(rovclock->pci_bus, rovclock->pci_dev, 0, PCI_CLASS_REVISION) >> 24; if (id == PCI_BASE_CLASS_DISPLAY) break; } } if ((rovclock->pci_id & 0xffff) != PCI_VENDOR_ID_ATI) { fprintf(stderr, "No ATI card found.\n"); return -1; } } return 0; } /* Get card I/O base */ int get_iobase(struct rovclock_data *rovclock) { u32 count; /* Get I/O base */ if (!(pci_read(rovclock->pci_bus, rovclock->pci_dev, 0, PCI_COMMAND) & PCI_COMMAND_IO)) { fprintf(stderr, "I/O space not enabled, aborting.\n"); return -1; } for (count = PCI_BASE_ADDRESS_0; count <= PCI_BASE_ADDRESS_5; count += 4) { rovclock->iobase = pci_read(rovclock->pci_bus, rovclock->pci_dev, 0, count); if (rovclock->iobase & PCI_BASE_ADDRESS_SPACE_IO) break; } if (!(rovclock->iobase & PCI_BASE_ADDRESS_SPACE_IO)) { fprintf(stderr, "I/O base address not found, aborting.\n"); return -1; } rovclock->iobase &= PCI_BASE_ADDRESS_IO_MASK; printf("I/O base address: 0x%04x\n", rovclock->iobase); return 0; } /* Get PLL info from video BIOS */ int get_pll_info(struct rovclock_data *rovclock) { FILE *mem; u32 bios_seg; u8 *rom; u32 fp_bios; u16 pll_info_start; /* Access memory for video BIOS */ if ((mem = fopen("/dev/mem", "r")) == NULL) { fprintf(stderr, "Error opening /dev/mem !\n"); return -1; } for (bios_seg = 0xc0000; bios_seg < 0xf0000; bios_seg += 0x1000) { if ((rom = mmap(NULL, 0x1000, PROT_READ, MAP_SHARED, fileno(mem), bios_seg)) == MAP_FAILED) { fprintf(stderr, "mmap() failed.\n"); return -2; } /* Check signature */ if (*(u16 *)rom == 0xaa55) { printf("Video BIOS shadow found @ 0x%x\n", bios_seg); break; } else { munmap(rom, 0x1000); rom = NULL; } } if (rom == NULL) fprintf(stderr, "Video BIOS signature not found.\n"); else { /* Get flat panel info offset */ fp_bios = *(u32 *)(rom + 0x48); //printf("Flat panel info at offset 0x%x\n", fp_bios); /* Get PLL info block offset */ pll_info_start = *(u16 *)(rom + fp_bios + 0x30); //printf("PLL info at offset 0x%x\n", pll_info_start); /* Copy PLL info */ memcpy(&rovclock->pll, (rom + pll_info_start), sizeof(struct pll_block)); /* Unmap & close memory */ munmap(rom, 0x1000); fclose(mem); } return 0; } /* Main program */ int main(int argc, char **argv) { int opt, mode; struct rovclock_data rovclock; /* Set default XTAL frequency */ rovclock.xtal = XTAL; printf("Radeon overclock %s by Hasw (hasw@hasw.net)\n\n", VERSION); if (argc < 2) { usage(); return 0; } /* Get I/O permission */ if (iopl(3) != 0) { fprintf(stderr, "Error getting I/O permissions (root?).\n"); return 1; } /* Detect card */ if (find_card(&rovclock)) return 2; printf("Found ATI card on %02x:%02x, device id: 0x%04x\n", rovclock.pci_bus, rovclock.pci_dev, rovclock.pci_id >> 16); /* Get I/O base */ if (get_iobase(&rovclock)) return 3; /* Get PLL info */ if (!get_pll_info(&rovclock)) { /* Get reference clock */ if ((rovclock.pll.PCLK_ref_freq < 1000) || (rovclock.pll.PCLK_ref_freq > 5000)) fprintf(stderr, "Invalid reference clock from BIOS: %d.%d MHz\n", rovclock.pll.PCLK_ref_freq / 100, rovclock.pll.PCLK_ref_freq % 100); else { rovclock.xtal = rovclock.pll.PCLK_ref_freq; printf("Reference clock from BIOS: %d.%d MHz\n", rovclock.xtal / 100, rovclock.xtal % 100); //printf("BIOS default divider: %d/%d/%d\n", pll->PCLK_ref_divider, pll->MCLK_ref_divider, pll->XCLK_ref_divider); } } mode = 0; rovclock.cfreq = 270; rovclock.mfreq = 270; get_mem_info(&rovclock); /* Parse command line options */ while ((opt = getopt(argc, argv, "ic:m:x:t:")) > 0) { switch (opt) { case 'i': mem_info(&rovclock); pll_info(&rovclock); break; case 'x': rovclock.xtal = atoi(optarg); if (!rovclock.xtal) { fprintf(stderr, "Invalid xtal value: %s\n", optarg); return 5; } break; case 'c': rovclock.cfreq = atoi(optarg); if (!rovclock.cfreq) { fprintf(stderr, "Invalid value: %s\n", optarg); return 5; } mode |= 1; break; case 'm': rovclock.mfreq = atoi(optarg); if (!rovclock.mfreq) { fprintf(stderr, "Invalid value: %s\n", optarg); return 5; } mode |= 1; break; case 't': mem_set_timings(&rovclock, optarg); break; default: usage(); return 5; break; } } /* Now we got a optional xtal frequency */ if (mode & 1) pll_set_freq(&rovclock); return 0; } rovclock-0.6e/ChangeLog0000644000175000001440000000061710357036375014016 0ustar haswusers0.3a: -Added XTAL frequency detection from BIOS 0.4b: -Code cleanup, search PCI busses from 1 to 9 0.5a: -Search /proc/bus/pci/devices for ATI card 0.5b: -Fixed card detection via /proc/bus/pci/devices 0.6a: -Added some memory timings 0.6b: -Added more memory timings, replaced memory functions 0.6c: -Added check for PCI display device 0.6e: -Updated list of supported cards, fixed version number