762 lines
18 KiB
C
762 lines
18 KiB
C
/* V2MemTest - A CLI Tool to test & fix Voodoo² TMU System
|
|
* Copyright (C) 2026 ChaCha
|
|
*
|
|
* 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 3 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, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include "Test_Data_NoMem.h"
|
|
|
|
const def_sFaultSourceLineMap ar_sFaultSourceLineMap[] =
|
|
{
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_0,
|
|
.eTMUFaultSource_TMU0_RES = RA10_1,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_0,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_0,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_0,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_1,
|
|
.eTMUFaultSource_TMU0_RES = RA10_2,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_1,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_1,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_1,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_2,
|
|
.eTMUFaultSource_TMU0_RES = RA10_3,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_2,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_2,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_2,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_3,
|
|
.eTMUFaultSource_TMU0_RES = RA10_4,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_3,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_3,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_3,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_4,
|
|
.eTMUFaultSource_TMU0_RES = RA11_1,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_4,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_4,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_4,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_5,
|
|
.eTMUFaultSource_TMU0_RES = RA11_2,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_5,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_5,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_5,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_6,
|
|
.eTMUFaultSource_TMU0_RES = RA11_3,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_6,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_6,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_6,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_7,
|
|
.eTMUFaultSource_TMU0_RES = RA11_4,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_7,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_7,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_7,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_8,
|
|
.eTMUFaultSource_TMU0_RES = RA12_1,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_8,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_8,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_8,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_9,
|
|
.eTMUFaultSource_TMU0_RES = RA12_2,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_9,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_9,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_9,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_10,
|
|
.eTMUFaultSource_TMU0_RES = RA12_3,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_10,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_10,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_10,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_11,
|
|
.eTMUFaultSource_TMU0_RES = RA12_4,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_11,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_11,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_11,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_12,
|
|
.eTMUFaultSource_TMU0_RES = RA13_1,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_12,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_12,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_12,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_13,
|
|
.eTMUFaultSource_TMU0_RES = RA13_2,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_13,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_13,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_13,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_14,
|
|
.eTMUFaultSource_TMU0_RES = RA13_3,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_14,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_14,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_14,
|
|
},
|
|
{
|
|
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_15,
|
|
.eTMUFaultSource_TMU0_RES = RA13_4,
|
|
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_15,
|
|
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_15,
|
|
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_15,
|
|
},
|
|
};
|
|
|
|
|
|
const def_sTestPattern ar_sExpectedPattern_Test3[] =
|
|
{
|
|
{
|
|
.bReferenceSet = true, // Nominal set
|
|
.u8FaultLineIdx = 0,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 0,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 1,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 2,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 3,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xF7FE,0xF7FF,0xFFFF,0xFFFF},
|
|
{0xF7FE,0xF7FE,0xF7FF,0xFFFF},
|
|
{0xF7FE,0xF7FE,0xF7FE,0xF7FE},
|
|
{0xF7FE,0xF7FE,0xF7FE,0xF7FE}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 4,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xEFFD,0xEFFF,0xFFFF,0xFFFF},
|
|
{0xEFFD,0xEFFD,0xEFFF,0xFFFF},
|
|
{0xEFFD,0xEFFD,0xEFFD,0xEFFD},
|
|
{0xEFFD,0xEFFD,0xEFFD,0xEFFD}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 5,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xDFFB,0xDFFF,0xFFFF,0xFFFF},
|
|
{0xDFFB,0xDFFB,0xDFFF,0xFFFF},
|
|
{0xDFFB,0xDFFB,0xDFFB,0xDFFB},
|
|
{0xDFFB,0xDFFB,0xDFFB,0xDFFB}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 6,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xBFF7,0xBFFF,0xFFFF,0xFFFF},
|
|
{0xBFF7,0xBFF7,0xBFFF,0xFFFF},
|
|
{0xBFF7,0xBFF7,0xBFF7,0xBFF7},
|
|
{0xBFF7,0xBFF7,0xBFF7,0xBFF7}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 7,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0x7FEF,0x7FFF,0xFFFF,0xFFFF},
|
|
{0x7FEF,0x7FEF,0x7FFF,0xFFFF},
|
|
{0x7FEF,0x7FEF,0x7FEF,0x7FEF},
|
|
{0x7FEF,0x7FEF,0x7FEF,0x7FEF}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF},
|
|
{0xFF,0xFF,0xFF,0xFF}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 8,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0x0000,0x0000,0xFFFF,0xFFFF},
|
|
{0x0000,0x0000,0x0000,0xFFFF},
|
|
{0x0000,0x0000,0x0000,0x0000},
|
|
{0x0000,0x0000,0x0000,0x0000}
|
|
},
|
|
.u8APix = { {0x00,0x00,0xFF,0xFF},
|
|
{0x00,0x00,0x00,0xFF},
|
|
{0x00,0x00,0x00,0x00},
|
|
{0x00,0x00,0x00,0x00}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 9,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFFF,0xFFFF,0xFFFF,0xFFFF}
|
|
},
|
|
.u8APix = { {0xFD,0xFD,0xFF,0xFF},
|
|
{0xFD,0xFD,0xFD,0xFF},
|
|
{0xFD,0xFD,0xFD,0xFD},
|
|
{0xFD,0xFD,0xFD,0xFD}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 10,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFFDF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFDF,0xFFDF,0xFFFF,0xFFFF},
|
|
{0xFFDF,0xFFDF,0xFFDF,0xFFFF},
|
|
{0xFFDF,0xFFDF,0xFFDF,0xFFDF}
|
|
},
|
|
.u8APix = { {0xFB,0xFB,0xFB,0xFB},
|
|
{0xFB,0xFB,0xFB,0xFB},
|
|
{0xFB,0xFB,0xFB,0xFB},
|
|
{0xFB,0xFB,0xFB,0xFB}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 11,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFFBF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFFBF,0xFFBF,0xFFFF,0xFFFF},
|
|
{0xFFBF,0xFFBF,0xFFBF,0xFFBF},
|
|
{0xFFBF,0xFFBF,0xFFBF,0xFFBF}
|
|
},
|
|
.u8APix = { {0xF7,0xF7,0xFF,0xFF},
|
|
{0xF7,0xF7,0xF7,0xFF},
|
|
{0xF7,0xF7,0xF7,0xF7},
|
|
{0xF7,0xF7,0xF7,0xF7}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 12,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFF7F,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFF7F,0xFF7F,0xFFFF,0xFFFF},
|
|
{0xFF7F,0xFF7F,0xFF7F,0xFF7F},
|
|
{0xFF7F,0xFF7F,0xFF7F,0xFF7F}
|
|
},
|
|
.u8APix = { {0xEF,0xEF,0xFF,0xFF},
|
|
{0xEF,0xEF,0xEF,0xFF},
|
|
{0xEF,0xEF,0xEF,0xEF},
|
|
{0xEF,0xEF,0xEF,0xEF}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 13,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFEFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFEFF,0xFEFF,0xFFFF,0xFFFF},
|
|
{0xFEFF,0xFEFF,0xFEFF,0xFEFF},
|
|
{0xFEFF,0xFEFF,0xFEFF,0xFEFF}
|
|
},
|
|
.u8APix = { {0xDF,0xDF,0xFF,0xFF},
|
|
{0xDF,0xDF,0xDF,0xFF},
|
|
{0xDF,0xDF,0xDF,0xDF},
|
|
{0xDF,0xDF,0xDF,0xDF}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 14,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFDFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFDFF,0xFDFF,0xFFFF,0xFFFF},
|
|
{0xFDFF,0xFDFF,0xFDFF,0xFDFF},
|
|
{0xFDFF,0xFDFF,0xFDFF,0xFDFF}
|
|
},
|
|
.u8APix = { {0xBF,0xBF,0xFF,0xFF},
|
|
{0xBF,0xBF,0xBF,0xFF},
|
|
{0xBF,0xBF,0xBF,0xBF},
|
|
{0xBF,0xBF,0xBF,0xBF}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{//OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 15,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFBFF,0xFFFF,0xFFFF,0xFFFF},
|
|
{0xFBFF,0xFBFF,0xFFFF,0xFFFF},
|
|
{0xFBFF,0xFBFF,0xFBFF,0xFBFF},
|
|
{0xFBFF,0xFBFF,0xFBFF,0xFBFF}
|
|
},
|
|
.u8APix = { {0x7F,0x7F,0xFF,0xFF},
|
|
{0x7F,0x7F,0x7F,0xFF},
|
|
{0x7F,0x7F,0x7F,0x7F},
|
|
{0x7F,0x7F,0x7F,0x7F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
};
|
|
|
|
const unsigned int uNbPattern_Test3 =
|
|
sizeof(ar_sExpectedPattern_Test3)/sizeof(def_sTestPattern);
|
|
|
|
const def_sTestPattern ar_sExpectedPattern_Test3_Dither[] =
|
|
{
|
|
{
|
|
.bReferenceSet = true, // Nominal set
|
|
.u8FaultLineIdx = 0,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFFFF,0xFFFF,0xFFFF,0x0040},
|
|
{0xFFFF,0xFFFF,0x0040,0x0040},
|
|
{0xFFFF,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
|
|
{0xFF,0xFF,0x0F,0x0F},
|
|
{0xFF,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 0,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xF7FE,0xFFFF,0xFFFF,0x0040},
|
|
{0xFFFF,0xFFFF,0x0040,0x0040},
|
|
{0xFFFF,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
|
|
{0xFF,0xFF,0x0F,0x0F},
|
|
{0xFF,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 1,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xF7FE,0xFFFF,0xFFFF,0x0040},
|
|
{0xFFFF,0xFFFF,0x0040,0x0040},
|
|
{0xF7FE,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
|
|
{0xFF,0xFF,0x0F,0x0F},
|
|
{0xFF,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 2,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xF7FE,0xFFFF,0xFFFF,0x0040},
|
|
{0xFFFF,0xF7FE,0x0040,0x0040},
|
|
{0xF7FE,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
|
|
{0xFF,0xFF,0x0F,0x0F},
|
|
{0xFF,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 3,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xF7FE,0xF7FF,0xFFFF,0x0040},
|
|
{0xF7FE,0xF7FE,0x0040,0x0040},
|
|
{0xF7FE,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
|
|
{0xFF,0xFF,0x0F,0x0F},
|
|
{0xFF,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 4,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xEFFD,0xEFFF,0xFFFF,0x0040},
|
|
{0xEFFD,0xEFFD,0x0040,0x0040},
|
|
{0xEFFD,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
|
|
{0xFF,0xFF,0x0F,0x0F},
|
|
{0xFF,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 5,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xDFFB,0xDFFF,0xFFFF,0x0040},
|
|
{0xDFFB,0xDFFB,0x0040,0x0040},
|
|
{0xDFFB,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
|
|
{0xFF,0xFF,0x0F,0x0F},
|
|
{0xFF,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 6,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xBFF7,0xBFFF,0xFFFF,0x0040},
|
|
{0xC7F8,0xBFF7,0x0040,0x0040},
|
|
{0xBFF7,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
|
|
{0xFF,0xFF,0x0F,0x0F},
|
|
{0xFF,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 7,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0x7FEF,0x7FEF,0xFFFF,0x0040},
|
|
{0x87F0,0x7FEF,0x0040,0x0040},
|
|
{0x7FEF,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
|
|
{0xFF,0xFF,0x0F,0x0F},
|
|
{0xFF,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 8,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0x0040,0x0040,0xFFFF,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0x0F,0x0F,0xFF,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 9,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFFDF,0xFFFF,0xFFFF,0x0040},
|
|
{0xFFFF,0xFFDF,0x0040,0x0040},
|
|
{0xFFDF,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xFD,0xFD,0xFF,0x0F},
|
|
{0xFD,0xFD,0x0F,0x0F},
|
|
{0xFD,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 10,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFFDF,0xFFFF,0xFFFF,0x0040},
|
|
{0xFFDF,0xFFDF,0x0040,0x0040},
|
|
{0xFFDF,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xFB,0xFB,0xFF,0x0F},
|
|
{0xFB,0xFB,0x0F,0x0F},
|
|
{0xFB,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 11,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFFBF,0xFFFF,0xFFFF,0x0040},
|
|
{0xFFBF,0xFFBF,0x0040,0x0040},
|
|
{0xFFBF,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xF7,0xF7,0xFF,0x0F},
|
|
{0xF7,0xF7,0x0F,0x0F},
|
|
{0xF7,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 12,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFF7F,0xFFFF,0xFFFF,0x0040},
|
|
{0xFF7F,0xFF7F,0x0040,0x0040},
|
|
{0xFF7F,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xEF,0xEF,0xFF,0x0F},
|
|
{0xEF,0xEF,0x0F,0x0F},
|
|
{0xEF,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 13,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFEFF,0xFFFF,0xFFFF,0x0040},
|
|
{0xFEFF,0xFEFF,0x0040,0x0040},
|
|
{0xFEFF,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xDF,0xDF,0xFF,0x0F},
|
|
{0xDF,0xDF,0x0F,0x0F},
|
|
{0xDF,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{ //OK !
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 14,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFDFF,0xFFFF,0xFFFF,0x0040},
|
|
{0xFDFF,0xFDFF,0x0040,0x0040},
|
|
{0xFDFF,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0xBF,0xBF,0xFF,0x0F},
|
|
{0xBF,0xBF,0x0F,0x0F},
|
|
{0xBF,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
{//OK
|
|
.bReferenceSet = false,
|
|
.u8FaultLineIdx = 15,
|
|
.data = {
|
|
.access = {
|
|
.u16Pix = { {0xFBFF,0xFFFF,0xFFFF,0x0040},
|
|
{0xFC1F,0xFBFF,0x0040,0x0040},
|
|
{0xFBFF,0x0040,0x0040,0x0040},
|
|
{0x0040,0x0040,0x0040,0x0040}
|
|
},
|
|
.u8APix = { {0x7F,0xFF,0xFF,0x0F},
|
|
{0x7F,0x7F,0x0F,0x0F},
|
|
{0x7F,0x0F,0x0F,0x0F},
|
|
{0x0F,0x0F,0x0F,0x0F}
|
|
},
|
|
}
|
|
}
|
|
},
|
|
};
|
|
|
|
const unsigned int uNbPattern_Test3_Dither =
|
|
sizeof(ar_sExpectedPattern_Test3_Dither)/sizeof(def_sTestPattern);
|