Skip to content
Snippets Groups Projects
Commit e8aa824e authored by Wolfgang Denk's avatar Wolfgang Denk
Browse files

Fix initialization problem on TQM5200 without SM501

Patch by Martin Krause, 8 Apr. 2005
parent 4f562f14
No related branches found
No related tags found
No related merge requests found
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
Changes for U-Boot 1.1.4: Changes for U-Boot 1.1.4:
====================================================================== ======================================================================
* Fix initialization problem on TQM5200 without SM501
Patch by Martin Krause, 8 Apr. 2005
* Add RTC support for STK52XX.200 * Add RTC support for STK52XX.200
Patch by Martin Krause, 7 Apr. 2005 Patch by Martin Krause, 7 Apr. 2005
......
...@@ -425,7 +425,7 @@ int last_stage_init (void) ...@@ -425,7 +425,7 @@ int last_stage_init (void)
* Check for SRAM and SRAM size * Check for SRAM and SRAM size
*/ */
/* save origianl SRAM content */ /* save original SRAM content */
save = *(volatile u16 *)CFG_CS2_START; save = *(volatile u16 *)CFG_CS2_START;
restore = 1; restore = 1;
...@@ -447,8 +447,7 @@ int last_stage_init (void) ...@@ -447,8 +447,7 @@ int last_stage_init (void)
*(vu_long *)MPC5XXX_CS2_STOP = 0x0000FFFF; *(vu_long *)MPC5XXX_CS2_STOP = 0x0000FFFF;
restore = 0; restore = 0;
__asm__ volatile ("sync"); __asm__ volatile ("sync");
} } else if (*(volatile u16 *)(CFG_CS2_START + (1<<19)) == 0xA5A5) {
else if (*(volatile u16 *)(CFG_CS2_START + (1<<19)) == 0xA5A5) {
/* make sure that we access a mirrored address */ /* make sure that we access a mirrored address */
*(volatile u16 *)CFG_CS2_START = 0x1111; *(volatile u16 *)CFG_CS2_START = 0x1111;
__asm__ volatile ("sync"); __asm__ volatile ("sync");
...@@ -461,8 +460,7 @@ int last_stage_init (void) ...@@ -461,8 +460,7 @@ int last_stage_init (void)
} }
else else
puts ("!! possible error in SRAM detection\n"); puts ("!! possible error in SRAM detection\n");
} } else {
else {
puts ("SRAM: 1 MB\n"); puts ("SRAM: 1 MB\n");
} }
/* restore origianl SRAM content */ /* restore origianl SRAM content */
...@@ -497,8 +495,7 @@ int last_stage_init (void) ...@@ -497,8 +495,7 @@ int last_stage_init (void)
*(vu_long *)MPC5XXX_CS1_STOP = 0x0000FFFF; *(vu_long *)MPC5XXX_CS1_STOP = 0x0000FFFF;
restore = 0; restore = 0;
__asm__ volatile ("sync"); __asm__ volatile ("sync");
} } else {
else {
puts ("VGA: SMI501 (Voyager) with 8 MB\n"); puts ("VGA: SMI501 (Voyager) with 8 MB\n");
} }
/* restore origianl FB content */ /* restore origianl FB content */
...@@ -598,11 +595,46 @@ void video_get_info_str (int line_number, char *info) ...@@ -598,11 +595,46 @@ void video_get_info_str (int line_number, char *info)
#endif #endif
/* /*
* Returns SM501 register base address. First thing called in the driver. * Returns SM501 register base address. First thing called in the
* driver. Checks if SM501 is physically present.
*/ */
unsigned int board_video_init (void) unsigned int board_video_init (void)
{ {
return SM501_MMIO_BASE; u16 save, tmp;
int restore, ret;
/*
* Check for Grafic Controller
*/
/* save origianl FB content */
save = *(volatile u16 *)CFG_CS1_START;
restore = 1;
/* write test pattern to FB memory */
*(volatile u16 *)CFG_CS1_START = 0xA5A5;
__asm__ volatile ("sync");
/*
* Put a different pattern on the data lines: otherwise they may float
* long enough to read back what we wrote.
*/
tmp = *(volatile u16 *)CFG_FLASH_BASE;
if (tmp == 0xA5A5)
puts ("!! possible error in grafic controller detection\n");
if (*(volatile u16 *)CFG_CS1_START != 0xA5A5) {
/* no grafic controller found */
restore = 0;
ret = 0;
} else {
ret = SM501_MMIO_BASE;
}
if (restore) {
*(volatile u16 *)CFG_CS1_START = save;
__asm__ volatile ("sync");
}
return ret;
} }
/* /*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment