	/*
	 * This is much more of a "Is my SDRAM properly configured?"
	 * test than a "Is my SDRAM faulty?" test.  Not all bits
	 * are tested.   -Tyson
	 */

	jmp	rt_skip
#define RAMTEST 1
#if RAMTEST
	.section ".rom.data"

rt_test:	.string "Testing SDRAM : "
rt_fill:	.string "SDRAM fill:\r\n"
rt_verify:	.string "SDRAM verify:\r\n"
rt_toomany:	.string "Too many errors.\r\n"
rt_done:	.string "Done.\r\n"
	.previous
#endif

ramtest:
#if RAMTEST
	mov %eax, %esi
	mov %ebx, %edi
	mov %esp, %ebp

	CONSOLE_INFO_TX_STRING($rt_test)
	CONSOLE_INFO_TX_HEX32(%esi)
	CONSOLE_INFO_TX_CHAR($'-')
	CONSOLE_INFO_TX_HEX32(%edi)
	CONSOLE_INFO_TX_CHAR($'\r')
	CONSOLE_INFO_TX_CHAR($'\n')

	/* ============== Fill ram block ==== */

	CONSOLE_INFO_TX_STRING($rt_fill)

	mov %esi, %ebx
1:
	cmp $0, %bx
	jne 2f

	/* Display address being filled */
	/* CONSOLE_INFO_TX_HEX32(arg) will overwrite %ebx with arg */

	CONSOLE_INFO_TX_HEX32(%ebx)
	CONSOLE_INFO_TX_CHAR($'\r')
2:
#if	i786
	/* Use a non temporal store to go faster and
	 * to bypass the cache.
	 */
	movnti	%ebx, (%ebx)
#else
	mov %ebx, (%ebx)
#endif
	add $4, %ebx
	cmp %edi, %ebx
	jl 1b

	/* Display final address */

	CONSOLE_INFO_TX_HEX32(%edi)
	CONSOLE_INFO_TX_CHAR($'\r')
	CONSOLE_INFO_TX_CHAR($'\n')

	/* ========= Verify ram block ========== */

	CONSOLE_INFO_TX_STRING($rt_verify)
	mov %esi, %ebx

1:
	cmp $0, %bx
	jne 2f

	/* Display address being tested */

	CONSOLE_INFO_TX_HEX32(%ebx)
	CONSOLE_INFO_TX_CHAR($'\r')
2:
	cmp %ebx, (%ebx)
	jne 4f
3:
	add $4, %ebx
	cmp %edi, %ebx
	jl 1b

	/* Display final address */
	CONSOLE_INFO_TX_HEX32(%edi)
	CONSOLE_INFO_TX_CHAR($'\r')
	CONSOLE_INFO_TX_CHAR($'\n')
	jmp 6f

4:
	/* Display address with error */

	CONSOLE_INFO_TX_HEX32(%ebx)
	CONSOLE_INFO_TX_CHAR($':')

	/* Display data in address with error */

	/* CONSOLE_INFO_TX_HEX32(arg) will overwrite %ebx with arg */

	mov %ebx, %esi
	mov 0(%ebx), %eax
	CONSOLE_INFO_TX_HEX32(%eax)
	mov %esi, %ebx

	CONSOLE_INFO_TX_CHAR($'\r')
	CONSOLE_INFO_TX_CHAR($'\n')
	sub $1, %ecx
	jz 5f
	jmp 3b
5:
	CONSOLE_INFO_TX_STRING($rt_toomany)
#if CONFIG_ROMCC
	post_code(0xf1)
	jmp	.Lhlt
#endif

6:
	CONSOLE_INFO_TX_STRING($rt_done)
	mov %ebp, %esp

#endif
	RETSP

rt_skip:
