]>
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> | |
751e54c3 | 16 | #include <asm/net.h> |
b8f4162a | 17 | #include <net.h> |
d4d77308 | 18 | #include <asm/mach-common/bits/bootrom.h> |
89973f8a | 19 | #include <netdev.h> |
26bf7dec | 20 | |
1218abf1 WD |
21 | DECLARE_GLOBAL_DATA_PTR; |
22 | ||
26bf7dec AL |
23 | int checkboard(void) |
24 | { | |
26bf7dec AL |
25 | printf("Board: ADI BF537 stamp board\n"); |
26 | printf(" Support: http://blackfin.uclinux.org/\n"); | |
27 | return 0; | |
28 | } | |
29 | ||
751e54c3 MF |
30 | #ifdef CONFIG_BFIN_MAC |
31 | static void board_init_enetaddr(uchar *mac_addr) | |
32 | { | |
33 | #ifdef CONFIG_SYS_NO_FLASH | |
34 | # define USE_MAC_IN_FLASH 0 | |
35 | #else | |
36 | # define USE_MAC_IN_FLASH 1 | |
37 | #endif | |
38 | bool valid_mac = false; | |
39 | ||
40 | if (USE_MAC_IN_FLASH) { | |
41 | /* we cram the MAC in the last flash sector */ | |
42 | uchar *board_mac_addr = (uchar *)0x203F0000; | |
43 | if (is_valid_ether_addr(board_mac_addr)) { | |
44 | memcpy(mac_addr, board_mac_addr, 6); | |
45 | valid_mac = true; | |
46 | } | |
47 | } | |
48 | ||
49 | if (!valid_mac) { | |
50 | puts("Warning: Generating 'random' MAC address\n"); | |
51 | bfin_gen_rand_mac(mac_addr); | |
52 | } | |
53 | ||
54 | eth_setenv_enetaddr("ethaddr", mac_addr); | |
55 | } | |
56 | ||
57 | int board_eth_init(bd_t *bis) | |
58 | { | |
59 | return bfin_EMAC_initialize(bis); | |
60 | } | |
61 | #endif | |
62 | ||
26bf7dec AL |
63 | /* miscellaneous platform dependent initialisations */ |
64 | int misc_init_r(void) | |
65 | { | |
751e54c3 MF |
66 | #ifdef CONFIG_BFIN_MAC |
67 | uchar enetaddr[6]; | |
68 | if (!eth_getenv_enetaddr("ethaddr", enetaddr)) | |
69 | board_init_enetaddr(enetaddr); | |
70 | #endif | |
71 | ||
72 | #ifndef CONFIG_SYS_NO_FLASH | |
73 | /* we use the last sector for the MAC address / POST LDR */ | |
74 | extern flash_info_t flash_info[]; | |
75 | flash_protect(FLAG_PROTECT_SET, 0x203F0000, 0x203FFFFF, &flash_info[0]); | |
fcec2eb9 | 76 | #endif |
26bf7dec | 77 | |
d248cfb2 MF |
78 | #ifdef CONFIG_BFIN_IDE |
79 | cf_ide_init(); | |
26bf7dec | 80 | #endif |
d248cfb2 | 81 | |
26bf7dec AL |
82 | return 0; |
83 | } |