mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-26 06:30:39 +00:00
Do not init SATA when disabled on 8536DS.
SGMII and SATA share the serdes on MPC8536 CPU, When SATA disabled and the driver still try to access the SATA registers, the cpu will hangup. This patch try to fix this by reading the serdes status before the SATA initialize. Signed-off-by: Jason Jin <Jason.jin@freescale.com> Acked-by: Andy Fleming <afleming@freescale.com>
This commit is contained in:
parent
ec4d8c1c1d
commit
0f8cbc1829
2 changed files with 26 additions and 2 deletions
|
@ -608,6 +608,18 @@ get_board_ddr_clk(ulong dummy)
|
|||
}
|
||||
#endif
|
||||
|
||||
int is_sata_supported()
|
||||
{
|
||||
volatile ccsr_gur_t *gur = (void *)(CFG_MPC85xx_GUTS_ADDR);
|
||||
uint devdisr = gur->devdisr;
|
||||
uint sdrs2_io_sel =
|
||||
(gur->pordevsr & MPC85xx_PORDEVSR_SRDS2_IO_SEL) >> 27;
|
||||
if (sdrs2_io_sel & 0x04)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_OF_BOARD_SETUP)
|
||||
void
|
||||
ft_board_setup(void *blob, bd_t *bd)
|
||||
|
|
|
@ -635,6 +635,16 @@ void board_init_f (ulong bootflag)
|
|||
/* NOTREACHED - relocate_code() does not return */
|
||||
}
|
||||
|
||||
int __is_sata_supported()
|
||||
{
|
||||
/* For some boards, when sata disabled by the switch, and the
|
||||
* driver still access the sata registers, the cpu will hangup.
|
||||
* please define platform specific is_sata_supported() if your
|
||||
* board have such issue.*/
|
||||
return 1;
|
||||
}
|
||||
int is_sata_supported() __attribute__((weak, alias("__is_sata_supported")));
|
||||
|
||||
/************************************************************************
|
||||
*
|
||||
* This is the next part if the initialization sequence: we are now
|
||||
|
@ -1105,8 +1115,10 @@ void board_init_r (gd_t *id, ulong dest_addr)
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_CMD_SATA)
|
||||
puts ("SATA: ");
|
||||
sata_initialize ();
|
||||
if (is_sata_supported()) {
|
||||
puts("SATA: ");
|
||||
sata_initialize();
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LAST_STAGE_INIT
|
||||
|
|
Loading…
Reference in a new issue