History log of /kvm-unit-tests/lib/arm/psci.c (Results 1 – 16 of 16)
Revision Date Author Comments
# 201b9e8b 03-Jul-2024 Andrew Jones <andrew.jones@linux.dev>

Merge branch 'arm/queue' into 'master'

arm/arm64: LPA2 support and fpu/sve s/r test

See merge request kvm-unit-tests/kvm-unit-tests!61


# cddb18bc 12-Apr-2024 Alexandru Elisei <alexandru.elisei@arm.com>

arm64: Expand SMCCC arguments and return values

PSCI uses the SMC Calling Convention (SMCCC) to communicate with the higher
level software. PSCI uses at most 4 arguments and expend only one return
v

arm64: Expand SMCCC arguments and return values

PSCI uses the SMC Calling Convention (SMCCC) to communicate with the higher
level software. PSCI uses at most 4 arguments and expend only one return
value. However, SMCCC has provisions for more arguments (upto 17 depending
on the SMCCC version) and upto 10 distinct return values.

We are going to be adding tests that make use of it, so add support for the
extended number of arguments and return values.

Also rename the SMCCC functions to generic, non-PSCI names, so they
can be used for Realm services.

Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
Co-developed-by: Joey Gouly <joey.gouly@arm.com>
Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
[Fixed EFI compile error.]
Signed-off-by: Andrew Jones <andrew.jones@linux.dev>

show more ...


# e526bc78 01-Jul-2023 Andrew Jones <andrew.jones@linux.dev>

Merge branch 'arm/queue' into 'master'

arm/arm64: EFI support, arm64 backtrace support, PMU test improvements, and more

See merge request kvm-unit-tests/kvm-unit-tests!43


# bff097a8 30-May-2023 Nikos Nikoleris <nikos.nikoleris@arm.com>

arm64: Add support for setting up the PSCI conduit through ACPI

In systems with ACPI support and when a DT is not provided, we can use
the FADT to discover whether PSCI calls need to use smc or hvc

arm64: Add support for setting up the PSCI conduit through ACPI

In systems with ACPI support and when a DT is not provided, we can use
the FADT to discover whether PSCI calls need to use smc or hvc
calls. This change implements this but retains the default behavior;
we check if a valid DT is provided, if not, we try to setup the PSCI
conduit using ACPI.

Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Reviewed-by: Ricardo Koller <ricarkol@google.com>
Reviewed-by: Shaoqin Huang <shahuang@redhat.com>
Signed-off-by: Andrew Jones <andrew.jones@linux.dev>

show more ...


# 74ff0e96 18-May-2021 Paolo Bonzini <bonzini@gnu.org>

Merge branch 'arm/queue' into 'master'

arm/arm64: target-efi prep

This series mostly prepares kvm-unit-tests/arm for targeting EFI
platforms. The actually EFI support will come in another series,
b

Merge branch 'arm/queue' into 'master'

arm/arm64: target-efi prep

This series mostly prepares kvm-unit-tests/arm for targeting EFI
platforms. The actually EFI support will come in another series,
but these patches are good for removing assumptions from our memory
maps and about our PSCI conduit, even if we never merge EFI support.

See merge request kvm-unit-tests/kvm-unit-tests!8

show more ...


# bd5bd157 06-Apr-2021 Andrew Jones <drjones@redhat.com>

arm/arm64: psci: Don't assume method is hvc

The method can be smc in addition to hvc, and it will be when running
on bare metal. Additionally, we move the invocations to assembly so
we don't have to

arm/arm64: psci: Don't assume method is hvc

The method can be smc in addition to hvc, and it will be when running
on bare metal. Additionally, we move the invocations to assembly so
we don't have to rely on compiler assumptions. We also fix the
prototype of psci_invoke. function_id should be an unsigned int, not
an unsigned long.

Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Tested-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Andrew Jones <drjones@redhat.com>

show more ...


# 3c13c642 08-Jan-2020 Paolo Bonzini <pbonzini@redhat.com>

Merge branch 'arm/queue' of https://github.com/rhdrjones/kvm-unit-tests into HEAD


# b40a6180 31-Dec-2019 Alexandru Elisei <alexandru.elisei@arm.com>

lib: arm/arm64: Remove unused CPU_OFF parameter

The first version of PSCI required an argument for CPU_OFF, the power_state
argument, which was removed in version 0.2 of the specification [1].
kvm-u

lib: arm/arm64: Remove unused CPU_OFF parameter

The first version of PSCI required an argument for CPU_OFF, the power_state
argument, which was removed in version 0.2 of the specification [1].
kvm-unit-tests supports PSCI 0.2, and KVM ignores any CPU_OFF parameters,
so let's remove the PSCI_POWER_STATE_TYPE_POWER_DOWN parameter.

[1] ARM DEN 0022D, section 7.3.

Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Andrew Jones <drjones@redhat.com>

show more ...


# c81d5352 05-Apr-2019 Paolo Bonzini <pbonzini@redhat.com>

Merge branch 'support-kvmtool' of https://github.com/rhdrjones/kvm-unit-tests into HEAD


# 7c12e7ca 04-Feb-2019 Alexandru Elisei <alexandru.elisei@arm.com>

lib: arm: Implement PSCI SYSTEM_OFF in psci_system_off()

A new function, psci_system_off(), is added which implements the PSCI
SYSTEM_OFF function. A call causes the hypervisor to terminate the virt

lib: arm: Implement PSCI SYSTEM_OFF in psci_system_off()

A new function, psci_system_off(), is added which implements the PSCI
SYSTEM_OFF function. A call causes the hypervisor to terminate the virtual
machine.

We take this opportunity to rename psci_sys_reset() to psci_system_reset()
to match the name of the PSCI function SYSTEM_RESET that it implements.

Consumers for the function will be added in a later patch.

Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
Reviewed-by: Andrew Jones <drjones@redhat.com>

show more ...


# d556c4a8 29-May-2017 Andrew Jones <drjones@redhat.com>

arm/arm64: psci: cpu_psci_cpu_die operates on itself

Signed-off-by: Andrew Jones <drjones@redhat.com>
Message-Id: <20170529135804.22891-3-drjones@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@r

arm/arm64: psci: cpu_psci_cpu_die operates on itself

Signed-off-by: Andrew Jones <drjones@redhat.com>
Message-Id: <20170529135804.22891-3-drjones@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...


# c535b2f8 25-May-2017 Andrew Jones <drjones@redhat.com>

lib/arm/psci: make psci less ugly

Signed-off-by: Andrew Jones <drjones@redhat.com>
Message-Id: <20170525102849.22754-3-drjones@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


# 1742c67a 29-Jul-2015 Andrew Jones <drjones@redhat.com>

arm/arm64: fix mmu_enabled

We recently modified how mmu_enabled works in order to speed
spinlocks up (see c33efcf3 and b141dbac). Unfortunately c33efcf3
was a bit hasty in removing mmu_set_enabled.

arm/arm64: fix mmu_enabled

We recently modified how mmu_enabled works in order to speed
spinlocks up (see c33efcf3 and b141dbac). Unfortunately c33efcf3
was a bit hasty in removing mmu_set_enabled. I had forgotten
one of the reasons I introduced it was because secondaries
don't go through mmu_enable(), they go straight to asm_mmu_enable
from secondary_entry. This patch brings it back, albeit renamed
to mmu_mark_enabled to match mmu_mark_disabled.

The patch also moves mmu_mark_disabled from psci code to smp code,
as psci code shouldn't need to care about mmu stuff, and because
we now have a nice balance in the smp code - we mark the mmu disabled
for the secondary before we kick it, and then mark it enabled on the
init.

Finally, a bit unrelated, I've added a lengthy comment to
__mmu_enabled in order to warn about what can't be called from there.
We need to be cautious there because mmu_enabled() gets scattered
around easily, being in basic functions, and thus there's risk of
recursion.

Signed-off-by: Andrew Jones <drjones@redhat.com>
Reported-by: Levente Kurusa <lkurusa@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...


# c33efcf3 25-Jun-2015 Andrew Jones <drjones@redhat.com>

arm/arm64: drop mmu_set_enabled

The mmu is enabled automatically for all cpus, they must disable it
themselves if they don't want it on. Switch from managing a cpumask
of enabled cpus to one of disa

arm/arm64: drop mmu_set_enabled

The mmu is enabled automatically for all cpus, they must disable it
themselves if they don't want it on. Switch from managing a cpumask
of enabled cpus to one of disabled cpus. This allows us to remove
the mmu_set_enabled call from secondary_cinit, and the function all
together.

Signed-off-by: Andrew Jones <drjones@redhat.com>
[Place CPUs in MMU disabled state at startup. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...


# 68ea0e0b 02-Feb-2015 Andrew Jones <drjones@redhat.com>

arm/arm64: add smp_boot_secondary

Add a common entry point, present/online cpu masks, and
smp_boot_secondary() to support booting secondary cpus.
Adds a bit more PSCI API that we need too. We also
a

arm/arm64: add smp_boot_secondary

Add a common entry point, present/online cpu masks, and
smp_boot_secondary() to support booting secondary cpus.
Adds a bit more PSCI API that we need too. We also
adjust THREAD_START_SP for arm to make some room for
exception stacks.

Signed-off-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

show more ...


# f0705d4c 01-Feb-2015 Andrew Jones <drjones@redhat.com>

arm/arm64: add some PSCI API

Signed-off-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>