blob: 5979540172fc69b7743a93b34ace15bbd9dd97f3 [file] [log] [blame]
/*
* Rev history:
* 2017.04.06 structure done
* 2017.04.20 function in pll.c done
* 2017.04.26 uboot cmd done
* 2017.07.25 update for txl
*
* Author: xiaobo.gu@amlogic.com
*/
/* README */
/*
Part1: S905X usage
1. sys pll
test pass print: sys pll test pass!
test fail print: sys pll test failed!
uboot command(select one as needed):
960MHz: plltest sys 0x60000228 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1056MHz: plltest sys 0x6000022c 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1152MHz: plltest sys 0x60000230 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1248MHz: plltest sys 0x60000234 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1344MHz: plltest sys 0x60000238 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1440MHz: plltest sys 0x6000023c 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1536MHz: plltest sys 0x60000240 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1632MHz: plltest sys 0x60000244 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
all: plltest sys
2. hdmi pll
test pass print: hdmi pll test pass!
test fail print: hdmi pll test failed!
uboot command:
5940MHz: plltest hdmi 0x4000027b 0x800cb300 0xc65f30e0 0x0c8e0000 0x001fa729 0x01a31500
5405MHz: plltest hdmi 0x400002e1 0x800cb0e6 0x865f30c4 0x0c8e0000 0x001fa729 0x01a31500
4455MHz: plltest hdmi 0x400002b9 0x800cb280 0x865f30c4 0x0c8e0000 0x001fa729 0x01a31500
4324MHz: plltest hdmi 0x400002b4 0x800cb0b8 0x865f30c4 0x0c8e0000 0x001fa729 0x01a31500
3712MHz: plltest hdmi 0x4000029a 0x800cb2c0 0x865f30c4 0x0c8e0000 0x001fa729 0x01a31500
3450MHz: plltest hdmi 0x4000028f 0x800cb300 0x865f30c4 0x0c8e0000 0x001fa729 0x01a31500
3243MHz: plltest hdmi 0x40000287 0x800cb08a 0x865f30c4 0x0c8e0000 0x001fa729 0x01a31500
2970MHz: plltest hdmi 0x4000027b 0x800cb300 0x865f30c4 0x0c8e0000 0x001fa729 0x01a31500
all: plltest hdmi
3. gp0 pll
test pass print: gp0 pll test pass!
test fail print: gp0 pll test failed!
uboot command:
504MHz: plltest gp0 0xc001022a 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
516MHz: plltest gp0 0xc001022b 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
528MHz: plltest gp0 0xc001022c 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
540MHz: plltest gp0 0xc001022d 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
552MHz: plltest gp0 0xc001022e 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
564MHz: plltest gp0 0xc001022f 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
576MHz: plltest gp0 0xc0010230 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
588MHz: plltest gp0 0xc0010231 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
600MHz: plltest gp0 0xc0010232 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
612MHz: plltest gp0 0xc0010233 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
624MHz: plltest gp0 0xc0010234 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
636MHz: plltest gp0 0xc0010235 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
648MHz: plltest gp0 0xc0010236 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
660MHz: plltest gp0 0xc0010237 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
672MHz: plltest gp0 0xc0010238 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
684MHz: plltest gp0 0xc0010239 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
696MHz: plltest gp0 0xc001023a 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
708MHz: plltest gp0 0xc001023b 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
720MHz: plltest gp0 0xc001023c 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
732MHz: plltest gp0 0xc001023d 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
744MHz: plltest gp0 0xc001023e 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
756MHz: plltest gp0 0xc001023f 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
768MHz: plltest gp0 0xc0010240 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
780MHz: plltest gp0 0xc0010241 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
792MHz: plltest gp0 0xc0010242 0xc084a000 0xb75020be 0x0a59a288 0xc000004d 0x00078000
all: plltest gp0
Part2: T968 usage
1. sys pll
test pass print: sys pll test pass!
test fail print: sys pll test failed!
uboot command:
1152MHz: plltest sys 0x60000230 0x5ac80000 0x8e452015 0x0401d40c 0x00000870
1248MHz: plltest sys 0x60000234 0x5ac80000 0x8e452015 0x0401d40c 0x00000870
1344MHz: plltest sys 0x60000238 0x5ac80000 0x8e452015 0x0401d40c 0x00000870
1440MHz: plltest sys 0x6000023c 0x5ac80000 0x8e452015 0x0401d40c 0x00000870
1536MHz: plltest sys 0x60000240 0x5ac80000 0x8e452015 0x0401d40c 0x00000870
1632MHz: plltest sys 0x60000244 0x5ac80000 0x8e452015 0x0401d40c 0x00000870
all: plltest sys
2. hdmi pll
test pass print: hdmi pll test pass!
test fail print: hdmi pll test failed!
uboot command:
5940MHz: plltest hdmi 0x5800027b 0x000E4300 0x12dc5081 0x801da72c 0x71486980 0x00002e55
4320MHz: plltest hdmi 0x5800025a 0x000E0000 0x0d5c5091 0x801da72c 0x71486980 0x00002e55
3712MHz: plltest hdmi 0x5800024d 0x000E4160 0x0d5c5091 0x801da72c 0x71486980 0x00002e55
all: plltest hdmi
3. gp0 pll
test pass print: gp0 pll test pass!
test fail print: gp0 pll test failed!
uboot command:
504MHz: plltest gp0 0xc001022a 0xb75020be 0x0a59a288 0xc000004d 0x00078000
516MHz: plltest gp0 0xc001022b 0xb75020be 0x0a59a288 0xc000004d 0x00078000
528MHz: plltest gp0 0xc001022c 0xb75020be 0x0a59a288 0xc000004d 0x00078000
540MHz: plltest gp0 0xc001022d 0xb75020be 0x0a59a288 0xc000004d 0x00078000
552MHz: plltest gp0 0xc001022e 0xb75020be 0x0a59a288 0xc000004d 0x00078000
564MHz: plltest gp0 0xc001022f 0xb75020be 0x0a59a288 0xc000004d 0x00078000
576MHz: plltest gp0 0xc0010230 0xb75020be 0x0a59a288 0xc000004d 0x00078000
588MHz: plltest gp0 0xc0010231 0xb75020be 0x0a59a288 0xc000004d 0x00078000
600MHz: plltest gp0 0xc0010232 0xb75020be 0x0a59a288 0xc000004d 0x00078000
612MHz: plltest gp0 0xc0010233 0xb75020be 0x0a59a288 0xc000004d 0x00078000
624MHz: plltest gp0 0xc0010234 0xb75020be 0x0a59a288 0xc000004d 0x00078000
636MHz: plltest gp0 0xc0010235 0xb75020be 0x0a59a288 0xc000004d 0x00078000
648MHz: plltest gp0 0xc0010236 0xb75020be 0x0a59a288 0xc000004d 0x00078000
660MHz: plltest gp0 0xc0010237 0xb75020be 0x0a59a288 0xc000004d 0x00078000
672MHz: plltest gp0 0xc0010238 0xb75020be 0x0a59a288 0xc000004d 0x00078000
684MHz: plltest gp0 0xc0010239 0xb75020be 0x0a59a288 0xc000004d 0x00078000
696MHz: plltest gp0 0xc001023a 0xb75020be 0x0a59a288 0xc000004d 0x00078000
708MHz: plltest gp0 0xc001023b 0xb75020be 0x0a59a288 0xc000004d 0x00078000
720MHz: plltest gp0 0xc001023c 0xb75020be 0x0a59a288 0xc000004d 0x00078000
732MHz: plltest gp0 0xc001023d 0xb75020be 0x0a59a288 0xc000004d 0x00078000
all: plltest gp0
Part3: T962 usage
1. sys pll
test pass print: sys pll test pass!
test fail print: sys pll test failed!
uboot command(select one as needed):
960MHz: plltest sys 0x60000228 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1056MHz: plltest sys 0x6000022c 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1152MHz: plltest sys 0x60000230 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1248MHz: plltest sys 0x60000234 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1344MHz: plltest sys 0x60000238 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1440MHz: plltest sys 0x6000023c 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1536MHz: plltest sys 0x60000240 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
1632MHz: plltest sys 0x60000244 0xc4258100 0xb7400000 0x0a59a288 0x0040002d 0x7c700007
all: plltest sys
2. hdmi pll
test pass print: hdmi pll test pass!
test fail print: hdmi pll test failed!
uboot command:
5940MHz: plltest hdmi 0x400002f7 0x800cb200 0x865f30c4 0x0c8e0000 0x001fa729 0x01a31500
4320MHz: plltest hdmi 0x400002b4 0x800cb000 0x865f30c4 0x0c8e0000 0x001fa729 0x01a31500
3712MHz: plltest hdmi 0x4000029a 0x800cb2c0 0x865f30c4 0x0c8e0000 0x001fa729 0x01a31500
3712MHz: plltest hdmi 0x4000027b 0x800cb300 0x865f30c4 0x0c8e0000 0x001fa729 0x01a31500
all: plltest hdmi
3. gp0 pll
test pass print: gp0 pll test pass!
test fail print: gp0 pll test failed!
uboot command:
504MHz: plltest gp0 0xc001022a 0xb75020be 0x0a59a288 0xc000004d 0x00078000
516MHz: plltest gp0 0xc001022b 0xb75020be 0x0a59a288 0xc000004d 0x00078000
528MHz: plltest gp0 0xc001022c 0xb75020be 0x0a59a288 0xc000004d 0x00078000
540MHz: plltest gp0 0xc001022d 0xb75020be 0x0a59a288 0xc000004d 0x00078000
552MHz: plltest gp0 0xc001022e 0xb75020be 0x0a59a288 0xc000004d 0x00078000
564MHz: plltest gp0 0xc001022f 0xb75020be 0x0a59a288 0xc000004d 0x00078000
576MHz: plltest gp0 0xc0010230 0xb75020be 0x0a59a288 0xc000004d 0x00078000
588MHz: plltest gp0 0xc0010231 0xb75020be 0x0a59a288 0xc000004d 0x00078000
600MHz: plltest gp0 0xc0010232 0xb75020be 0x0a59a288 0xc000004d 0x00078000
612MHz: plltest gp0 0xc0010233 0xb75020be 0x0a59a288 0xc000004d 0x00078000
624MHz: plltest gp0 0xc0010234 0xb75020be 0x0a59a288 0xc000004d 0x00078000
636MHz: plltest gp0 0xc0010235 0xb75020be 0x0a59a288 0xc000004d 0x00078000
648MHz: plltest gp0 0xc0010236 0xb75020be 0x0a59a288 0xc000004d 0x00078000
660MHz: plltest gp0 0xc0010237 0xb75020be 0x0a59a288 0xc000004d 0x00078000
672MHz: plltest gp0 0xc0010238 0xb75020be 0x0a59a288 0xc000004d 0x00078000
684MHz: plltest gp0 0xc0010239 0xb75020be 0x0a59a288 0xc000004d 0x00078000
696MHz: plltest gp0 0xc001023a 0xb75020be 0x0a59a288 0xc000004d 0x00078000
708MHz: plltest gp0 0xc001023b 0xb75020be 0x0a59a288 0xc000004d 0x00078000
720MHz: plltest gp0 0xc001023c 0xb75020be 0x0a59a288 0xc000004d 0x00078000
732MHz: plltest gp0 0xc001023d 0xb75020be 0x0a59a288 0xc000004d 0x00078000
all: plltest gp0
T962: please check Part3
Part4: G12A usage
1. sys pll
test pass print: sys pll test pass!
test fail print: sys pll test failed!
uboot command(select one as needed):
960MHz: plltest sys 0x380204a0 0x0 0x0 0x48681c00 0x88770290 0x39272000 0x56540000
1056MHz: plltest sys 0x380204b0 0x0 0x0 0x48681c00 0x88770290 0x39272000 0x56540000
1152MHz: plltest sys 0x380204c0 0x0 0x0 0x48681c00 0x88770290 0x39272000 0x56540000
1248MHz: plltest sys 0x380204d0 0x0 0x0 0x48681c00 0x88770290 0x39272000 0x56540000
1344MHz: plltest sys 0x380204e0 0x0 0x0 0x48681c00 0x88770290 0x39272000 0x56540000
1440MHz: plltest sys 0x380204f0 0x0 0x0 0x48681c00 0x88770290 0x39272000 0x56540000
1536MHz: plltest sys 0x38010480 0x0 0x0 0x48681c00 0x88770290 0x39272000 0x56540000
1632MHz: plltest sys 0x38010488 0x0 0x0 0x48681c00 0x88770290 0x39272000 0x56540000
all: plltest sys
2. hdmi pll
test pass print: hdmi pll test pass!
test fail print: hdmi pll test failed!
uboot command:
5405MHz: plltest hdmi 0x3b0004e1 0x00007333 0x00000000 0x0a691c00 0x33771290 0x39270000 0x50540000
4455MHz: plltest hdmi 0x3b0004b9 0x00014000 0x00000000 0x0a691c00 0x33771290 0x39270000 0x50540000
3450MHz: plltest hdmi 0x3b00048f 0x00018000 0x00000000 0x0a691c00 0x33771290 0x39270000 0x50540000
2970MHz: plltest hdmi 0x3b00047b 0x00018000 0x00000000 0x0a691c00 0x33771290 0x39270000 0x50540000
all: plltest hdmi
3. gp0 pll
test pass print: gp0 pll test pass!
test fail print: gp0 pll test failed!
uboot command:
408MHz: plltest gp0 0x38070488 0 0 0x48681c00 0x33771290 0x39272000 0x56540000
600MHz: plltest gp0 0x380704c8 0 0 0x48681c00 0x33771290 0x39272000 0x56540000
696MHz: plltest gp0 0x380704e8 0 0 0x48681c00 0x33771290 0x39272000 0x56540000
792MHz: plltest gp0 0x38060484 0 0 0x48681c00 0x33771290 0x39272000 0x56540000
846MHz: plltest gp0 0x3806048d 0 0 0x48681c00 0x33771290 0x39272000 0x56540000
912MHz: plltest gp0 0x38060498 0 0 0x48681c00 0x33771290 0x39272000 0x56540000
all: plltest gp0
*/
#include <common.h>
#include <command.h>
#include <asm/cpu_id.h>
#include <malloc.h>
#include <asm/io.h>
#include <asm/arch/clock.h>
#include <asm/arch/secure_apb.h>
#include <asm/arch/pll.h>
static int do_plltest(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) {
if (argc < 2) {
return -1;
}
pll_test(argc, argv);
return 0;
}
U_BOOT_CMD(
plltest, CONFIG_SYS_MAXARGS, 1, do_plltest,
"test pll",
"\n"
" - test pll and report result\n\n"
"plltest [all/sys/hdmi/gp0] [pll_cntl pll_cntl2 ...]\n\n"
"examples:\n"
"plltest all - test all plls\n"
"plltest sys - test sys pll with all preset freq\n"
"plltest sys cntl cntl1 cntl2 ... - test sys pll with params\n"
"plltest hdmi - test hdmi pll with all preset freq\n"
"plltest hdmi cntl cntl1 cntl2 ... - test hdmi pll with params\n"
"plltest gp0 - test gp0 pll with all preset freq\n"
"plltest gp0 cntl cntl1 cntl2 ... - test gp0 pll with params\n"
);