util/inteltool: add code for dumping LPC registers

This adds the implementation for dumping LPC registers

Change-Id: I50ae4913933f7594f0d63ce3f752302ed5c461e2
Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/39517
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: HAOUAS Elyes <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Michael Niewöhner
2020-03-13 22:22:26 +01:00
committed by Felix Held
parent fe8170f909
commit 9952e72d06
4 changed files with 179 additions and 3 deletions

View File

@@ -494,7 +494,7 @@ static void print_version(void)
static void print_usage(const char *name)
{
printf("usage: %s [-vh?gGrpmedPMaAsfSRx]\n", name);
printf("usage: %s [-vh?gGrplmedPMaAsfSRx]\n", name);
printf("\n"
" -v | --version: print the version\n"
" -h | --help: print this help\n\n"
@@ -505,6 +505,7 @@ static void print_usage(const char *name)
" -G | --gpio-diffs: show GPIO differences from defaults\n"
" -r | --rcba: dump southbridge RCBA registers\n"
" -p | --pmbase: dump southbridge Power Management registers\n\n"
" -l | --lpc: dump southbridge LPC/eSPI Interface registers\n\n"
" -m | --mchbar: dump northbridge Memory Controller registers\n"
" -S FILE | --spd=FILE: create a file storing current timings (implies -m)\n"
" -e | --epbar: dump northbridge EPBAR registers\n"
@@ -574,6 +575,7 @@ int main(int argc, char *argv[])
int dump_pmbase = 0, dump_epbar = 0, dump_dmibar = 0;
int dump_pciexbar = 0, dump_coremsrs = 0, dump_ambs = 0;
int dump_spi = 0, dump_gfx = 0, dump_ahci = 0, dump_sgx = 0;
int dump_lpc = 0;
int show_gpio_diffs = 0;
size_t pcr_count = 0;
uint8_t dump_pcr[MAX_PCR_PORTS];
@@ -586,6 +588,7 @@ int main(int argc, char *argv[])
{"mchbar", 0, 0, 'm'},
{"rcba", 0, 0, 'r'},
{"pmbase", 0, 0, 'p'},
{"lpc", 0, 0, 'l'},
{"epbar", 0, 0, 'e'},
{"dmibar", 0, 0, 'd'},
{"pciexpress", 0, 0, 'P'},
@@ -601,7 +604,7 @@ int main(int argc, char *argv[])
{0, 0, 0, 0}
};
while ((opt = getopt_long(argc, argv, "vh?gGrpmedPMaAsfRS:x",
while ((opt = getopt_long(argc, argv, "vh?gGrplmedPMaAsfRS:x",
long_options, &option_index)) != EOF) {
switch (opt) {
case 'v':
@@ -633,6 +636,9 @@ int main(int argc, char *argv[])
case 'p':
dump_pmbase = 1;
break;
case 'l':
dump_lpc = 1;
break;
case 'e':
dump_epbar = 1;
break;
@@ -651,6 +657,7 @@ int main(int argc, char *argv[])
dump_mchbar = 1;
dump_rcba = 1;
dump_pmbase = 1;
dump_lpc = 1;
dump_epbar = 1;
dump_dmibar = 1;
dump_pciexbar = 1;
@@ -816,6 +823,11 @@ int main(int argc, char *argv[])
printf("\n\n");
}
if (dump_lpc) {
print_lpc(sb, pacc);
printf("\n\n");
}
if (dump_mchbar) {
print_mchbar(nb, pacc, dump_spd_file);
printf("\n\n");