On 18/07/2019 08:16, David Gibson wrote: > On Thu, Jul 18, 2019 at 03:12:17PM +0930, Joel Stanley wrote: >> Currently we fail to boot a qemu powernv machine with a Power9 >> processor: >> >> PLAT: Detected generic platform >> PLAT: Detected BMC platform generic >> CPU: All 1 processors called in... >> CHIPTOD: Unknown TOD type ! >> CHIPTOD: Failed ChipTOD detection ! >> Aborting! >> >> With v6.4 we can boot both a Power8 and Power9 powernv machine. >> >> Built from submodule with powerpc64le-linux-gnu-gcc (Debian 8.3.0-2). >> >> Signed-off-by: Joel Stanley <j...@jms.id.au> > Applied to ppc-for-4.2, thanks. > > If you could add both POWER8 and POWER9 smoke tests to > boot-serial-test that would be even better.
There is one for POWER8 and adding an extra for POWER9 results in a test conflict. So I came up with the patch below. Would that be OK ? C. @@ -104,6 +104,7 @@ static testdef_t tests[] = { "-machine cap-cfpc=broken,cap-sbbc=broken,cap-ibs=broken", "Open Firmware" }, { "ppc64", "powernv", "-cpu POWER8", "OPAL" }, + { "ppc64", "powernv", "-cpu POWER9", "OPAL" }, { "ppc64", "sam460ex", "-device e1000", "8086 100e" }, { "i386", "isapc", "-cpu qemu32 -device sga", "SGABIOS" }, { "i386", "pc", "-device sga", "SGABIOS" }, @@ -222,6 +223,17 @@ static void test_machine(const void *dat close(ser_fd); } +static char* build_testname(testdef_t *t) +{ + char suffix[2] = ""; + + if (!strcmp(t->machine, "powernv")) { + sscanf(t->extra, "-cpu POWER%1s", suffix); + } + + return g_strdup_printf("boot-serial/%s%s", t->machine, suffix); +} + int main(int argc, char *argv[]) { const char *arch = qtest_get_arch(); @@ -231,7 +243,7 @@ int main(int argc, char *argv[]) for (i = 0; tests[i].arch != NULL; i++) { if (strcmp(arch, tests[i].arch) == 0) { - char *name = g_strdup_printf("boot-serial/%s", tests[i].machine); + char *name = build_testname(&tests[i]); qtest_add_data_func(name, &tests[i], test_machine); g_free(name); }