Verde Linux Board Production Suite v12.07.31: October 16, 2012
Verde Linux Board Production Suite v12.07.31: October 16, 2012
31
Version 12.07.31
October 16, 2012
Overview
The AMD Board Production Diagnostic Test Suite is designed for internal and external customers to be used on a
manufacturing line. This test suite assumes a working ASIC which contains functional/stress tests for validating
external connections/components (such as bus interfaces, display connectors, memory, and power), latency
incurred by external connections/ components to the GPU internal functionalities, and workmanship. The test
suite uses the Exit on First Error reporting method and will display the test result on the screen as well as generate
a error reporting log file. The test suite is not intended to be used for looping. The test suite has three options for
testing. (1) Quickmfg - runs a fixed series of tests. (2) Extmfg - provides the option to append additional testing to
the quickmfg series of tests. (3) Sit test - runs system integration tests.
Coverage
The Board Production Suite covers: Memory, 3D, Chip pervasive logic, UVD, PCIE, VCE, SAM and MVP
Devices Supported
Verde
Test Hierarchy
Automated Tests (quickmfg) PCIE Stress Tests, Memory Controller tests, Horizon tests, 3D Stress tests, PM4 Play,
Virtual Memory tests, Dynamic Power Manager, UVD Stress tests, Video Compression Encoding tests, Secure Asset
Management ,CTF.
Suite Requirements
Hardware Requirements:
Motherboard: Recommended PCIe 3.0 Motherboard or PCIe 2.0 Motherboard with PLX card which supports 64-bit
Processor
CPU: Recommend 64-Bit Processor. Minimum AMD Athlon 64, Intel Core2 Duo
System Memory: Recommend 2GB (Minimum 1GB for 1 GPU under tes, plus 512MB additional for each additional
GPU)
Storage Device: 8GB or larger free space (Hard Driver Recommended, but can use a USB Key)
Input Devices: Keyboard, Mouse, Monitor
Software Requirements:
Ubuntu 10.04 32/64-bit Linux Server or Desktop Edition (Can do Kernal updates if required for hardware support)
Linux Swap Partition of at least double the memory size (i.e. 4GB recommended)
AMD Linux GPU Diagnostic Test Suites (Board Production Diagnostic Test Suite)
Suite Installation
Download the Board Prod Diagnostic Test Suite from the ORC at
http://secure.amd.com/site/partner_orc/Home/default.aspx
If the system used for downloading is not the test system, copy the diagnostic suite over to the test system
using an external USB key or drive. See Appendix for instructions on how to mount a USB flash drive in linux.
Extract the diagnostic suite using the command tar xvfz suitename.tar.gz
(Optional) Delete the .tar.gz suite file to save hard drive space.
Please use the original tool with the suite to do the diagnostics, any other tool copied to this suite is not
verified and could cause potential issue.
Suite Usage
There are four typical use cases for the AMD Board Production Diagnostic Test Suite. Note:The suite doesn't
support looping. If you want to do loop, it is requested to reboot the system between loops.
1)TEST TYPE: Quick Manufacturing Test
HOW: Type ./tserver -boardtest=quickmfg2 or ./tserver -boardtest=quickmfg
WHAT: Executes several general test blocks with default options and specified guardband (varies from GPU to
GPU). Set to Exit without pause on error. -quickmfg is for PCIE Gen3 motherboard, -quickmfg2 is for PCIE Gen2
motherboard. You could set margin by typing ./tserver -boardtest=quickmfg -suitemargin= x pct, x pct.
2)TEST TYPE: Extended Manufacturing Test
HOW: Type ./tserver to configure the test, and then type ./tserver -boardtest=extmfg to execute
WHAT: Executes a custom set of tests (which can include all of the tests in the Quick Manufacturing Test) in
addition to several external tests Guardband is optional (i.e. can add standard guardband margins, or no
guardband). and the error reporting method is not fixed (i.e. can chose to exit, pause, or continue on error).
3)TEST TYPE: Individual Test Execution
HOW: SET CLOCKS, RUN TEST
WHY: In case of a test failure during extmfg or quickmfg, it may be useful to verify repeated test failures
4)TEST TYPE: System Integration Test
HOW: Type ./tserver -boardtest=sitquick/sitvisual/sitfan/sitxfireb
WHAT: Executes system integration test option. Set to Exit without pause on error
Tools
There are several useful tools which are included with the AMD Board Production Diagnostic Suite. Specific flags
and tool usage can be found in the Appendixes at the end of the document.
TServer
AGT
ATIFLASH
DC (Applets Suite)
Introduction
The TGL Applets suite is a set of tests that are meant to imitate simple rendering applications or "applets". These
provide a larger and more realistic workload and data set than our smaller, feature directed, tests.
Variation EC010.000: Basic mem export to random access target. Tests the STORE_RAW
instruction. 1 color buffer, 1 RAT buffer
Variation EC015.000: Eight stippled lines starting from the borders and corners of the
render target. The x and y fixed-point vertex positions can be verified in the
clipGa_alg.dmp and SuScan.dmp. Fixed-point range is increased to S.15.8. Not able to
test 32768 since vertices got created outside the render target. SC is not clamping it.
Change it to 32766.
BG (Scan Converter (SC) Suite)
Introduction
The Scan Converter suite tests the SC block in the 3D pipeline. This block is responsible for conversion from the
geometry domain to the screen space, pixel domain. It takes the incoming geometric data, and scan converts it.
The SC is responsible for enforcing the raster rules.
Test BG053: 60 2D Lines, varying slope, Bresenham control value 0x55, line
This test validates the Bresenham control value.
Coverage
This test covers the Bresenham control value in SC block specifically, in addition to testing 3D hardware engine.
Fail Case
The test will fail if the CRC of the rendered image does not match the CRC of the expected golden image. This could
be caused by a bad 3D pipeline, bad memory, a bad board, or a bad electrical supply.
Test BU082: This test verifies the VGT stream out capabilities, it streams
out the vertex id for a strip of input vertices
This test stresses the streamout functionality in the VGT.
Coverage
The test uses vertex and pixel shaders. This streams vertex IDs out to memory, so this verifies vertex ID generation
and the streamout functionality together. It also uses the basic functionality of the rest of the 3D pipeline in order
to render the result image out to memory.
Fail Case
The test will fail if the CRC of the rendered image does not match the CRC of the expected golden image. This could
be caused by a bad 3D pipeline, bad memory, a bad board, or a bad electrical supply.
Variation CN001.007: Scene 65 RANDOM OBJECTS Eng Clock Stress - CRC checking.
A description of the six data patterns used in the blit tests follows.
1. Colorbar
The lower half contains the primary (red, green, blue) and complementary (cyan, magenta, yellow) colors in their
full intensity (0xFF for 32bpp) while the upper half are about half the maximum intensity (0x9E for 32bpp). There
are also the black and white colors and shades of gray.
2. Walkbit
This pattern is intended to generate SSO pattern operations. In the presence of a DBI signal (i.e., GDDR4), it will
make the DBI signal toggle instead. Without a DBI signal (as is the case internally in the ASIC), this pattern will
generate SSO on all bits most of the time.
3. Walkpat
This pattern will generate SSO patterns even with the presence of a DBI signal. However, not all bits will be doing
SSO at the same time but rather the data bits with SSO operations will shift temporally as the pattern walks down
vertically.
4. Maskpat
This pattern is composed of a foreground and a background color. This pattern is intended to be used for color
compare blits to transfer only the foreground color. As such, this is a good pattern to test the write mask (byte
enable bits) when transferring data.
5. Randbit
This pattern is also intended to generate SSO operations like the walkbit pattern. Basically, it contains data with a
single bit randomly turned or data with single bit randomly turned off. The sequence of whether it is a single bit on
or single bit off data is also in pseudo-random order.
6. Randmask
This pattern is similar to the Maskpat pattern. The only difference is in the sequence of the foreground and
background colors which is in pseudo-random order.
Group 2: CB Tog tests [AK347-AK366]
CB Tog is a set of memory tests which uses the 3D engine to perform BLIT operations. These tests are more
stressful than CP, DMA or CPU operations.
Group 2A: CB tog wr (write) [AK347-AK350]
1. Draw patterns using 2D PaintMulti operations. The draw is not done in a single draw operation but rather
in multiple strips
2. The pattern drawn is transferred to a temporary buffer using a single 2D BitBltMulti operation
3. This pattern in the temporary buffer is then checked by xor-ing it with the original patterns using another
2D PaintMulti operation. This should clear (set to zero) the data unless there are anomalies
4. The xor-ed data are then transferred to a result buffer using another 2D BitBltMulti operation, this time
or-ing it with the destination pattern. This way, all anomalies will be or-ed together
AK301.6 Colorbar
AK305.6 Randbit
AK302.6 Walkbit
AK303.6 Walkpat
AK306.6 Randmask
The major difference is that these tests are first run multiple times without checking the result. The purpose of this
step is to pre-saturate the MC clients rather than starting from an idle state. Afterwards, the actual tests are then
run and results are checked.
Fail Case
The test pattern that is used in the blits is preserved throughout each blit movements within the tests. As such, the
test patterns as well as background are checked for consistency at the end of the test.
Variation AK404.001: Qualification
Pass Case
The connectivity between the board's ASIC and DRAMs are good.
Fail Case
The connectivity between the board's ASIC and DRAMs may have issues. The failure analysis personnel should also
ensure there is acceptable noise in the power supplies.
Variation EF003.006: Link Integrity Test 12-Bit DDR Bundle B (Board Manufacturing) @
1024x768,32
Variation EF004.018: AFR Manual 24-Bit DDR (One Clock, Bundle A, VSYNC)
Pass Case
Tests pass if CRC references and H/W CRC are identical.
Fail Case
Tests fail if CRC references and H/W CRC are not identical.
Coverage
Pass Case
Tests pass if CRC references and H/W CRC are identical.
Fail Case
Tests fail if CRC references and H/W CRC are not identical.
Coverage
Pass Case
Tests pass if CRC references and H/W CRC are identical.
Fail Case
Tests fail if CRC references and H/W CRC are not identical.
Test AJ015: PCIE PHY Dynamic Link Speed Switching Test (Bridge Initiated)
These tests validate the stability of the PCIE link during PCIE link speed switching.
Coverage
Validates PCIE link speed switching between Gen1, Gen2 and Gen3 speeds using bridge device trigger.
Pass Case
The requested PCIE link speed switching is successful without any errors.
Fail Case
1) The requested PCIE link speed is not supported by endpoint or bridge device.
2) PCIE link NAKs received and generated are above the threshold values.
3) PCIE link Detects are above the threshold value.
4) PCIE link width is not same before and after PCIE link speed switching.
Test AJ018: PCIE PHY Dynamic Link Width Switching Test (Up/Down Config)
These tests validate the stability of the PCIE link during PCIE link width switching.
Coverage
Validates PCIE link width switching between x1, x2, x4, x8, x12, and x16 widths using endpoint trigger.
Pass Case
The requested PCIE link width switching is successful without any errors.
Fail Case
1) The requested PCIE link width is not supported by endpoint or bridge device.
2) PCIE link NAKs received and generated are above the threshold values.
3) PCIE link Detects are above the threshold value.
4) PCIE link speed is not same before and after PCIE link width switching.
Name Description
-ppstatus Display current PowerPlay mode
-pprestore Restore to BIOS default PowerPlay Mode
-accel3d Set 3D Acceleration PowerPlay mode
-pplist List all supported PowerPlay modes
-pplist=short List all supported PowerPlay modes with short summary
-pplist=full List all supported PowerPlay modes with full details
-ppmode=[NUM] Set to a PowerPlay mode [NUM] (or bat|perf|uvd) from the
list
-ppsetclk=[NUM1],[NUM2] Set clocks and VDDC to a PowerPlay mode [NUM1]
(bat|perf|uvd), DPM state [NUM2]
-pplog Log output to a file ATIPP.LOG
-ppsave=fn Save PowerPlay settings to a file 'fn' (file name is optional
where default name is 'ppstat.inf'
-ppappend=fn Append PowerPlay settings to a file 'fn' (file name is optional
where default name is 'ppstat.inf')
-ppload=fn Load PowerPlay settings from a file 'fn' (file name is optional
where default name is 'ppstat.inf'
-ppeng=[NUM] Set Engine clock to new value [NUM] (MHz) by overriding
PowerPlay table
-ppmem=[NUM] Set Memory clock to new value [NUM] (Mhz) by overriding
PowerPlay table
-ppvddc=[NUM] Set VDDC to [NUM] (V) by overriding PowerPlay table
-ppvddci=[NUM] Set VDDCI to [NUM] (V) by overriding PowerPlay table
CLOCK COMMANDS:
Name Description
-clkstatus Display BIOS default and current clock values
-clklog Log output to a file called ATICLK.LOG
-clksave=fn Save clock settings to a file 'fn' (file name is optional wher
default name is 'clkstat.inf')
-clkappend=fn Append clock settings to a file 'fn' (file name is optional where
default name is 'clkstat.inf'
-clkload=fn Load clock settings to a file 'fn' (file name is optional where
default name is 'clkstat.inf')
-eng=[NUM] Set engine clock (SCLK in fusion) to new value [NUM] (MHz)
-mem=[NUM] Set memory clock to new value [NUM] (MHz)
Name Description
-clkrestore Restore to BIOS default values
-incclk=[NUM] Increase mem/eng clock to BIOS default + delta [NUM] (MHz)
-decclk=[NUM] Decrease mem/eng clock to BIOS default + delta [NUM] (MHz)
-incmclk=[NUM] Increase mem clock to current clk + delta [NUM] (Mhz)
-incsclk=[NUM] Increase eng clock to current clk + delta [NUM] (MHz)
-incmclkpct=[NUM] Increase mem clock by [NUM] percent of current clk
-incsclkpct=[NUM] increase eng clock by [NUM] percent of current clk (MHz)
-decmclk=[NUM] Decrease mem clock to current clk - delta [NUM] (MHz)
-decsclk=[NUM] Decrease eng clock to current clk - delta [NUM] (MHz)
-dclk=[NUM] Set UVD DCLK to new value [NUM] (MHz)
-vclk=[NUM] Set UVD VCLK to new value [NUM] (MHz)
-maxvco=[NUM] Specify UPLL VCO limit (MHz) for DCLK/VCLK
-uvdclkstatus=[NUM] Change UVD clock gating status: On/Off
-skipmemparam Skip memory parameter changes
-skipmempll Skip memory PLL reprogramming
-gteq Set mem/eng clock to a value >= the value specified for use
with insclkpct/incmclkpct
-lclk=[NUM] Set LCLK to a new value [NUM] (MHz)
-eclk=[NUM] Set ECLK to a new value [NUM] (MHz)
MEMORY COMMANDS:
Name Description
-mccfg Display memory configuration information
-mcchannel=[NUM] Set memory channel configuration to [NUM]
-mccolbit=[NUM] Set column configuration to [NUM]
-mcrowbit=[NUM] Set row configuration to [NUM]
-mcrank=[NUM] Set rank configuration to [NUM]
-mcbank=[NUM] Set bank configuration to [NUM]
-mcreg=[Off],[Val] Write a value [Val] to register at offset [Off]
-mcregb=[Off],[Val] Broadcast [Val] to register groups at offset [Off]
-mcregdump=fn Dump MC registers to a file 'fn' or to the display
-mcregload=fn Load MC registers from a file 'fn'
-mcsetting Display MC settings
-mcclksync Sync MC clock
-mcadllrst Reset ASIC DLL
-mcsize=[Val] Set memory size to [Val](16,32,64,128,256,512,1024MB)
Name Description
-mcdlladj Set DLL ADJ value for read data and strobe
-mcmadj=[Val] Set MADJ value for read strobe
-mcrdqsdly=[Val] Set rdqs delay
-mcrdqdly=[Val] Set rdq delay
-mcwdly=(0-f) Set write delay for all
-mcwdlyclk=(0-f) Set write delay for clock
-mcwdlyadd=(0-f) Set write delay to address
-mcwdlycmd=(0-f) Set write delay for command
-mcwdlydq=(0-f) Set write delay for data
-mcwdlyqs=(0-f) Set write delay for strobe
-mcwdlywck=(0-f) Set WCK delay
-mcwdlywdq=(0-f) Set TX DQ delay
-mcdrv=(p) Set driver impedance for all but clock
-mcdrvcmd=(p) Set driver impedance for command, address and clock
-mcdrvdq=(p) Set driver impedance for data
-mcdrvclk=(p) Set driver impedance for clock
-mcdrvqs=(p) Set driver impedance for strobe
-mcstr=(nnpp) Set buffer strength or offset for all but clock
-mcstrclk=(nnpp) Set buffer strength or offset for clock
-mcstrcmd=(nnpp) Set buffer strength or offset for command and address
-mcstrdq=(nnpp) Set buffer strength or offset for data
-mcstrqs=(nnpp) Set buffer strength or offset for strobe
-mcterm=(p) Set termination for data and strobe
-mctermdq=(p) Set termination for data
-mctermqs=(p) Set termination for strobe
-mcac Display memory AC timing
-mcvrefext Use external VREF
-mcvrefintdq=[Val],[Off] Use internal strobe VREF, [Val]=50|70, [Off]=0x0-0xf
-mcvrefintqs=[Val],[Off] Use internal data VREF, [Val]=50|60|70, [Off]=0x0-0xf
-mcsavefb Save display framebuffer data into file mcl0ad.txt
-mcloadfb Load display framebuffer data from file mcl0ad.txt
-mcautocal=[Val] [Val]=on|off
PCIe COMMANDS:
Name Description
-pciestatus Show current PCIe link status
Name Description
-aspm=[Num] Configure ASPM setting - off | [L1],[L0sRX],[L0sTX] ie. enable
L1 and L0s on both sides: -aspm=L1,L0sTX
Voltage, Fan Speed, and Tempurature COMMANDS:
Name Description
-vctfstatus Display thermal information
-vddc Dispaly current voltage
-vddc=[Num] Set VDDC to [Num] (V)
-vddci=[Num] Set VDDCI to [Num] (V)
-setmaxvddc Set VDDC to maximum allowed based on leakage ID (if
supported)
-temp Display ASIC tempurature
-fanrpm Display current fan speed
-fancontrol=[Num] Set fan speed to [Num] (0=Low speed; 1=High speed; 2=auto;
3=Medium speed)
-firmware_version Get firmware version for voltage control
-vddcsave=fn Save vddc settings to a file 'fn' (file name is optional where
default name is 'vddcstat.inf')
-vddcload=fn Load vddc settings from a file 'fn' (file name is optional where
default name is 'vddcstat.inf')
-vddnb0=[Num] Set SclkVIDLevel 0 to [Num] (V)
-vddnb1=[Num] Set SclkVIDLevel 0 to [Num] (V)
-vddnb2=[Num] Set SclkVIDLevel 0 to [Num] (V)
-vddnb3=[Num] Set SclkVIDLevel 0 to [Num] (V)
-vddnb_cnb=[Num] Set VDDNB request from CNB to [Num] (V)
-vddnb_vid=[Num] Force VID (will trigger VDDNB change)
Appendix B - ATIFLASH
Name Description
-i [Num] Display information of ATI adapters in the system. Display
information of adapter[Num] if specified.
-ai [Num] Display advanced information of ATI adapters in the system.
Display advanced information of adapter[Num] if specified.
-biosfileinfo [File] Display the BIOS info in file [File]
-p [Num] [File] Write BIOS image in file [File] to flash ROM in adapter [Num]
-pa [File] Write BIOS image [File] to all approopriate adapters
-S [Num] [File] [Size] Save BIOS image from adpater [Num] to file [File]. First [Size]
kbytes (except the theater in bytes) of ROM content is saved if
[Size] is specified
Name Description
-cf [File] [Size] [Sum] Calculate 16-bit checksum for file [File]. Checksum for the first
[Size] kbytes of the file is calculated if [Size] is specified
-cb [Num] [Size] [Sum] Calculate 16-bit BIOS image checksum for adapter [Num].
Checksum for the first [Size] kbytes of the ROM content is
calculated if [Size] is specified
-cr [Num] [Size] [Sum] Calculate 16-bit ROM checksum for adapter [Num] and
compare it to the [Sum] provided. This command is the same
as -cb if [Size] is specified
-t [Num] Test ROM access of adapter
-v [Num] [File] Compare ROM content of adapter [Num] to [File]
-mi [Num] [ID] Modify SSID and SVID in BIOS image of adapter [Num] to [ID].
SSID and SVID in BIOS image of adapter [Num] is displayed if
[ID] is not specified
-mb [Num] [File] Modify SSID, SVID, BIOS Pin Number, and Boot Message in
BIOS image of adapter [Num] to values in [File]. Input file
example: ssid = 715b svid = 1002 biospn = "113-xxxxxx-xx"
bootmsg = "ATI graphic board"
-pak [File] Package an executable for BIOS update according to the
commands in [File]. Config file example: outfile = update.exe
banner = "Update v1.0" infile = a123.bin command = -pa -
padevid=715B infile