All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Support ARMv8R
@ 2018-07-09  9:50 Vladimir Murzin
  2018-07-09  9:50 ` [PATCH 1/2] ARM: NOMMU: Extend check for VBAR support Vladimir Murzin
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Vladimir Murzin @ 2018-07-09  9:50 UTC (permalink / raw)
  To: linux-arm-kernel

ARMv8R brings set of new features. Some of them, like PMSAv8, have
already been merged, so these patches add missing features for bare
minimimum support of ARMv8R.

Thanks!

Vladimir Murzin (2):
  ARM: NOMMU: Extend check for VBAR support
  ARM: NOMMU: Allow enter in Hyp mode

 arch/arm/kernel/head-nommu.S | 12 ++++++++++--
 arch/arm/mm/Kconfig          |  1 -
 arch/arm/mm/nommu.c          |  3 ++-
 3 files changed, 12 insertions(+), 4 deletions(-)

-- 
2.0.0

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] ARM: NOMMU: Extend check for VBAR support
  2018-07-09  9:50 [PATCH 0/2] Support ARMv8R Vladimir Murzin
@ 2018-07-09  9:50 ` Vladimir Murzin
  2018-07-09  9:50 ` [PATCH 2/2] ARM: NOMMU: Allow enter in Hyp mode Vladimir Murzin
  2018-07-16  9:34 ` [PATCH 0/2] Support ARMv8R Vladimir Murzin
  2 siblings, 0 replies; 4+ messages in thread
From: Vladimir Murzin @ 2018-07-09  9:50 UTC (permalink / raw)
  To: linux-arm-kernel

ARMv8R adds support for VBAR and updates ID_PFR1 with the new filed
Sec_frac (bits [23:20]):

Security fractional field. When the Security field is 0000, determines
the support for features from the ARMv7 Security Extensions. Permitted
values are:

0000 No features from the ARMv7 Security Extensions are implemented.
     This value is not supported in ARMv8 if ID_PFR1 bits [7:4] are zero.

0001 The implementation includes the VBAR, and the TCR.PD0 and TCR.PD1
     bits.

0010 As for 0001, plus the ability to access Secure or Non-secure
     physical memory is supported.

All other values are reserved.

This field is only valid when ID_PFR1[7:4] == 0, otherwise it holds
the value 0000.

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
---
 arch/arm/mm/nommu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mm/nommu.c b/arch/arm/mm/nommu.c
index 5dd6c58..7d67c70 100644
--- a/arch/arm/mm/nommu.c
+++ b/arch/arm/mm/nommu.c
@@ -53,7 +53,8 @@ static inline bool security_extensions_enabled(void)
 {
 	/* Check CPUID Identification Scheme before ID_PFR1 read */
 	if ((read_cpuid_id() & 0x000f0000) == 0x000f0000)
-		return !!cpuid_feature_extract(CPUID_EXT_PFR1, 4);
+		return cpuid_feature_extract(CPUID_EXT_PFR1, 4) ||
+			cpuid_feature_extract(CPUID_EXT_PFR1, 20);
 	return 0;
 }
 
-- 
2.0.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] ARM: NOMMU: Allow enter in Hyp mode
  2018-07-09  9:50 [PATCH 0/2] Support ARMv8R Vladimir Murzin
  2018-07-09  9:50 ` [PATCH 1/2] ARM: NOMMU: Extend check for VBAR support Vladimir Murzin
@ 2018-07-09  9:50 ` Vladimir Murzin
  2018-07-16  9:34 ` [PATCH 0/2] Support ARMv8R Vladimir Murzin
  2 siblings, 0 replies; 4+ messages in thread
From: Vladimir Murzin @ 2018-07-09  9:50 UTC (permalink / raw)
  To: linux-arm-kernel

ARMv8R adds support for virtualisation extension (with some deviation
from v8A). With this patch hyp-unaware boot code can offload to kernel
setting up HYP stuff in a sane state.

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
---
 arch/arm/kernel/head-nommu.S | 12 ++++++++++--
 arch/arm/mm/Kconfig          |  1 -
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
index dd546d6..7247340 100644
--- a/arch/arm/kernel/head-nommu.S
+++ b/arch/arm/kernel/head-nommu.S
@@ -53,7 +53,11 @@ ENTRY(stext)
  THUMB(1:			)
 #endif
 
-	setmode	PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9 @ ensure svc mode
+#ifdef CONFIG_ARM_VIRT_EXT
+	bl	__hyp_stub_install
+#endif
+	@ ensure svc mode and all interrupts masked
+	safe_svcmode_maskall r9
 						@ and irqs disabled
 #if defined(CONFIG_CPU_CP15)
 	mrc	p15, 0, r9, c0, c0		@ get processor id
@@ -89,7 +93,11 @@ ENTRY(secondary_startup)
 	 * the processor type - there is no need to check the machine type
 	 * as it has already been validated by the primary processor.
 	 */
-	setmode	PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9
+#ifdef CONFIG_ARM_VIRT_EXT
+	bl	__hyp_stub_install_secondary
+#endif
+	safe_svcmode_maskall r9
+
 #ifndef CONFIG_CPU_CP15
 	ldr	r9, =CONFIG_PROCESSOR_ID
 #else
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index 96a7b6c..b169e58 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -702,7 +702,6 @@ config ARM_THUMBEE
 
 config ARM_VIRT_EXT
 	bool
-	depends on MMU
 	default y if CPU_V7
 	help
 	  Enable the kernel to make use of the ARM Virtualization
-- 
2.0.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 0/2] Support ARMv8R
  2018-07-09  9:50 [PATCH 0/2] Support ARMv8R Vladimir Murzin
  2018-07-09  9:50 ` [PATCH 1/2] ARM: NOMMU: Extend check for VBAR support Vladimir Murzin
  2018-07-09  9:50 ` [PATCH 2/2] ARM: NOMMU: Allow enter in Hyp mode Vladimir Murzin
@ 2018-07-16  9:34 ` Vladimir Murzin
  2 siblings, 0 replies; 4+ messages in thread
From: Vladimir Murzin @ 2018-07-16  9:34 UTC (permalink / raw)
  To: linux-arm-kernel

On 09/07/18 10:50, Vladimir Murzin wrote:
> ARMv8R brings set of new features. Some of them, like PMSAv8, have
> already been merged, so these patches add missing features for bare
> minimimum support of ARMv8R.
> 

Ok for patch tracker?

> Thanks!
> 
> Vladimir Murzin (2):
>   ARM: NOMMU: Extend check for VBAR support
>   ARM: NOMMU: Allow enter in Hyp mode
> 
>  arch/arm/kernel/head-nommu.S | 12 ++++++++++--
>  arch/arm/mm/Kconfig          |  1 -
>  arch/arm/mm/nommu.c          |  3 ++-
>  3 files changed, 12 insertions(+), 4 deletions(-)
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-07-16  9:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-09  9:50 [PATCH 0/2] Support ARMv8R Vladimir Murzin
2018-07-09  9:50 ` [PATCH 1/2] ARM: NOMMU: Extend check for VBAR support Vladimir Murzin
2018-07-09  9:50 ` [PATCH 2/2] ARM: NOMMU: Allow enter in Hyp mode Vladimir Murzin
2018-07-16  9:34 ` [PATCH 0/2] Support ARMv8R Vladimir Murzin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.