1/* 2 * U-boot - main board file 3 * 4 * Copyright (c) 2005-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 "../cm-bf537e/gpio_cfi_flash.h" 16 17DECLARE_GLOBAL_DATA_PTR; 18 19int checkboard(void) 20{ 21 printf("Board: Bluetechnix CM-BF527 board\n"); 22 printf(" Support: http://www.bluetechnix.at/\n"); 23 return 0; 24} 25 26#ifdef CONFIG_BFIN_MAC 27static void board_init_enetaddr(uchar *mac_addr) 28{ 29 /* the MAC is stored in OTP memory page 0xDF */ 30 uint32_t ret; 31 uint64_t otp_mac; 32 33 ret = bfrom_OtpRead(0xDF, OTP_LOWER_HALF, &otp_mac); 34 if (!(ret & OTP_MASTER_ERROR)) { 35 uchar *otp_mac_p = (uchar *)&otp_mac; 36 37 for (ret = 0; ret < 6; ++ret) 38 mac_addr[ret] = otp_mac_p[5 - ret]; 39 40 if (is_valid_ethaddr(mac_addr)) 41 eth_setenv_enetaddr("ethaddr", mac_addr); 42 } 43} 44 45int board_eth_init(bd_t *bis) 46{ 47 return bfin_EMAC_initialize(bis); 48} 49#endif 50 51int misc_init_r(void) 52{ 53#ifdef CONFIG_BFIN_MAC 54 uchar enetaddr[6]; 55 if (!eth_getenv_enetaddr("ethaddr", enetaddr)) 56 board_init_enetaddr(enetaddr); 57#endif 58 59 gpio_cfi_flash_init(); 60 61 return 0; 62} 63