summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonald G. Minnich <rminnich@gmail.com>2006-06-12 20:37:33 +0000
committerRonald G. Minnich <rminnich@gmail.com>2006-06-12 20:37:33 +0000
commit73c92a4a7c1f9f0ff4451a5b34da9d18978e90e2 (patch)
tree5cf284183059cd599dc757eaa62529185eb27879
parent90dc0db6dea4b6b26a9cf99c3a804f61ae6260d0 (diff)
ron forget an svn add.
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2319 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--src/northbridge/amd/gx2/grphinit.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/northbridge/amd/gx2/grphinit.c b/src/northbridge/amd/gx2/grphinit.c
new file mode 100644
index 0000000000..1d115c8c76
--- /dev/null
+++ b/src/northbridge/amd/gx2/grphinit.c
@@ -0,0 +1,37 @@
+#include <arch/io.h>
+#include <stdint.h>
+
+#define VIDEO_MB 8 // MB of video memory
+
+#define VRC_INDEX 0xAC1C // Index register
+#define VRC_DATA 0xAC1E // Data register
+#define VR_UNLOCK 0xFC53 // Virtual register unlock code
+#define VRC_VG 0x02 // SoftVG Class
+#define VG_MEM_SIZE 0x00 // bits 7:0 - 512K unit size, bit 8 controller priority
+
+
+/*
+ * Write to a Virtual Register
+ * AX = Class/Index
+ * CX = data to write
+ */
+static void vrWrite(uint16_t wClassIndex, uint16_t wData)
+{
+ outl(((uint32_t) VR_UNLOCK << 16) | wClassIndex, VRC_INDEX);
+ outw(wData, VRC_DATA);
+}
+
+
+/*
+ * This function mirrors the Graphics_Init routine in GeodeROM.
+ */
+void graphics_init(void)
+{
+ /* SoftVG initialization */
+
+ /* Call SoftVG with the main configuration parameters. */
+ /* NOTE: SoftVG expects the memory size to be given in 512 KB pages */
+ vrWrite((VRC_VG << 8) + VG_MEM_SIZE, 0x0100 | (VIDEO_MB * 2));
+}
+
+