#
c76b0d0a |
| 04-May-2024 |
Nicholas Piggin <npiggin@gmail.com> |
powerpc: add SMP and IPI support
powerpc SMP support is very primitive and does not set up a first-class runtime environment for secondary CPUs.
This reworks SMP support, and provides a complete C
powerpc: add SMP and IPI support
powerpc SMP support is very primitive and does not set up a first-class runtime environment for secondary CPUs.
This reworks SMP support, and provides a complete C and harness environment for the secondaries, including interrupt handling, as well as IPI support.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Message-ID: <20240504122841.1177683-17-npiggin@gmail.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
#
a299895b |
| 06-Dec-2019 |
Thomas Huth <thuth@redhat.com> |
Switch the order of the parameters in report() and report_xfail()
Commit c09c54c66b1df ("lib: use an argument which doesn't require default argument promotion") fixed a warning that occurs with Clan
Switch the order of the parameters in report() and report_xfail()
Commit c09c54c66b1df ("lib: use an argument which doesn't require default argument promotion") fixed a warning that occurs with Clang, but introduced a regression: If the "pass" parameter is a value which has only set the condition bits in the upper 32 bits of a 64 bit value, the condition is now false since the value is truncated to "unsigned int" so that the upper bits are simply discarded.
We fixed it by reverting the commit, but that of course also means trouble with Clang again. We can not use "bool" if it is the last parameter before the variable argument list. The proper fix is to swap the parameters around and make the format string the last parameter.
This patch (except the changes in lib/libcflat.h and lib/report.c and some rebase conflicts along the way) has basically been created with following coccinelle script (with some additional manual tweaking of long and disabled lines afterwards):
@@ expression fmt; expression pass; expression list args; @@ report( -fmt, pass +pass, fmt , args);
@@ expression fmt; expression pass; expression list args; @@ report_xfail( -fmt, xfail, pass +xfail, pass, fmt , args);
Tested-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <20191206113102.14914-1-thuth@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
2ce7a6c7 |
| 17-May-2017 |
Radim Krčmář <rkrcmar@redhat.com> |
fix conversions in report()s
Fix conversions that would trigger a warning if the format was checked by a compiler.
Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: David Hildenbrand <david@
fix conversions in report()s
Fix conversions that would trigger a warning if the format was checked by a compiler.
Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: David Hildenbrand <david@redhat.com> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
show more ...
|
#
a9abb1b8 |
| 12-Jun-2016 |
Andrew Jones <drjones@redhat.com> |
powerpc/ppc64: reserve argv[0] for prognam
Signed-off-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
#
f1df8658 |
| 29-Feb-2016 |
Paolo Bonzini <pbonzini@redhat.com> |
Merge branch 'ppc64/initial-drop-v7' of https://github.com/rhdrjones/kvm-unit-tests into HEAD
This series brings basic setup; starts a test's C entry point, main(), and printf, exit, and malloc work
Merge branch 'ppc64/initial-drop-v7' of https://github.com/rhdrjones/kvm-unit-tests into HEAD
This series brings basic setup; starts a test's C entry point, main(), and printf, exit, and malloc work. Three more series should follow this one which must bring; vector support, mmu support, and smp support, at which point I believe the framework could just evolve with the creation of unit tests.
Tested on TCG and a P8 kvm_pr machine, and Laurent has tested it on both a PowerMac G5 (kvm_pr) and a kvm_hv machine. I'm looking forward to hearing more testing feedback from others though.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
d72b0449 |
| 13-Feb-2016 |
Andrew Jones <drjones@redhat.com> |
powerpc/ppc64: adapt arm's setup
Copy arm's setup code (also DT based) over to powerpc, adapting it a bit. Also bring over arm's setup selftest, giving powerpc its first test.
The largest change fr
powerpc/ppc64: adapt arm's setup
Copy arm's setup code (also DT based) over to powerpc, adapting it a bit. Also bring over arm's setup selftest, giving powerpc its first test.
The largest change from arm's setup.c is that instead of using a hardcoded SMP_CACHE_BYTES, cpu_set() is extended to extract the icache and dcache line sizes from the cpu DT nodes. That change also requires that we call cpu_init() before mem_init() in setup().
Signed-off-by: Andrew Jones <drjones@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Tested-by: Laurent Vivier <lvivier@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
show more ...
|
#
1e95c7cc |
| 13-Feb-2016 |
Andrew Jones <drjones@redhat.com> |
powerpc/ppc64: start skeleton framework
Use the arm/arm64 framework as a template to start a skeleton for powerpc/ppc64. Copy the arm makefiles and linker script verbatim. We'll modify them for powe
powerpc/ppc64: start skeleton framework
Use the arm/arm64 framework as a template to start a skeleton for powerpc/ppc64. Copy the arm makefiles and linker script verbatim. We'll modify them for powerpc with the next patch, making it clear what needs to be changed.
Signed-off-by: Andrew Jones <drjones@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
show more ...
|