1/* 2 * U-boot - main board file 3 * 4 * Copyright (c) 2008-2009 Analog Devices Inc. 5 * 6 * Licensed under the GPL-2 or later. 7 */ 8 9#include <common.h> 10#include <config.h> 11#include <net.h> 12#include <netdev.h> 13#include <asm/blackfin.h> 14#include <asm/mach-common/bits/otp.h> 15#include <asm/sdh.h> 16 17int checkboard(void) 18{ 19 printf("Board: Bluetechnix TCM-BF518 board\n"); 20 printf(" Support: http://www.bluetechnix.com/\n"); 21 printf(" http://blackfin.uclinux.org/\n"); 22 return 0; 23} 24 25#if defined(CONFIG_BFIN_MAC) 26static void board_init_enetaddr(uchar *mac_addr) 27{ 28 bool valid_mac = false; 29 30#if 0 31 /* the MAC is stored in OTP memory page 0xDF */ 32 uint32_t ret; 33 uint64_t otp_mac; 34 35 ret = bfrom_OtpRead(0xDF, OTP_LOWER_HALF, &otp_mac); 36 if (!(ret & OTP_MASTER_ERROR)) { 37 uchar *otp_mac_p = (uchar *)&otp_mac; 38 39 for (ret = 0; ret < 6; ++ret) 40 mac_addr[ret] = otp_mac_p[5 - ret]; 41 42 if (is_valid_ether_addr(mac_addr)) 43 valid_mac = true; 44 } 45#endif 46 47 if (!valid_mac) { 48 puts("Warning: Generating 'random' MAC address\n"); 49 eth_random_addr(mac_addr); 50 } 51 52 eth_setenv_enetaddr("ethaddr", mac_addr); 53} 54 55int board_eth_init(bd_t *bis) 56{ 57 return bfin_EMAC_initialize(bis); 58} 59#endif 60 61int misc_init_r(void) 62{ 63#ifdef CONFIG_BFIN_MAC 64 uchar enetaddr[6]; 65 if (!eth_getenv_enetaddr("ethaddr", enetaddr)) 66 board_init_enetaddr(enetaddr); 67#endif 68 69 return 0; 70} 71 72#ifdef CONFIG_BFIN_SDH 73int board_mmc_init(bd_t *bis) 74{ 75 return bfin_mmc_init(bis); 76} 77#endif 78