cpu/intel/socket_FCBGA559: Add new socket for Atom D5xx

Tested on Intel D510MO board, boots to UART console.

Change-Id: I82a630c9836c099d0fcc62e019c20f328a75151d
Signed-off-by: Damien Zammit <damien@zamaudio.com>
Reviewed-on: http://review.coreboot.org/10066
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
diff --git a/src/cpu/intel/Kconfig b/src/cpu/intel/Kconfig
index 19f1c73..806a08e 100644
--- a/src/cpu/intel/Kconfig
+++ b/src/cpu/intel/Kconfig
@@ -27,6 +27,7 @@
 source src/cpu/intel/socket_BGA956/Kconfig
 source src/cpu/intel/socket_BGA1284/Kconfig
 source src/cpu/intel/socket_FC_PGA370/Kconfig
+source src/cpu/intel/socket_FCBGA559/Kconfig
 source src/cpu/intel/socket_mFCBGA479/Kconfig
 source src/cpu/intel/socket_mFCPGA478/Kconfig
 source src/cpu/intel/socket_mPGA478/Kconfig
diff --git a/src/cpu/intel/Makefile.inc b/src/cpu/intel/Makefile.inc
index 4fd3c84..1234588 100644
--- a/src/cpu/intel/Makefile.inc
+++ b/src/cpu/intel/Makefile.inc
@@ -9,6 +9,7 @@
 subdirs-$(CONFIG_CPU_INTEL_SOCKET_BGA1284) += socket_BGA1284
 subdirs-$(CONFIG_CPU_INTEL_EP80579) += ep80579
 subdirs-$(CONFIG_CPU_INTEL_SOCKET_FC_PGA370) += socket_FC_PGA370
+subdirs-$(CONFIG_CPU_INTEL_SOCKET_FCBGA559) += socket_FCBGA559
 subdirs-$(CONFIG_CPU_INTEL_SOCKET_MFCBGA479) += socket_mFCBGA479
 subdirs-$(CONFIG_CPU_INTEL_SOCKET_MFCPGA478) += socket_mFCPGA478
 subdirs-$(CONFIG_CPU_INTEL_SOCKET_MPGA478) += socket_mPGA478
diff --git a/src/cpu/intel/model_106cx/model_106cx_init.c b/src/cpu/intel/model_106cx/model_106cx_init.c
index 4f38265..82552d8 100644
--- a/src/cpu/intel/model_106cx/model_106cx_init.c
+++ b/src/cpu/intel/model_106cx/model_106cx_init.c
@@ -148,6 +148,7 @@
 
 static struct cpu_device_id cpu_table[] = {
 	{ X86_VENDOR_INTEL, 0x106c0 }, /* Intel Atom 230 */
+	{ X86_VENDOR_INTEL, 0x106ca }, /* Intel Atom D5xx */
 	{ 0, 0 },
 };
 
diff --git a/src/cpu/intel/socket_FCBGA559/Kconfig b/src/cpu/intel/socket_FCBGA559/Kconfig
new file mode 100644
index 0000000..9eaa71b
--- /dev/null
+++ b/src/cpu/intel/socket_FCBGA559/Kconfig
@@ -0,0 +1,20 @@
+config CPU_INTEL_SOCKET_FCBGA559
+	bool
+
+if CPU_INTEL_SOCKET_FCBGA559
+
+config SOCKET_SPECIFIC_OPTIONS
+	def_bool y
+	select CPU_INTEL_MODEL_106CX
+	select MMX
+	select SSE
+
+config DCACHE_RAM_BASE
+	hex
+	default 0xffafc000
+
+config DCACHE_RAM_SIZE
+	hex
+	default 0x4000
+
+endif
diff --git a/src/cpu/intel/socket_FCBGA559/Makefile.inc b/src/cpu/intel/socket_FCBGA559/Makefile.inc
new file mode 100644
index 0000000..e36c8b1
--- /dev/null
+++ b/src/cpu/intel/socket_FCBGA559/Makefile.inc
@@ -0,0 +1,8 @@
+subdirs-y += ../model_106cx
+subdirs-y += ../../x86/tsc
+subdirs-y += ../../x86/mtrr
+subdirs-y += ../../x86/lapic
+subdirs-y += ../../x86/cache
+subdirs-y += ../../x86/smm
+subdirs-y += ../microcode
+subdirs-y += ../hyperthreading