commit
1131d4e22c
@ -1,9 +0,0 @@ |
||||
#
|
||||
# Copyright (C) 2014 Stefan Roese <sr@denx.de>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
obj-y = cpu.o
|
||||
obj-$(CONFIG_SPL_BUILD) += spl.o
|
||||
obj-$(CONFIG_SPL_BUILD) += lowlevel_spl.o
|
@ -0,0 +1,24 @@ |
||||
#
|
||||
# Copyright (C) 2014-2015 Stefan Roese <sr@denx.de>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
ifdef CONFIG_KIRKWOOD |
||||
|
||||
obj-y = dram.o
|
||||
obj-y += gpio.o
|
||||
obj-y += timer.o
|
||||
|
||||
else |
||||
|
||||
obj-y = cpu.o
|
||||
obj-y += dram.o
|
||||
obj-y += gpio.o
|
||||
obj-y += mbus.o
|
||||
obj-y += timer.o
|
||||
obj-$(CONFIG_SPL_BUILD) += spl.o
|
||||
obj-$(CONFIG_SPL_BUILD) += lowlevel_spl.o
|
||||
|
||||
obj-y += serdes/
|
||||
endif |
@ -0,0 +1,15 @@ |
||||
if TARGET_DB_88F6820_GP |
||||
|
||||
config SYS_BOARD |
||||
default "db-88f6820-gp" |
||||
|
||||
config SYS_VENDOR |
||||
default "Marvell" |
||||
|
||||
config SYS_SOC |
||||
default "mvebu" |
||||
|
||||
config SYS_CONFIG_NAME |
||||
default "db-88f6820-gp" |
||||
|
||||
endif |
@ -0,0 +1,7 @@ |
||||
#
|
||||
# Copyright (C) 2015 Stefan Roese <sr@denx.de>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
obj-y := db-88f6820-gp.o
|
@ -0,0 +1,16 @@ |
||||
-------- |
||||
WARNING: |
||||
-------- |
||||
This file should contain the bin_hdr generated by the original Marvell |
||||
U-Boot implementation. As this is currently not included in this |
||||
U-Boot version, we have added this placeholder, so that the U-Boot |
||||
image can be generated without errors. |
||||
|
||||
If you have a known to be working bin_hdr for your board, then you |
||||
just need to replace this text file here with the binary header |
||||
and recompile U-Boot. |
||||
|
||||
In a few weeks, mainline U-Boot will get support to generate the |
||||
bin_hdr with the DDR training code itself. By implementing this code |
||||
as SPL U-Boot. Then this file will not be needed any more and will |
||||
get removed. |
@ -0,0 +1,103 @@ |
||||
/*
|
||||
* Copyright (C) 2015 Stefan Roese <sr@denx.de> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
#include <i2c.h> |
||||
#include <miiphy.h> |
||||
#include <asm/io.h> |
||||
#include <asm/arch/cpu.h> |
||||
#include <asm/arch/soc.h> |
||||
|
||||
DECLARE_GLOBAL_DATA_PTR; |
||||
|
||||
#define BIT(nr) (1UL << (nr)) |
||||
|
||||
#define ETH_PHY_CTRL_REG 0 |
||||
#define ETH_PHY_CTRL_POWER_DOWN_BIT 11 |
||||
#define ETH_PHY_CTRL_POWER_DOWN_MASK (1 << ETH_PHY_CTRL_POWER_DOWN_BIT) |
||||
|
||||
/*
|
||||
* Those values and defines are taken from the Marvell U-Boot version |
||||
* "u-boot-2013.01-2014_T3.0" |
||||
*/ |
||||
#define DB_GP_88F68XX_GPP_OUT_ENA_LOW \ |
||||
(~(BIT(1) | BIT(4) | BIT(6) | BIT(7) | BIT(8) | BIT(9) | \
|
||||
BIT(10) | BIT(11) | BIT(19) | BIT(22) | BIT(23) | BIT(25) | \
|
||||
BIT(26) | BIT(27) | BIT(29) | BIT(30) | BIT(31))) |
||||
#define DB_GP_88F68XX_GPP_OUT_ENA_MID \ |
||||
(~(BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(15) | \
|
||||
BIT(16) | BIT(17) | BIT(18))) |
||||
|
||||
#define DB_GP_88F68XX_GPP_OUT_VAL_LOW 0x0 |
||||
#define DB_GP_88F68XX_GPP_OUT_VAL_MID 0x0 |
||||
#define DB_GP_88F68XX_GPP_POL_LOW 0x0 |
||||
#define DB_GP_88F68XX_GPP_POL_MID 0x0 |
||||
|
||||
/* IO expander on Marvell GP board includes e.g. fan enabling */ |
||||
struct marvell_io_exp { |
||||
u8 chip; |
||||
u8 addr; |
||||
u8 val; |
||||
}; |
||||
|
||||
static struct marvell_io_exp io_exp[] = { |
||||
{ 0x20, 6, 0x20 }, /* Configuration registers: Bit on --> Input bits */ |
||||
{ 0x20, 7, 0xC3 }, /* Configuration registers: Bit on --> Input bits */ |
||||
{ 0x20, 2, 0x1D }, /* Output Data, register#0 */ |
||||
{ 0x20, 3, 0x18 }, /* Output Data, register#1 */ |
||||
{ 0x21, 6, 0xC3 }, /* Configuration registers: Bit on --> Input bits */ |
||||
{ 0x21, 7, 0x31 }, /* Configuration registers: Bit on --> Input bits */ |
||||
{ 0x21, 2, 0x08 }, /* Output Data, register#0 */ |
||||
{ 0x21, 3, 0xC0 } /* Output Data, register#1 */ |
||||
}; |
||||
|
||||
int board_early_init_f(void) |
||||
{ |
||||
/* Configure MPP */ |
||||
writel(0x11111111, MVEBU_MPP_BASE + 0x00); |
||||
writel(0x11111111, MVEBU_MPP_BASE + 0x04); |
||||
writel(0x11244011, MVEBU_MPP_BASE + 0x08); |
||||
writel(0x22222111, MVEBU_MPP_BASE + 0x0c); |
||||
writel(0x22200002, MVEBU_MPP_BASE + 0x10); |
||||
writel(0x30042022, MVEBU_MPP_BASE + 0x14); |
||||
writel(0x55550555, MVEBU_MPP_BASE + 0x18); |
||||
writel(0x00005550, MVEBU_MPP_BASE + 0x1c); |
||||
|
||||
/* Set GPP Out value */ |
||||
writel(DB_GP_88F68XX_GPP_OUT_VAL_LOW, MVEBU_GPIO0_BASE + 0x00); |
||||
writel(DB_GP_88F68XX_GPP_OUT_VAL_MID, MVEBU_GPIO1_BASE + 0x00); |
||||
|
||||
/* Set GPP Polarity */ |
||||
writel(DB_GP_88F68XX_GPP_POL_LOW, MVEBU_GPIO0_BASE + 0x0c); |
||||
writel(DB_GP_88F68XX_GPP_POL_MID, MVEBU_GPIO1_BASE + 0x0c); |
||||
|
||||
/* Set GPP Out Enable */ |
||||
writel(DB_GP_88F68XX_GPP_OUT_ENA_LOW, MVEBU_GPIO0_BASE + 0x04); |
||||
writel(DB_GP_88F68XX_GPP_OUT_ENA_MID, MVEBU_GPIO1_BASE + 0x04); |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
int board_init(void) |
||||
{ |
||||
int i; |
||||
|
||||
/* adress of boot parameters */ |
||||
gd->bd->bi_boot_params = mvebu_sdram_bar(0) + 0x100; |
||||
|
||||
/* Init I2C IO expanders */ |
||||
for (i = 0; i < ARRAY_SIZE(io_exp); i++) |
||||
i2c_write(io_exp[i].chip, io_exp[i].addr, 1, &io_exp[i].val, 1); |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
int checkboard(void) |
||||
{ |
||||
puts("Board: Marvell DB-88F6820-GP\n"); |
||||
|
||||
return 0; |
||||
} |
@ -0,0 +1,12 @@ |
||||
# |
||||
# Copyright (C) 2014 Stefan Roese <sr@denx.de> |
||||
# |
||||
|
||||
# Armada XP uses version 1 image format |
||||
VERSION 1 |
||||
|
||||
# Boot Media configurations |
||||
BOOT_FROM spi |
||||
|
||||
# Binary Header (bin_hdr) with DDR3 training code |
||||
BINARY board/Marvell/db-88f6820-gp/binary.0 0000005b 00000068 |
@ -0,0 +1,2 @@ |
||||
CONFIG_ARM=y |
||||
CONFIG_TARGET_DB_88F6820_GP=y |
@ -0,0 +1,72 @@ |
||||
/*
|
||||
* Copyright (C) 2014 Stefan Roese <sr@denx.de> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#ifndef _CONFIG_DB_88F6820_GP_H |
||||
#define _CONFIG_DB_88F6820_GP_H |
||||
|
||||
/*
|
||||
* High Level Configuration Options (easy to change) |
||||
*/ |
||||
#define CONFIG_ARMADA_XP /* SOC Family Name */ |
||||
#define CONFIG_DB_88F6820_GP /* Board target name for DDR training */ |
||||
|
||||
#define CONFIG_SYS_L2_PL310 |
||||
|
||||
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */ |
||||
#define CONFIG_SYS_GENERIC_BOARD |
||||
#define CONFIG_DISPLAY_BOARDINFO_LATE |
||||
|
||||
#define CONFIG_SYS_TEXT_BASE 0x04000000 |
||||
#define CONFIG_SYS_TCLK 250000000 /* 250MHz */ |
||||
|
||||
/*
|
||||
* Commands configuration |
||||
*/ |
||||
#define CONFIG_SYS_NO_FLASH /* Declare no flash (NOR/SPI) */ |
||||
#include <config_cmd_default.h> |
||||
#define CONFIG_CMD_CACHE |
||||
#define CONFIG_CMD_DHCP |
||||
#define CONFIG_CMD_ENV |
||||
#define CONFIG_CMD_I2C |
||||
#define CONFIG_CMD_PING |
||||
#define CONFIG_CMD_SF |
||||
#define CONFIG_CMD_SPI |
||||
#define CONFIG_CMD_TFTPPUT |
||||
#define CONFIG_CMD_TIME |
||||
|
||||
/* I2C */ |
||||
#define CONFIG_SYS_I2C |
||||
#define CONFIG_SYS_I2C_MVTWSI |
||||
#define CONFIG_I2C_MVTWSI_BASE0 MVEBU_TWSI_BASE |
||||
#define CONFIG_SYS_I2C_SLAVE 0x0 |
||||
#define CONFIG_SYS_I2C_SPEED 100000 |
||||
|
||||
/* SPI NOR flash default params, used by sf commands */ |
||||
#define CONFIG_SF_DEFAULT_SPEED 1000000 |
||||
#define CONFIG_SF_DEFAULT_MODE SPI_MODE_3 |
||||
#define CONFIG_SPI_FLASH_STMICRO |
||||
|
||||
/* Environment in SPI NOR flash */ |
||||
#define CONFIG_ENV_IS_IN_SPI_FLASH |
||||
#define CONFIG_ENV_OFFSET (1 << 20) /* 1MiB in */ |
||||
#define CONFIG_ENV_SIZE (64 << 10) /* 64KiB */ |
||||
#define CONFIG_ENV_SECT_SIZE (256 << 10) /* 256KiB sectors */ |
||||
|
||||
#define CONFIG_PHY_MARVELL /* there is a marvell phy */ |
||||
#define CONFIG_PHY_ADDR { 1, 0 } |
||||
#define CONFIG_SYS_NETA_INTERFACE_TYPE PHY_INTERFACE_MODE_RGMII |
||||
#define PHY_ANEG_TIMEOUT 8000 /* PHY needs a longer aneg time */ |
||||
|
||||
#define CONFIG_SYS_CONSOLE_INFO_QUIET /* don't print console @ startup */ |
||||
#define CONFIG_SYS_ALT_MEMTEST |
||||
|
||||
/*
|
||||
* mv-common.h should be defined after CMD configs since it used them |
||||
* to enable certain macros |
||||
*/ |
||||
#include "mv-common.h" |
||||
|
||||
#endif /* _CONFIG_DB_88F6820_GP_H */ |
Loading…
Reference in new issue