mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-08 11:36:21 -04:00
Fix initialization problem on TQM5200 without SM501
Patch by Martin Krause, 8 Apr. 2005
This commit is contained in:
parent
4f562f145a
commit
e8aa824eb2
@ -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)
|
|||||||
* 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)
|
|||||||
*(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)
|
|||||||
}
|
}
|
||||||
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)
|
|||||||
*(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)
|
|||||||
#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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user