]>
Commit | Line | Data |
---|---|---|
26bf7dec | 1 | /* |
751e54c3 | 2 | * U-boot - main board file |
26bf7dec | 3 | * |
751e54c3 | 4 | * Copyright (c) 2005-2008 Analog Devices Inc. |
26bf7dec AL |
5 | * |
6 | * (C) Copyright 2000-2004 | |
7 | * Wolfgang Denk, DENX Software Engineering, wd@denx.de. | |
8 | * | |
1a459660 | 9 | * SPDX-License-Identifier: GPL-2.0+ |
26bf7dec AL |
10 | */ |
11 | ||
12 | #include <common.h> | |
13 | #include <config.h> | |
14 | #include <command.h> | |
15 | #include <asm/blackfin.h> | |
b8f4162a | 16 | #include <net.h> |
d4d77308 | 17 | #include <asm/mach-common/bits/bootrom.h> |
89973f8a | 18 | #include <netdev.h> |
26bf7dec | 19 | |
1218abf1 WD |
20 | DECLARE_GLOBAL_DATA_PTR; |
21 | ||
26bf7dec AL |
22 | int checkboard(void) |
23 | { | |
26bf7dec AL |
24 | printf("Board: ADI BF537 stamp board\n"); |
25 | printf(" Support: http://blackfin.uclinux.org/\n"); | |
26 | return 0; | |
27 | } | |
28 | ||
751e54c3 MF |
29 | #ifdef CONFIG_BFIN_MAC |
30 | static void board_init_enetaddr(uchar *mac_addr) | |
31 | { | |
32 | #ifdef CONFIG_SYS_NO_FLASH | |
33 | # define USE_MAC_IN_FLASH 0 | |
34 | #else | |
35 | # define USE_MAC_IN_FLASH 1 | |
36 | #endif | |
37 | bool valid_mac = false; | |
38 | ||
39 | if (USE_MAC_IN_FLASH) { | |
40 | /* we cram the MAC in the last flash sector */ | |
41 | uchar *board_mac_addr = (uchar *)0x203F0000; | |
42 | if (is_valid_ether_addr(board_mac_addr)) { | |
43 | memcpy(mac_addr, board_mac_addr, 6); | |
44 | valid_mac = true; | |
45 | } | |
46 | } | |
47 | ||
48 | if (!valid_mac) { | |
49 | puts("Warning: Generating 'random' MAC address\n"); | |
c42f56d9 | 50 | eth_random_addr(mac_addr); |
751e54c3 MF |
51 | } |
52 | ||
53 | eth_setenv_enetaddr("ethaddr", mac_addr); | |
54 | } | |
55 | ||
56 | int board_eth_init(bd_t *bis) | |
57 | { | |
58 | return bfin_EMAC_initialize(bis); | |
59 | } | |
60 | #endif | |
61 | ||
26bf7dec AL |
62 | /* miscellaneous platform dependent initialisations */ |
63 | int misc_init_r(void) | |
64 | { | |
751e54c3 MF |
65 | #ifdef CONFIG_BFIN_MAC |
66 | uchar enetaddr[6]; | |
67 | if (!eth_getenv_enetaddr("ethaddr", enetaddr)) | |
68 | board_init_enetaddr(enetaddr); | |
69 | #endif | |
70 | ||
71 | #ifndef CONFIG_SYS_NO_FLASH | |
72 | /* we use the last sector for the MAC address / POST LDR */ | |
73 | extern flash_info_t flash_info[]; | |
74 | flash_protect(FLAG_PROTECT_SET, 0x203F0000, 0x203FFFFF, &flash_info[0]); | |
fcec2eb9 | 75 | #endif |
26bf7dec | 76 | |
d248cfb2 MF |
77 | #ifdef CONFIG_BFIN_IDE |
78 | cf_ide_init(); | |
26bf7dec | 79 | #endif |
d248cfb2 | 80 | |
26bf7dec AL |
81 | return 0; |
82 | } |