diff options
Diffstat (limited to 'arch/mips/bcm47xx/prom.c')
| -rw-r--r-- | arch/mips/bcm47xx/prom.c | 27 | 
1 files changed, 26 insertions, 1 deletions
diff --git a/arch/mips/bcm47xx/prom.c b/arch/mips/bcm47xx/prom.c index 8c155afb1299..5cba318bc1cd 100644 --- a/arch/mips/bcm47xx/prom.c +++ b/arch/mips/bcm47xx/prom.c @@ -32,12 +32,37 @@  #include <asm/bootinfo.h>  #include <asm/fw/cfe/cfe_api.h>  #include <asm/fw/cfe/cfe_error.h> +#include <bcm47xx.h> +#include <bcm47xx_board.h>  static int cfe_cons_handle; +static u16 get_chip_id(void) +{ +	switch (bcm47xx_bus_type) { +#ifdef CONFIG_BCM47XX_SSB +	case BCM47XX_BUS_TYPE_SSB: +		return bcm47xx_bus.ssb.chip_id; +#endif +#ifdef CONFIG_BCM47XX_BCMA +	case BCM47XX_BUS_TYPE_BCMA: +		return bcm47xx_bus.bcma.bus.chipinfo.id; +#endif +	} +	return 0; +} +  const char *get_system_type(void)  { -	return "Broadcom BCM47XX"; +	static char buf[50]; +	u16 chip_id = get_chip_id(); + +	snprintf(buf, sizeof(buf), +		 (chip_id > 0x9999) ? "Broadcom BCM%d (%s)" : +				      "Broadcom BCM%04X (%s)", +		 chip_id, bcm47xx_board_get_name()); + +	return buf;  }  void prom_putchar(char c)  | 
