uboot/board/freescale/m5373evb/m5373evb.c
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2000-2003
   3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
   4 *
   5 * Copyright (C) 2004-2007, 2012 Freescale Semiconductor, Inc.
   6 * TsiChung Liew (Tsi-Chung.Liew@freescale.com)
   7 *
   8 * SPDX-License-Identifier:     GPL-2.0+
   9 */
  10
  11#include <config.h>
  12#include <common.h>
  13#include <asm/immap.h>
  14#include <asm/io.h>
  15
  16DECLARE_GLOBAL_DATA_PTR;
  17
  18int checkboard(void)
  19{
  20        puts("Board: ");
  21        puts("Freescale FireEngine 5373 EVB\n");
  22        return 0;
  23};
  24
  25phys_size_t initdram(int board_type)
  26{
  27        sdram_t *sdram = (sdram_t *)(MMAP_SDRAM);
  28        u32 dramsize, i;
  29
  30        dramsize = CONFIG_SYS_SDRAM_SIZE * 0x100000;
  31
  32        for (i = 0x13; i < 0x20; i++) {
  33                if (dramsize == (1 << i))
  34                        break;
  35        }
  36        i--;
  37
  38        out_be32(&sdram->cs0, CONFIG_SYS_SDRAM_BASE | i);
  39        out_be32(&sdram->cfg1, CONFIG_SYS_SDRAM_CFG1);
  40        out_be32(&sdram->cfg2, CONFIG_SYS_SDRAM_CFG2);
  41
  42        /* Issue PALL */
  43        out_be32(&sdram->ctrl, CONFIG_SYS_SDRAM_CTRL | 2);
  44
  45        /* Issue LEMR */
  46        out_be32(&sdram->mode, CONFIG_SYS_SDRAM_EMOD);
  47        out_be32(&sdram->mode, CONFIG_SYS_SDRAM_MODE | 0x04000000);
  48
  49        udelay(500);
  50
  51        /* Issue PALL */
  52        out_be32(&sdram->ctrl, CONFIG_SYS_SDRAM_CTRL | 2);
  53
  54        /* Perform two refresh cycles */
  55        out_be32(&sdram->ctrl, CONFIG_SYS_SDRAM_CTRL | 4);
  56        out_be32(&sdram->ctrl, CONFIG_SYS_SDRAM_CTRL | 4);
  57
  58        out_be32(&sdram->mode, CONFIG_SYS_SDRAM_MODE);
  59
  60        out_be32(&sdram->ctrl,
  61                (CONFIG_SYS_SDRAM_CTRL & ~0x80000000) | 0x10000c00);
  62
  63        udelay(100);
  64
  65        return dramsize;
  66};
  67
  68int testdram(void)
  69{
  70        /* TODO: XXX XXX XXX */
  71        printf("DRAM test not implemented!\n");
  72
  73        return (0);
  74}
  75