[U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 7/7
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Wed Jul 8 22:57:56 CEST 2009
> + * Modified for the Samsung SMDK2410 by
> + * (C) Copyright 2002
> + * David Mueller, ELSOFT AG, <d.mueller at elsoft.ch>
> + *
> + * Modified for the friendly-arm SBC-2410X by
> + * (C) Copyright 2005
> + * JinHua Luo, GuangDong Linux Center, <luo.jinhua at gd-linux.com>
> + *
> + * Modified for the Embest SBC2440-II by
> + * (C) Copyright 2009
> + * Kevin Morfitt, Fearnside Systems Ltd, <kevin.morfitt at fearnside-systems.co.uk>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA
> + */
> +
> +#include <config.h>
> +#include <version.h>
> +
> +/*
> + * Taken from linux/arch/arm/boot/compressed/head-s3c2410.S
> + *
> + * Copyright (C) 2002 Samsung Electronics SW.LEE <hitchcar at sec.samsung.com>
> + */
> +
> +#define BWSCON 0x48000000
> +
> +#define DW8 (0x0)
> +#define DW16 (0x1)
> +#define DW32 (0x2)
> +#define WAIT (0x1 << 2)
> +#define UBLB (0x1 << 3)
> +
> +#define B1_BWSCON (DW16)
> +#define B2_BWSCON (DW16)
> +#define B3_BWSCON (DW16 + WAIT + UBLB)
> +#define B4_BWSCON (DW16)
> +#define B5_BWSCON (DW16)
> +#define B6_BWSCON (DW32)
> +#define B7_BWSCON (DW32)
> +#define BWSCON_VAL ((B1_BWSCON << 4) + (B2_BWSCON << 8) + \
> + (B3_BWSCON << 12) + (B4_BWSCON << 16) + \
> + (B5_BWSCON << 20) + (B6_BWSCON << 24) + \
> + (B7_BWSCON << 28))
> +
> +#define B0_TACS 0x0
> +#define B0_TCOS 0x0
> +#define B0_TACC 0x7
> +#define B0_TCOH 0x0
> +#define B0_TAH 0x0
> +#define B0_TACP 0x0
> +#define B0_PMC 0x0
> +#define BANKCON0_VAL ((B0_TACS << 13) + (B0_TCOS << 11) + (B0_TACC << 8) + \
> + (B0_TCOH << 6) + (B0_TAH << 4) + (B0_TACP << 2) + \
> + B0_PMC)
> +
> +#define B1_TACS 0x0
> +#define B1_TCOS 0x0
> +#define B1_TACC 0x7
> +#define B1_TCOH 0x0
> +#define B1_TAH 0x0
> +#define B1_TACP 0x0
> +#define B1_PMC 0x0
> +#define BANKCON1_VAL ((B1_TACS << 13) + (B1_TCOS << 11) + (B1_TACC << 8) + \
> + (B1_TCOH << 6) + (B1_TAH << 4) + (B1_TACP << 2) + \
> + B1_PMC)
> +
> +#define B2_TACS 0x0
> +#define B2_TCOS 0x0
> +#define B2_TACC 0x7
> +#define B2_TCOH 0x0
> +#define B2_TAH 0x0
> +#define B2_TACP 0x0
> +#define B2_PMC 0x0
> +#define BANKCON2_VAL ((B2_TACS << 13) + (B2_TCOS << 11) + (B2_TACC << 8) + \
> + (B2_TCOH << 6) + (B2_TAH << 4) + (B2_TACP << 2) + \
> + B2_PMC)
> +
> +#define B3_TACS 0x0 /* 0clk */
> +#define B3_TCOS 0x3 /* 4clk */
> +#define B3_TACC 0x7 /* 14clk */
> +#define B3_TCOH 0x1 /* 1clk */
> +#define B3_TAH 0x3 /* 4clk */
> +#define B3_TACP 0x3 /* 6clk */
> +#define B3_PMC 0x0 /* 16data */
> +#define BANKCON3_VAL ((B3_TACS << 13) + (B3_TCOS << 11) + (B3_TACC << 8) + \
> + (B3_TCOH << 6) + (B3_TAH << 4) + (B3_TACP << 2) + \
> + B3_PMC)
> +
> +#define B4_TACS 0x0
> +#define B4_TCOS 0x0
> +#define B4_TACC 0x7
> +#define B4_TCOH 0x0
> +#define B4_TAH 0x0
> +#define B4_TACP 0x0
> +#define B4_PMC 0x0
> +#define BANKCON4_VAL ((B4_TACS << 13) + (B4_TCOS << 11) + (B4_TACC << 8) + \
> + (B4_TCOH << 6) + (B4_TAH << 4) + (B4_TACP << 2) + \
> + B4_PMC)
> +
> +#define B5_TACS 0x0
> +#define B5_TCOS 0x0
> +#define B5_TACC 0x7
> +#define B5_TCOH 0x0
> +#define B5_TAH 0x0
> +#define B5_TACP 0x0
> +#define B5_PMC 0x0
> +#define BANKCON5_VAL ((B5_TACS << 13) + (B5_TCOS << 11) + (B5_TACC << 8) + \
> + (B5_TCOH << 6) + (B5_TAH << 4) + (B5_TACP << 2) + \
> + B5_PMC)
> +
> +#define B6_MT 0x3 /* SDRAM */
> +#define B6_TRCD 0x2
> +#define B6_SCAN 0x1 /* 9bit */
> +#define BANKCON6_VAL ((B6_MT << 15) + (B6_TRCD << 2) + B6_SCAN)
> +
> +#define B7_MT 0x3 /* SDRAM */
> +#define B7_TRCD 0x2 /* 4clk */
> +#define B7_SCAN 0x1 /* 9bit */
> +#define BANKCON7_VAL ((B7_MT << 15) + (B7_TRCD << 2) + B7_SCAN)
> +
> +/* REFRESH parameter */
> +#define REFEN 0x1 /* Refresh enable */
> +#define TREFMD 0x0 /* CBR(CAS before RAS)/Auto refresh */
> +#define TRP 0x0 /* 2clk */
> +#define TRC 0x3 /* 7clk */
> +#define TCHR 0x2 /* 3clk */
> +#define REFCNT 1259
> +#define REFRESH_VAL ((REFEN << 23) + (TREFMD << 22) + (TRP << 20) + \
> + (TRC << 18) + (TCHR << 16) + REFCNT)
> +
> +/* BANKSIZE parameter */
> +#define BURST_EN 1 /* Enable burst mode */
> +#define SCKE_EN 1 /* Enable SDRAM power-down mode */
> +#define SCLK_EN 1 /* SCLK is active only during the access */
> +#define BK67MAP 2 /* 128M/128M */
> +#define BANKSIZE_VAL ((BURST_EN << 7) + (SCKE_EN << 5) + \
> + (SCLK_EN << 4) + BK67MAP)
> +
> +/* MRSRB6 parameter */
> +#define WBL6 0 /* Burst */
> +#define TM6 0 /* Modem register set */
> +#define CL6 3 /* Latency is 3 clocks */
> +#define BT6 0 /* Sequential */
> +#define BL6 0
> +#define MRSRB6_VAL ((WBL6 << 9) + (TM6 << 7) + (CL6 << 4) + \
> + (BT6 << 3) + BL6)
> +
> +/* MRSRB7 parameter */
> +#define WBL7 0 /* Burst */
> +#define TM7 0 /* Modem register set */
> +#define CL7 3 /* Latency is 3 clocks */
> +#define BT7 0 /* Sequential */
> +#define BL7 0
> +#define MRSRB7_VAL ((WBL7 << 9) + (TM7 << 7) + (CL7 << 4) + \
> + (BT7 << 3) + BL7)
please clean this define
please make then more generic
by moving soc macro to a propoper header and board config
to board config header
Best Regards,
J.
More information about the U-Boot
mailing list