blob: 211cf24ac303fc889b760ca02a91a897cc2304ae [file] [log] [blame]
Mike Frysingerd9a5d112008-10-12 20:59:12 -04001/*
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 <command.h>
12#include <net.h>
13#include <netdev.h>
14#include <asm/blackfin.h>
Mike Frysinger22e64402010-06-02 19:30:01 -040015#include <asm/gpio.h>
Mike Frysingerd9a5d112008-10-12 20:59:12 -040016#include <asm/net.h>
17#include <asm/mach-common/bits/otp.h>
18
19DECLARE_GLOBAL_DATA_PTR;
20
21int checkboard(void)
22{
23 printf("Board: ADI BF527 EZ-Kit board\n");
24 printf(" Support: http://blackfin.uclinux.org/\n");
25 return 0;
26}
27
Mike Frysingerd9a5d112008-10-12 20:59:12 -040028#ifdef CONFIG_BFIN_MAC
29static void board_init_enetaddr(uchar *mac_addr)
30{
31 bool valid_mac = false;
32
33 /* the MAC is stored in OTP memory page 0xDF */
34 uint32_t ret;
35 uint64_t otp_mac;
36
37 ret = bfrom_OtpRead(0xDF, OTP_LOWER_HALF, &otp_mac);
38 if (!(ret & OTP_MASTER_ERROR)) {
39 uchar *otp_mac_p = (uchar *)&otp_mac;
40
41 for (ret = 0; ret < 6; ++ret)
42 mac_addr[ret] = otp_mac_p[5 - ret];
43
44 if (is_valid_ether_addr(mac_addr))
45 valid_mac = true;
46 }
47
48 if (!valid_mac) {
49 puts("Warning: Generating 'random' MAC address\n");
50 bfin_gen_rand_mac(mac_addr);
51 }
52
53 eth_setenv_enetaddr("ethaddr", mac_addr);
54}
55
56int board_eth_init(bd_t *bis)
57{
58 return bfin_EMAC_initialize(bis);
59}
60#endif
61
62int misc_init_r(void)
63{
64#ifdef CONFIG_BFIN_MAC
65 uchar enetaddr[6];
66 if (!eth_getenv_enetaddr("ethaddr", enetaddr))
67 board_init_enetaddr(enetaddr);
68#endif
69
70 return 0;
71}
Cliff Cai9442c4a2009-12-08 07:25:57 +000072
73#ifdef CONFIG_USB_BLACKFIN
74void board_musb_init(void)
75{
76 /*
77 * BF527 EZ-KITs require PG13 to be high for HOST mode
78 */
Mike Frysinger22e64402010-06-02 19:30:01 -040079 gpio_request(GPIO_PG13, "musb-vbus");
80 gpio_direction_output(GPIO_PG13, 1);
Cliff Cai9442c4a2009-12-08 07:25:57 +000081}
82#endif