Changes between Version 2 and Version 3 of HardwareInfo/video/RadeonHD_tech


Ignore:
Timestamp:
Aug 1, 2011, 7:22:49 PM (13 years ago)
Author:
kallisti5
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HardwareInfo/video/RadeonHD_tech

    v2 v3  
    11Technical notes on Radeon HD, straight from AMD engineers.  I am mostly documenting this to avoid the bus factor...
     2
     3ddx == xorg
    24
    35'''Radeon HD mode setting:'''
     
    4648Each family programs slightly or some cases, majorly differently than others.
    4749}}}
     50
     51'''A tale of two AtomBIOSes'''
     52{{{
     53You can pretty much ignore the atom parser in the ddxes at this point.
     54That's the internal one we use at AMD that we used for the original open source port.
     55It's only used for UMS (usermode modsetting).  The one in the kernel was rewritten
     56to be more portable and easier to follow.  With KMS (kernel modesetting), the ddx
     57does not touch the hw at all; you can pretty much ignore all the ddx modesetting code.
     58With KMS, all the ddx does is build command buffers for 2D acceleration, and call ioctls
     59into the drm to set modes.
     60}}}
     61
     62
     63'''AtomBios info'''
     64{{{
     65Atom is basically a byte code scripting language used to write little scripts to handle
     66basic card initialization tasks (asic init, setting engine/memory clocks, modesetting).
     67There are two sets of tables in ATOM: command tables (basically scripts that execute certain
     68functionality) and data tables (structs that store board/system specific information (type
     69and number of connectors/encoders used on the board, power states, ddc lines, panel info, etc.).
     70The command tables are versioned and there are specific structs defined for the inputs to the
     71command tables.  These are all defined in atombios.h and ObjectID.h.  Command tables can also
     72call other command tables and look up data in data tables.
     73
     74The ATOM command scripting language is pretty simiple.  It's basically an OP, dst, src.
     75Srcs and dsts can be registers, parameter space, fb space, or workspace (which is basically
     76a set of special attributes used by the parser). 
     77
     78I'd suggest dumping a few tables using AtomDis to understand the structure.  A good place to
     79start is a simple table like EnableCrtc.  Let me know if you have any questions.
     80}}}