arch/x86: Add Kconfig option for ACPI \_PR CPU name string

Add a Kconfig option to change the \PR.CPxx name string. This
provides some flexibility when working with table not generated
by coreboot.

Change-Id: Ibc0c56783c6da80501e2177de96a414b592cb74f
Signed-off-by: Marc Jones <marcj303@gmail.com>
Reviewed-on: https://review.coreboot.org/21210
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig
index 14827cf..dbfb881 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -249,3 +249,12 @@
 	  Set to allow the payload to control normal/fallback image recovery.
 	  Note that it is the responsibility of the payload to reset the
 	  normal boot bit to 1 after each successsful boot.
+
+config ACPI_CPU_STRING
+	string
+	default "\\_PR.CP%02d"
+	depends on HAVE_ACPI_TABLES
+	help
+	  Sets the ACPI name string in the processor scope as written by
+	  the acpigen function. Default is \_PR.CPxx. Note that you need
+	  the \ escape character in the string.
diff --git a/src/arch/x86/acpigen.c b/src/arch/x86/acpigen.c
index f9690b3..758386d 100644
--- a/src/arch/x86/acpigen.c
+++ b/src/arch/x86/acpigen.c
@@ -338,7 +338,7 @@
 void acpigen_write_processor(u8 cpuindex, u32 pblock_addr, u8 pblock_len)
 {
 /*
-	Processor (\_PR.CPUcpuindex, cpuindex, pblock_addr, pblock_len)
+	Processor (\_PR.CPcpuindex, cpuindex, pblock_addr, pblock_len)
 	{
 */
 	char pscope[16];
@@ -346,7 +346,7 @@
 	acpigen_write_len_f();
 
 	snprintf(pscope, sizeof(pscope),
-		 "\\_PR.CP%02d", (unsigned int) cpuindex);
+		 CONFIG_ACPI_CPU_STRING, (unsigned int) cpuindex);
 	acpigen_emit_namestring(pscope);
 	acpigen_emit_byte(cpuindex);
 	acpigen_emit_dword(pblock_addr);