omap_rev_string: output to stdout

* avoid potential buffer overflows
* allow SPL-build not to output "Texas Instruments Revision detection unimplemented"

Signed-off-by: Andreas Müller <schnitzeltony@gmx.de>
Signed-off-by: Tom Rini <trini@ti.com>
This commit is contained in:
Andreas Müller 2012-01-04 15:26:24 +00:00 committed by Albert ARIBAUD
parent 8775471bb3
commit 761ca31e47
5 changed files with 11 additions and 17 deletions
arch/arm
cpu/armv7/omap-common
include/asm

View File

@ -76,14 +76,14 @@ u32 cortex_rev(void)
return rev; return rev;
} }
void omap_rev_string(char *omap_rev_string) void omap_rev_string(void)
{ {
u32 omap_rev = omap_revision(); u32 omap_rev = omap_revision();
u32 omap_variant = (omap_rev & 0xFFFF0000) >> 16; u32 omap_variant = (omap_rev & 0xFFFF0000) >> 16;
u32 major_rev = (omap_rev & 0x00000F00) >> 8; u32 major_rev = (omap_rev & 0x00000F00) >> 8;
u32 minor_rev = (omap_rev & 0x000000F0) >> 4; u32 minor_rev = (omap_rev & 0x000000F0) >> 4;
sprintf(omap_rev_string, "OMAP%x ES%x.%x", omap_variant, major_rev, printf("OMAP%x ES%x.%x\n", omap_variant, major_rev,
minor_rev); minor_rev);
} }
@ -223,10 +223,8 @@ u32 get_device_type(void)
*/ */
int print_cpuinfo(void) int print_cpuinfo(void)
{ {
char rev_string_buffer[50]; puts("CPU : ");
omap_rev_string();
omap_rev_string(rev_string_buffer);
printf("CPU : %s\n", rev_string_buffer);
return 0; return 0;
} }

View File

@ -35,6 +35,7 @@
#include <i2c.h> #include <i2c.h>
#include <image.h> #include <image.h>
#include <malloc.h> #include <malloc.h>
#include <linux/compiler.h>
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
@ -154,7 +155,6 @@ void board_init_r(gd_t *id, ulong dummy)
void preloader_console_init(void) void preloader_console_init(void)
{ {
const char *u_boot_rev = U_BOOT_VERSION; const char *u_boot_rev = U_BOOT_VERSION;
char rev_string_buffer[50];
gd = &gdata; gd = &gdata;
gd->bd = &bdata; gd->bd = &bdata;
@ -170,14 +170,10 @@ void preloader_console_init(void)
printf("\nU-Boot SPL %s (%s - %s)\n", u_boot_rev, U_BOOT_DATE, printf("\nU-Boot SPL %s (%s - %s)\n", u_boot_rev, U_BOOT_DATE,
U_BOOT_TIME); U_BOOT_TIME);
omap_rev_string(rev_string_buffer); omap_rev_string();
printf("Texas Instruments %s\n", rev_string_buffer);
} }
void __omap_rev_string(char *str) void __weak omap_rev_string()
{ {
sprintf(str, "Revision detection unimplemented"); printf("Texas Instruments Revision detection unimplemented\n");
} }
void omap_rev_string(char *str)
__attribute__((weak, alias("__omap_rev_string")));

View File

@ -42,7 +42,7 @@ void sr32(void *, u32, u32, u32);
u32 wait_on_value(u32, u32, void *, u32); u32 wait_on_value(u32, u32, void *, u32);
void sdelay(unsigned long); void sdelay(unsigned long);
void set_pl310_ctrl_reg(u32 val); void set_pl310_ctrl_reg(u32 val);
void omap_rev_string(char *omap_rev_string); void omap_rev_string(void);
void setup_clocks_for_console(void); void setup_clocks_for_console(void);
void prcm_init(void); void prcm_init(void);
void bypass_dpll(u32 *const base); void bypass_dpll(u32 *const base);

View File

@ -42,7 +42,7 @@ void set_muxconf_regs_non_essential(void);
void sr32(void *, u32, u32, u32); void sr32(void *, u32, u32, u32);
u32 wait_on_value(u32, u32, void *, u32); u32 wait_on_value(u32, u32, void *, u32);
void sdelay(unsigned long); void sdelay(unsigned long);
void omap_rev_string(char *omap_rev_string); void omap_rev_string(void);
void setup_clocks_for_console(void); void setup_clocks_for_console(void);
void prcm_init(void); void prcm_init(void);
void bypass_dpll(u32 *const base); void bypass_dpll(u32 *const base);

View File

@ -91,7 +91,7 @@ u32 omap_boot_mode(void);
/* SPL common function s*/ /* SPL common function s*/
void spl_parse_image_header(const struct image_header *header); void spl_parse_image_header(const struct image_header *header);
void omap_rev_string(char *omap_rev_string); void omap_rev_string(void);
/* NAND SPL functions */ /* NAND SPL functions */
void spl_nand_load_image(void); void spl_nand_load_image(void);