summaryrefslogtreecommitdiff
path: root/util/romcc/tests/simple_test2.c
diff options
context:
space:
mode:
authorEric Biederman <ebiederm@xmission.com>2003-04-22 18:44:01 +0000
committerEric Biederman <ebiederm@xmission.com>2003-04-22 18:44:01 +0000
commitb138ac83b53da9abf3dc9a87a1cd4b3d3a8150bd (patch)
treec8b0e50e84a57a24e5dbce070a959f465985b445 /util/romcc/tests/simple_test2.c
parent77d1a8311f29e65f68351719c5b0b223299ef8a9 (diff)
downloadcoreboot-b138ac83b53da9abf3dc9a87a1cd4b3d3a8150bd.tar.xz
- Checking latest version of romcc
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@783 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'util/romcc/tests/simple_test2.c')
-rw-r--r--util/romcc/tests/simple_test2.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/util/romcc/tests/simple_test2.c b/util/romcc/tests/simple_test2.c
new file mode 100644
index 0000000000..aef936a8ff
--- /dev/null
+++ b/util/romcc/tests/simple_test2.c
@@ -0,0 +1,36 @@
+void outl(unsigned int value, unsigned short port)
+{
+ __builtin_outl(value, port);
+}
+
+#define PIIX4_DEVFN 0x90
+#define SMBUS_MEM_DEVICE_START 0x50
+#define SMBUS_MEM_DEVICE_END 0x53
+#define SMBUS_MEM_DEVICE_INC 1
+
+
+static void spd_set_drb(void)
+{
+ /*
+ * Effects: Uses serial presence detect to set the
+ * DRB registers which holds the ending memory address assigned
+ * to each DIMM.
+ */
+ unsigned end_of_memory;
+ unsigned device;
+
+ end_of_memory = 0; /* in multiples of 8MiB */
+ device = SMBUS_MEM_DEVICE_START;
+ while (device <= SMBUS_MEM_DEVICE_END) {
+ unsigned side1_bits;
+
+ side1_bits = -1;
+
+ /* Compute the end address for the DRB register */
+ /* Only process dimms < 2GB (2^8 * 8MB) */
+ if (side1_bits < 8) {
+ end_of_memory += (1 << side1_bits);
+ }
+ outl(end_of_memory, 0x1234);
+ }
+}