]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - board/bf537-stamp/bf537-stamp.c
rename CFG_ macros to CONFIG_SYS
[people/ms/u-boot.git] / board / bf537-stamp / bf537-stamp.c
index 919cef688dbdd5992fb225a42a0f9be8a4b1aa7b..7303f1b4155e59cf003b8bee64c4690bbe8433e7 100644 (file)
 #include <command.h>
 #include <asm/blackfin.h>
 #include <asm/io.h>
-#include "ether_bf537.h"
+#include <net.h>
+#include <asm/mach-common/bits/bootrom.h>
+#include <netdev.h>
 
-#define POST_WORD_ADDR 0xFF903FFC
-
-/*
- * the bootldr command loads an address, checks to see if there
- *   is a Boot stream that the on-chip BOOTROM can understand,
- *   and loads it via the BOOTROM Callback. It is possible
- *   to also add booting from SPI, or TWI, but this function does
- *   not currently support that.
+/**
+ * is_valid_ether_addr - Determine if the given Ethernet address is valid
+ * @addr: Pointer to a six-byte array containing the Ethernet address
+ *
+ * Check that the Ethernet address (MAC) is not 00:00:00:00:00:00, is not
+ * a multicast address, and is not FF:FF:FF:FF:FF:FF.
+ *
+ * Return true if the address is valid.
  */
-int do_bootldr(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
+static inline int is_valid_ether_addr(const u8 * addr)
 {
-       ulong addr, entry;
-       ulong *data;
-
-       /* Get the address */
-       if (argc < 2) {
-               addr = load_addr;
-       } else {
-               addr = simple_strtoul(argv[1], NULL, 16);
-       }
-
-       /* Check if it is a LDR file */
-       data = (ulong *) addr;
-       if (*data == 0xFF800060 || *data == 0xFF800040 || *data == 0xFF800020) {
-               /* We want to boot from FLASH or SDRAM */
-               entry = _BOOTROM_BOOT_DXE_FLASH;
-               printf("## Booting ldr image at 0x%08lx ...\n", addr);
-               if (icache_status())
-                       icache_disable();
-               if (dcache_status())
-                       dcache_disable();
-
-             __asm__("R7=%[a];\n" "P0=%[b];\n" "JUMP (P0);\n":
-             :[a] "d"(addr),[b] "a"(entry)
-             :"R7", "P0");
-
-       } else {
-               printf("## No ldr image at address 0x%08lx\n", addr);
-       }
-
-       return 0;
+       /* FF:FF:FF:FF:FF:FF is a multicast address so we don't need to
+        * explicitly check for it here. */
+       return !is_multicast_ether_addr(addr) && !is_zero_ether_addr(addr);
 }
 
-U_BOOT_CMD(bootldr, 2, 0, do_bootldr,
-          "bootldr - boot ldr image from memory\n",
-          "[addr]\n         - boot ldr image stored in memory\n");
+DECLARE_GLOBAL_DATA_PTR;
+
+#define POST_WORD_ADDR 0xFF903FFC
 
 int checkboard(void)
 {
-#if (BFIN_CPU == ADSP_BF534)
-       printf("CPU:   ADSP BF534 Rev.: 0.%d\n", *pCHIPID >> 28);
-#elif (BFIN_CPU == ADSP_BF536)
-       printf("CPU:   ADSP BF536 Rev.: 0.%d\n", *pCHIPID >> 28);
-#else
-       printf("CPU:   ADSP BF537 Rev.: 0.%d\n", *pCHIPID >> 28);
-#endif
        printf("Board: ADI BF537 stamp board\n");
        printf("       Support: http://blackfin.uclinux.org/\n");
        return 0;
@@ -98,7 +66,7 @@ int checkboard(void)
 void cf_outb(unsigned char val, volatile unsigned char *addr)
 {
        *(addr) = val;
-       sync();
+       SSYNC();
 }
 
 unsigned char cf_inb(volatile unsigned char *addr)
@@ -106,7 +74,7 @@ unsigned char cf_inb(volatile unsigned char *addr)
        volatile unsigned char c;
 
        c = *(addr);
-       sync();
+       SSYNC();
 
        return c;
 }
@@ -117,7 +85,7 @@ void cf_insw(unsigned short *sect_buf, unsigned short *addr, int words)
 
        for (i = 0; i < words; i++)
                *(sect_buf + i) = *(addr);
-       sync();
+       SSYNC();
 }
 
 void cf_outsw(unsigned short *addr, unsigned short *sect_buf, int words)
@@ -126,13 +94,12 @@ void cf_outsw(unsigned short *addr, unsigned short *sect_buf, int words)
 
        for (i = 0; i < words; i++)
                *(addr) = *(sect_buf + i);
-       sync();
+       SSYNC();
 }
 #endif                         /* CONFIG_BFIN_IDE */
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
-       DECLARE_GLOBAL_DATA_PTR;
 #ifdef DEBUG
        int brate;
        char *tmp = getenv("baudrate");
@@ -142,24 +109,22 @@ long int initdram(int board_type)
        printf("tRCD %d SCLK Cycles,tRP %d SCLK Cycles,tRAS %d SCLK Cycles"
               "tWR %d SCLK Cycles,CAS Latency %d SCLK cycles \n",
               3, 3, 6, 2, 3);
-       printf("SDRAM Begin: 0x%x\n", CFG_SDRAM_BASE);
-       printf("Bank size = %d MB\n", CFG_MAX_RAM_SIZE >> 20);
+       printf("SDRAM Begin: 0x%x\n", CONFIG_SYS_SDRAM_BASE);
+       printf("Bank size = %d MB\n", CONFIG_SYS_MAX_RAM_SIZE >> 20);
 #endif
-       gd->bd->bi_memstart = CFG_SDRAM_BASE;
-       gd->bd->bi_memsize = CFG_MAX_RAM_SIZE;
-       return CFG_MAX_RAM_SIZE;
+       gd->bd->bi_memstart = CONFIG_SYS_SDRAM_BASE;
+       gd->bd->bi_memsize = CONFIG_SYS_MAX_RAM_SIZE;
+       return CONFIG_SYS_MAX_RAM_SIZE;
 }
 
 #if defined(CONFIG_MISC_INIT_R)
 /* miscellaneous platform dependent initialisations */
 int misc_init_r(void)
 {
-#if (BFIN_BOOT_MODE == BF537_BYPASS_BOOT)
+#if defined(CONFIG_CMD_NET)
        char nid[32];
        unsigned char *pMACaddr = (unsigned char *)0x203F0000;
-       u8 SrcAddr[6] = { 0x02, 0x80, 0xAD, 0x20, 0x31, 0xB8 };
 
-#if defined(CONFIG_CMD_NET)
        /* The 0xFF check here is to make sure we don't use the address
         * in flash if it's simply been erased (aka all 0xFF values) */
        if (getenv("ethaddr") == NULL && is_valid_ether_addr(pMACaddr)) {
@@ -168,11 +133,7 @@ int misc_init_r(void)
                        pMACaddr[2], pMACaddr[3], pMACaddr[4], pMACaddr[5]);
                setenv("ethaddr", nid);
        }
-       if (getenv("ethaddr")) {
-               SetupMacAddr(SrcAddr);
-       }
 #endif
-#endif                         /* BFIN_BOOT_MODE == BF537_BYPASS_BOOT */
 
 #if defined(CONFIG_BFIN_IDE)
 #if defined(CONFIG_BFIN_TRUE_IDE)
@@ -194,14 +155,15 @@ int misc_init_r(void)
 }
 #endif                         /* CONFIG_MISC_INIT_R */
 
-#ifdef CONFIG_POST
-#if (BFIN_BOOT_MODE != BF537_BYPASS_BOOT)
-/* Using sw10-PF5 as the hotkey */
-int post_hotkeys_pressed(void)
+#if defined(CONFIG_BFIN_MAC)
+
+int board_eth_init(bd_t *bis)
 {
-       return 0;
+       return bfin_EMAC_initialize(bis);
 }
-#else
+#endif
+
+#ifdef CONFIG_POST
 /* Using sw10-PF5 as the hotkey */
 int post_hotkeys_pressed(void)
 {
@@ -234,7 +196,6 @@ int post_hotkeys_pressed(void)
        }
 }
 #endif
-#endif
 
 #if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER)
 void post_word_store(ulong a)
@@ -275,11 +236,11 @@ int flash_post_test(int flags)
                erase_block_flash(n);
                printf("OK\r");
                printf("--------Program block:%2d...", n);
-               write_data(CFG_FLASH_BASE + offset, BLOCK_SIZE, pbuf);
+               write_data(CONFIG_SYS_FLASH_BASE + offset, BLOCK_SIZE, pbuf);
                printf("OK\r");
                printf("--------Verify  block:%2d...", n);
                for (i = 0; i < BLOCK_SIZE; i += 2) {
-                       if (*(unsigned short *)(CFG_FLASH_BASE + offset + i) !=
+                       if (*(unsigned short *)(CONFIG_SYS_FLASH_BASE + offset + i) !=
                            *temp++) {
                                value = 1;
                                result = 1;