From f7a0ba84dcddf08cdd6a4431c899ae1ee0ed986c Mon Sep 17 00:00:00 2001 From: Eric Biederman Date: Thu, 19 Jun 2003 15:14:52 +0000 Subject: - Update the romcc version. - Add an additional consistency check to romcc and fix the more obvious problems it has uncovered With this update there are no known silent failures in romcc. - Update the memory initialization code to setup all 3 of the memory sizing registers properly - In auto.c test our dynamic maximum amount of ram. git-svn-id: svn://svn.coreboot.org/coreboot/trunk@885 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- util/romcc/tests/simple_test34.c | 71 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 util/romcc/tests/simple_test34.c (limited to 'util/romcc/tests/simple_test34.c') diff --git a/util/romcc/tests/simple_test34.c b/util/romcc/tests/simple_test34.c new file mode 100644 index 0000000000..3c2b606fc2 --- /dev/null +++ b/util/romcc/tests/simple_test34.c @@ -0,0 +1,71 @@ + +typedef __builtin_msr_t msr_t; + +static msr_t rdmsr(unsigned long index) +{ + return __builtin_rdmsr(index); +} + +static void uart_tx_byte(unsigned char data) +{ + while(!(__builtin_inb(0x3f8 + 0x05) & 0x20)) + ; + __builtin_outb(data, 0x3f8 + 0x00); + + while(!(__builtin_inb(0x3f8 + 0x05) & 0x40)) + ; +} + + +static void print_nibble(unsigned nibble) +{ + unsigned char digit; + digit = nibble + '0'; + if (digit > '9') { + digit += 39; + } + uart_tx_byte(digit); +} + +static void print_debug_hex32(unsigned int value) +{ + print_nibble((value >> 28U) & 0x0fU); + print_nibble((value >> 24U) & 0x0fU); + print_nibble((value >> 20U) & 0x0fU); + print_nibble((value >> 16U) & 0x0fU); + print_nibble((value >> 12U) & 0x0fU); + print_nibble((value >> 8U) & 0x0fU); + print_nibble((value >> 4U) & 0x0fU); + print_nibble(value & 0x0fU); +} + +static void print_debug(const char *str) +{ + unsigned char ch; + while((ch = *str++) != '\0') { + uart_tx_byte(ch); + } +} + +static void main(void) +{ + unsigned long start, stop; + msr_t msr; + msr = rdmsr(0xC001001A); + print_debug("TOP_MEM: "); + print_debug_hex32(msr.hi); + print_debug_hex32(msr.lo); + print_debug("\r\n"); + + start = 0; + stop = msr.lo; + print_debug("Testing DRAM : "); + print_debug_hex32(start); + print_debug("-"); + print_debug_hex32(stop); + print_debug("\r\n"); + + print_debug("DRAM verify: "); + print_debug_hex32(start); + print_debug_hex32(stop); +} -- cgit v1.2.3