summaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/Makefile.mk1
-rw-r--r--src/cpu/via/Kconfig1
-rw-r--r--src/cpu/via/Makefile.mk3
-rw-r--r--src/cpu/via/c7/Kconfig17
-rw-r--r--src/cpu/via/c7/Makefile.mk6
-rw-r--r--src/cpu/via/car/cache_as_ram.S13
-rw-r--r--src/cpu/via/car/exit_car.S8
7 files changed, 49 insertions, 0 deletions
diff --git a/src/cpu/Makefile.mk b/src/cpu/Makefile.mk
index af2402742f..0afe454c1e 100644
--- a/src/cpu/Makefile.mk
+++ b/src/cpu/Makefile.mk
@@ -6,6 +6,7 @@
subdirs-y += amd
subdirs-y += armltd
subdirs-y += intel
+subdirs-y += via
subdirs-$(CONFIG_ARCH_X86) += x86
subdirs-$(CONFIG_CPU_QEMU_X86) += qemu-x86
subdirs-$(CONFIG_CPU_POWER9) += power9
diff --git a/src/cpu/via/Kconfig b/src/cpu/via/Kconfig
new file mode 100644
index 0000000000..20f7c95a16
--- /dev/null
+++ b/src/cpu/via/Kconfig
@@ -0,0 +1 @@
+source "src/cpu/via/*/Kconfig"
diff --git a/src/cpu/via/Makefile.mk b/src/cpu/via/Makefile.mk
new file mode 100644
index 0000000000..e8b7820bdf
--- /dev/null
+++ b/src/cpu/via/Makefile.mk
@@ -0,0 +1,3 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+subdirs-$(CONFIG_CPU_VIA_C7) += c7
diff --git a/src/cpu/via/c7/Kconfig b/src/cpu/via/c7/Kconfig
new file mode 100644
index 0000000000..df81b3f84e
--- /dev/null
+++ b/src/cpu/via/c7/Kconfig
@@ -0,0 +1,17 @@
+## SPDX-License-Identifier: GPL-2.0-only
+
+config CPU_VIA_C7
+ bool
+ select ARCH_X86
+ select NO_SMM
+ select SSE2
+ select UNKNOWN_TSC_RATE
+ select UDELAY_LAPIC
+ select LAPIC_MONOTONIC_TIMER
+
+if CPU_VIA_C7
+
+config DCACHE_BSP_STACK_SIZE
+ default 0x1000
+
+endif
diff --git a/src/cpu/via/c7/Makefile.mk b/src/cpu/via/c7/Makefile.mk
new file mode 100644
index 0000000000..0890cee18b
--- /dev/null
+++ b/src/cpu/via/c7/Makefile.mk
@@ -0,0 +1,6 @@
+## SPDX-License-Identifier: GPL-2.0-only
+
+bootblock-y += ../car/cache_as_ram.S
+bootblock-y += ../../intel/car/bootblock.c
+
+postcar-y += ../car/exit_car.S
diff --git a/src/cpu/via/car/cache_as_ram.S b/src/cpu/via/car/cache_as_ram.S
new file mode 100644
index 0000000000..5c5066d7ea
--- /dev/null
+++ b/src/cpu/via/car/cache_as_ram.S
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+.section .init, "ax", @progbits
+
+.global bootblock_pre_c_entry
+
+.code32
+bootblock_pre_c_entry:
+ call bootblock_c_entry_bist
+
+.Lhlt:
+ hlt
+ jmp .Lhlt
diff --git a/src/cpu/via/car/exit_car.S b/src/cpu/via/car/exit_car.S
new file mode 100644
index 0000000000..0f1b227c2d
--- /dev/null
+++ b/src/cpu/via/car/exit_car.S
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+.global chipset_teardown_car
+
+.code32
+chipset_teardown_car:
+ /* Return to caller. */
+ jmp *%esp