}
 
 #elif defined(CONFIG_BLACKFIN)
+static void print_str(const char *, const char *);
 
 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
        int i;
        bd_t *bd = gd->bd;
+       char buf[32];
 
        printf("U-Boot      = %s\n", bd->bi_r_version);
        printf("CPU         = %s\n", bd->bi_cpu);
        printf("Board       = %s\n", bd->bi_board_name);
-       printf("VCO         = %lu MHz\n", bd->bi_vco / 1000000);
-       printf("CCLK        = %lu MHz\n", bd->bi_cclk / 1000000);
-       printf("SCLK        = %lu MHz\n", bd->bi_sclk / 1000000);
+       print_str("VCO",         strmhz(buf, bd->bi_vco));
+       print_str("CCLK",        strmhz(buf, bd->bi_cclk));
+       print_str("SCLK",        strmhz(buf, bd->bi_sclk));
 
        print_num("boot_params", (ulong)bd->bi_boot_params);
        print_num("memstart",    (ulong)bd->bi_memstart);
 }
 #endif
 
-#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
+#if defined(CONFIG_PPC) || defined(CONFIG_M68K) || defined(CONFIG_BLACKFIN)
 static void print_str(const char *name, const char *str)
 {
        printf ("%-12s= %6s MHz\n", name, str);
 
 {
        ulong addr;
        bd_t *bd;
+       char buf[32];
 
 #ifdef CONFIG_BOARD_EARLY_INIT_F
        serial_early_puts("Board early init flash\n");
        checkboard();
        timer_init();
 
-       printf("Clock: VCO: %lu MHz, Core: %lu MHz, System: %lu MHz\n",
-              get_vco() / 1000000, get_cclk() / 1000000, get_sclk() / 1000000);
+       printf("Clock: VCO: %s MHz, ", strmhz(buf, get_vco()));
+       printf("Core: %s MHz, ", strmhz(buf, get_cclk()));
+       printf("System: %s MHz\n", strmhz(buf, get_sclk()));
 
        printf("RAM:   ");
        print_size(initdram(0), "\n");