Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1b27ab5 authored by Chris Metcalf's avatar Chris Metcalf
Browse files

tile: provide CONFIG_PAGE_SIZE_64KB etc for tilepro



This allows the build system to know that it can't attempt to
configure the Lustre virtual block device, for example, when tilepro
is using 64KB pages (as it does by default).  The tilegx build
already provided those symbols.

Previously we required that the tilepro hypervisor be rebuilt with
a different hardcoded page size in its headers, and then Linux be
rebuilt using the updated hypervisor header.  Now we allow each of
the hypervisor and Linux to be built independently.  We still check
at boot time to ensure that the page size provided by the hypervisor
matches what Linux expects.

Signed-off-by: default avatarChris Metcalf <cmetcalf@ezchip.com>
Cc: stable@vger.kernel.org [3.19+]
parent 9f9499ae
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -176,8 +176,6 @@ config NR_CPUS
	  smaller kernel memory footprint results from using a smaller
	  value on chips with fewer tiles.

if TILEGX

choice
	prompt "Kernel page size"
	default PAGE_SIZE_64KB
@@ -188,8 +186,11 @@ choice
	  connections, etc., it may be better to select 16KB, which uses
	  memory more efficiently at some cost in TLB performance.

	  Note that this option is TILE-Gx specific; currently
	  TILEPro page size is set by rebuilding the hypervisor.
	  Note that for TILEPro, you must also rebuild the hypervisor
	  with a matching page size.

config PAGE_SIZE_4KB
	bool "4KB" if TILEPRO

config PAGE_SIZE_16KB
	bool "16KB"
@@ -199,8 +200,6 @@ config PAGE_SIZE_64KB

endchoice

endif

source "kernel/Kconfig.hz"

config KEXEC
+5 −3
Original line number Diff line number Diff line
@@ -20,15 +20,17 @@
#include <arch/chip.h>

/* PAGE_SHIFT and HPAGE_SHIFT determine the page sizes. */
#if defined(CONFIG_PAGE_SIZE_16KB)
#if defined(CONFIG_PAGE_SIZE_4KB)  /* tilepro only */
#define PAGE_SHIFT	12
#define CTX_PAGE_FLAG	HV_CTX_PG_SM_4K
#elif defined(CONFIG_PAGE_SIZE_16KB)
#define PAGE_SHIFT	14
#define CTX_PAGE_FLAG	HV_CTX_PG_SM_16K
#elif defined(CONFIG_PAGE_SIZE_64KB)
#define PAGE_SHIFT	16
#define CTX_PAGE_FLAG	HV_CTX_PG_SM_64K
#else
#define PAGE_SHIFT	HV_LOG2_DEFAULT_PAGE_SIZE_SMALL
#define CTX_PAGE_FLAG	0
#error Page size not specified in Kconfig
#endif
#define HPAGE_SHIFT	HV_LOG2_DEFAULT_PAGE_SIZE_LARGE