mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-23 05:08:24 +00:00
Merge patch series "board: siemens: clean up subfolders"
Enrico Leto <enrico.leto@siemens.com> says: The common folder was initialially created for the common parts of the products based on draco-am355x board family. We have the product lines 'pxm2', 'rut' and the base line unfortunately named 'draco'! Adding the new capricorn-imx8 board family, the files were enhanced without cleanup. Simplify first EEPROM probe and access that implements both i2c with & without driver model. Use abstraction functions for this. Move all am355x specifics to a new file 'board_am335x'. Clean-up includes, config checks, maintainer.
This commit is contained in:
commit
daa3100250
29 changed files with 230 additions and 339 deletions
|
@ -4,6 +4,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
obj-y += board.o
|
obj-y += board.o
|
||||||
|
obj-y += ../common/eeprom.o
|
||||||
|
|
||||||
ifdef CONFIG_SPL_BUILD
|
ifdef CONFIG_SPL_BUILD
|
||||||
obj-y += spl.o
|
obj-y += spl.o
|
||||||
|
|
|
@ -22,12 +22,12 @@
|
||||||
#include <asm/gpio.h>
|
#include <asm/gpio.h>
|
||||||
#include <asm/arch/imx8-pins.h>
|
#include <asm/arch/imx8-pins.h>
|
||||||
#include <asm/arch/iomux.h>
|
#include <asm/arch/iomux.h>
|
||||||
#include <firmware/imx/sci/sci.h>
|
|
||||||
#include <asm/arch/sys_proto.h>
|
#include <asm/arch/sys_proto.h>
|
||||||
#ifndef CONFIG_SPL
|
#ifndef CONFIG_SPL
|
||||||
#include <asm/arch-imx8/clock.h>
|
#include <asm/arch-imx8/clock.h>
|
||||||
#endif
|
#endif
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
|
#include "../common/eeprom.h"
|
||||||
#include "../common/factoryset.h"
|
#include "../common/factoryset.h"
|
||||||
|
|
||||||
#define GPIO_PAD_CTRL \
|
#define GPIO_PAD_CTRL \
|
||||||
|
@ -337,13 +337,11 @@ void board_late_mmc_env_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_SPL_BUILD
|
#ifndef CONFIG_SPL_BUILD
|
||||||
int factoryset_read_eeprom(int i2c_addr);
|
|
||||||
|
|
||||||
static int load_parameters_from_factoryset(void)
|
static int load_parameters_from_factoryset(void)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = factoryset_read_eeprom(EEPROM_I2C_ADDR);
|
ret = factoryset_read_eeprom(SIEMENS_EE_I2C_ADDR);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
|
|
@ -9,35 +9,20 @@
|
||||||
* Copyright (C) 2011, Texas Instruments, Incorporated - https://www.ti.com/
|
* Copyright (C) 2011, Texas Instruments, Incorporated - https://www.ti.com/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <command.h>
|
#include <command.h>
|
||||||
#include <env.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <init.h>
|
|
||||||
#include <malloc.h>
|
|
||||||
#include <serial.h>
|
#include <serial.h>
|
||||||
#include <spl.h>
|
|
||||||
#include <asm/arch/cpu.h>
|
|
||||||
#include <asm/arch/hardware.h>
|
|
||||||
#include <asm/arch/omap.h>
|
|
||||||
#include <asm/arch/ddr_defs.h>
|
|
||||||
#include <asm/arch/clock.h>
|
|
||||||
#include <asm/arch/gpio.h>
|
|
||||||
#include <asm/arch/mmc_host_def.h>
|
|
||||||
#include <asm/arch/sys_proto.h>
|
|
||||||
#include <asm/global_data.h>
|
|
||||||
#include <asm/io.h>
|
|
||||||
#include <asm/emif.h>
|
|
||||||
#include <asm/gpio.h>
|
|
||||||
#include <i2c.h>
|
|
||||||
#include <miiphy.h>
|
|
||||||
#include <cpsw.h>
|
|
||||||
#include <watchdog.h>
|
#include <watchdog.h>
|
||||||
|
#include <asm/arch/clock.h>
|
||||||
|
#include <asm/arch/sys_proto.h>
|
||||||
|
#include <asm/gpio.h>
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
#include "../common/factoryset.h"
|
#include "board_am335x.h"
|
||||||
|
#include "eeprom.h"
|
||||||
|
#include "factoryset.h"
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_SPL_BUILD
|
#ifdef CONFIG_SPL_BUILD
|
||||||
void set_uart_mux_conf(void)
|
void set_uart_mux_conf(void)
|
||||||
{
|
{
|
||||||
|
@ -48,13 +33,14 @@ void set_mux_conf_regs(void)
|
||||||
{
|
{
|
||||||
/* Initalize the board header */
|
/* Initalize the board header */
|
||||||
enable_i2c0_pin_mux();
|
enable_i2c0_pin_mux();
|
||||||
i2c_set_bus_num(0);
|
|
||||||
|
|
||||||
/* enable early the console */
|
/* enable early the console */
|
||||||
gd->baudrate = CONFIG_BAUDRATE;
|
gd->baudrate = CONFIG_BAUDRATE;
|
||||||
serial_init();
|
serial_init();
|
||||||
gd->have_console = 1;
|
gd->have_console = 1;
|
||||||
if (read_eeprom() < 0)
|
|
||||||
|
siemens_ee_setup();
|
||||||
|
if (draco_read_eeprom() < 0)
|
||||||
puts("Could not get board ID.\n");
|
puts("Could not get board ID.\n");
|
||||||
|
|
||||||
enable_board_pin_mux();
|
enable_board_pin_mux();
|
||||||
|
@ -62,15 +48,14 @@ void set_mux_conf_regs(void)
|
||||||
|
|
||||||
void sdram_init(void)
|
void sdram_init(void)
|
||||||
{
|
{
|
||||||
spl_siemens_board_init();
|
spl_draco_board_init();
|
||||||
board_init_ddr();
|
draco_init_ddr();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif /* #ifdef CONFIG_SPL_BUILD */
|
#endif /* #ifdef CONFIG_SPL_BUILD */
|
||||||
|
|
||||||
#ifndef CONFIG_SPL_BUILD
|
#ifndef CONFIG_SPL_BUILD
|
||||||
#define FACTORYSET_EEPROM_ADDR 0x50
|
|
||||||
/*
|
/*
|
||||||
* Basic board specific setup. Pinmux has been handled already.
|
* Basic board specific setup. Pinmux has been handled already.
|
||||||
*/
|
*/
|
||||||
|
@ -79,8 +64,7 @@ int board_init(void)
|
||||||
#if defined(CONFIG_HW_WATCHDOG)
|
#if defined(CONFIG_HW_WATCHDOG)
|
||||||
hw_watchdog_init();
|
hw_watchdog_init();
|
||||||
#endif /* defined(CONFIG_HW_WATCHDOG) */
|
#endif /* defined(CONFIG_HW_WATCHDOG) */
|
||||||
i2c_set_bus_num(0);
|
if (siemens_ee_setup() < 0)
|
||||||
if (read_eeprom() < 0)
|
|
||||||
puts("Could not get board ID.\n");
|
puts("Could not get board ID.\n");
|
||||||
#ifdef CONFIG_MACH_TYPE
|
#ifdef CONFIG_MACH_TYPE
|
||||||
gd->bd->bi_arch_number = CONFIG_MACH_TYPE;
|
gd->bd->bi_arch_number = CONFIG_MACH_TYPE;
|
||||||
|
@ -88,15 +72,11 @@ int board_init(void)
|
||||||
gd->bd->bi_boot_params = CFG_SYS_SDRAM_BASE + 0x100;
|
gd->bd->bi_boot_params = CFG_SYS_SDRAM_BASE + 0x100;
|
||||||
|
|
||||||
#ifdef CONFIG_FACTORYSET
|
#ifdef CONFIG_FACTORYSET
|
||||||
factoryset_read_eeprom(FACTORYSET_EEPROM_ADDR);
|
factoryset_read_eeprom(SIEMENS_EE_I2C_ADDR);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
gpmc_init();
|
gpmc_init();
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(NAND_CS_INIT)
|
|
||||||
board_nand_cs_init();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif /* #ifndef CONFIG_SPL_BUILD */
|
#endif /* #ifndef CONFIG_SPL_BUILD */
|
39
board/siemens/common/board_am335x.h
Normal file
39
board/siemens/common/board_am335x.h
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||||
|
/*
|
||||||
|
* Board definitions for draco products
|
||||||
|
*
|
||||||
|
* (C) Copyright 2013 Siemens Schweiz AG
|
||||||
|
* (C) Heiko Schocher, DENX Software Engineering, hs@denx.de.
|
||||||
|
*
|
||||||
|
* Based on:
|
||||||
|
* TI AM335x boards information header
|
||||||
|
* u-boot:/board/ti/am335x/board.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011, Texas Instruments, Incorporated - http://www.ti.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _BOARD_AM335X_H_
|
||||||
|
#define _BOARD_AM335X_H_
|
||||||
|
|
||||||
|
#include "eeprom.h"
|
||||||
|
|
||||||
|
/* Common functions with product specific implementation */
|
||||||
|
void spl_draco_board_init(void);
|
||||||
|
void draco_init_ddr(void);
|
||||||
|
int draco_read_eeprom(void);
|
||||||
|
|
||||||
|
#ifdef CONFIG_SPL_BUILD
|
||||||
|
/* Mux for init: uart?, i2c0 to read the main EEPROM */
|
||||||
|
void enable_uart0_pin_mux(void);
|
||||||
|
void enable_uart1_pin_mux(void);
|
||||||
|
void enable_uart2_pin_mux(void);
|
||||||
|
void enable_uart3_pin_mux(void);
|
||||||
|
void enable_uart4_pin_mux(void);
|
||||||
|
void enable_uart5_pin_mux(void);
|
||||||
|
void enable_i2c0_pin_mux(void);
|
||||||
|
|
||||||
|
/* Main mux function to enable other pinmux required on the board */
|
||||||
|
void enable_board_pin_mux(void);
|
||||||
|
#endif /* CONFIG_SPL_BUILD */
|
||||||
|
|
||||||
|
#endif /* _BOARD_AM335X_H_ */
|
52
board/siemens/common/eeprom.c
Normal file
52
board/siemens/common/eeprom.c
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* Read EEPROM data
|
||||||
|
* (C) Copyright 2024 Siemens AG
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <dm/uclass.h>
|
||||||
|
#include <i2c.h>
|
||||||
|
#include "eeprom.h"
|
||||||
|
|
||||||
|
#if CONFIG_IS_ENABLED(DM_I2C)
|
||||||
|
static struct udevice *i2c_dev;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Probe I2C and set-up EEPROM */
|
||||||
|
int siemens_ee_setup(void)
|
||||||
|
{
|
||||||
|
#if CONFIG_IS_ENABLED(DM_I2C)
|
||||||
|
struct udevice *bus;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = uclass_get_device_by_seq(UCLASS_I2C, SIEMENS_EE_I2C_BUS, &bus);
|
||||||
|
if (ret)
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
ret = dm_i2c_probe(bus, SIEMENS_EE_I2C_ADDR, 0, &i2c_dev);
|
||||||
|
if (ret)
|
||||||
|
goto err;
|
||||||
|
if (i2c_set_chip_offset_len(i2c_dev, 2))
|
||||||
|
goto err;
|
||||||
|
#else
|
||||||
|
i2c_set_bus_num(SIEMENS_EE_I2C_BUS);
|
||||||
|
if (i2c_probe(SIEMENS_EE_I2C_ADDR))
|
||||||
|
goto err;
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
err:
|
||||||
|
printf("Could not probe the EEPROM; something fundamentally wrong on the I2C bus.\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Read data from EEPROM */
|
||||||
|
int siemens_ee_read_data(uint address, uchar *buffer, int len)
|
||||||
|
{
|
||||||
|
#if CONFIG_IS_ENABLED(DM_I2C)
|
||||||
|
return dm_i2c_read(i2c_dev, address, buffer, len);
|
||||||
|
#else
|
||||||
|
return i2c_read(SIEMENS_EE_I2C_ADDR, address, 2, buffer, len);
|
||||||
|
#endif
|
||||||
|
}
|
24
board/siemens/common/eeprom.h
Normal file
24
board/siemens/common/eeprom.h
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||||
|
/*
|
||||||
|
* Copyright Siemens AG 2023
|
||||||
|
*
|
||||||
|
* Common board definitions for siemens boards
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMMON_EEPROM_H_
|
||||||
|
#define _COMMON_EEPROM_H_
|
||||||
|
|
||||||
|
/* EEPROM @ I2C */
|
||||||
|
#define SIEMENS_EE_I2C_BUS 0
|
||||||
|
#define SIEMENS_EE_I2C_ADDR 0x50
|
||||||
|
|
||||||
|
/* EEPROM mapping */
|
||||||
|
#define SIEMENS_EE_ADDR_NAND_GEO 0x80
|
||||||
|
#define SIEMENS_EE_ADDR_DDR3 0x90
|
||||||
|
#define SIEMENS_EE_ADDR_CHIP 0x120
|
||||||
|
#define SIEMENS_EE_ADDR_FACTORYSET 0x400
|
||||||
|
|
||||||
|
int siemens_ee_setup(void);
|
||||||
|
int siemens_ee_read_data(uint address, uchar *buffer, int len);
|
||||||
|
|
||||||
|
#endif /* _COMMON_EEPROM_H_ */
|
|
@ -7,26 +7,18 @@
|
||||||
|
|
||||||
#if !defined(CONFIG_SPL_BUILD)
|
#if !defined(CONFIG_SPL_BUILD)
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <env.h>
|
#include <env.h>
|
||||||
#include <dm.h>
|
#include <g_dnl.h>
|
||||||
#include <env_internal.h>
|
#include <net.h>
|
||||||
#include <i2c.h>
|
|
||||||
#include <log.h>
|
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#if !CONFIG_IS_ENABLED(TARGET_GIEDI) && !CONFIG_IS_ENABLED(TARGET_DENEB)
|
#if CONFIG_IS_ENABLED(AM33XX)
|
||||||
#include <asm/arch/cpu.h>
|
#include <asm/arch/cpu.h>
|
||||||
#endif
|
#endif
|
||||||
#include <asm/arch/sys_proto.h>
|
#include "eeprom.h"
|
||||||
#include <asm/unaligned.h>
|
|
||||||
#include <net.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <g_dnl.h>
|
|
||||||
#include "factoryset.h"
|
#include "factoryset.h"
|
||||||
|
|
||||||
#define EEPR_PG_SZ 0x80
|
#define EEPR_PG_SZ 0x80
|
||||||
#define EEPROM_FATORYSET_OFFSET 0x400
|
#define OFF_PG (SIEMENS_EE_ADDR_FACTORYSET / EEPR_PG_SZ)
|
||||||
#define OFF_PG EEPROM_FATORYSET_OFFSET/EEPR_PG_SZ
|
|
||||||
|
|
||||||
/* Global variable that contains necessary information from FactorySet */
|
/* Global variable that contains necessary information from FactorySet */
|
||||||
struct factorysetcontainer factory_dat;
|
struct factorysetcontainer factory_dat;
|
||||||
|
@ -148,40 +140,15 @@ int factoryset_read_eeprom(int i2c_addr)
|
||||||
int i, pages = 0, size = 0;
|
int i, pages = 0, size = 0;
|
||||||
unsigned char eeprom_buf[0x3c00], hdr[4], buf[MAX_STRING_LENGTH];
|
unsigned char eeprom_buf[0x3c00], hdr[4], buf[MAX_STRING_LENGTH];
|
||||||
unsigned char *cp, *cp1;
|
unsigned char *cp, *cp1;
|
||||||
#if CONFIG_IS_ENABLED(DM_I2C)
|
|
||||||
struct udevice *bus, *dev;
|
|
||||||
int ret;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CONFIG_DFU_OVER_USB)
|
#if defined(CONFIG_DFU_OVER_USB)
|
||||||
factory_dat.usb_vendor_id = CONFIG_USB_GADGET_VENDOR_NUM;
|
factory_dat.usb_vendor_id = CONFIG_USB_GADGET_VENDOR_NUM;
|
||||||
factory_dat.usb_product_id = CONFIG_USB_GADGET_PRODUCT_NUM;
|
factory_dat.usb_product_id = CONFIG_USB_GADGET_PRODUCT_NUM;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(DM_I2C)
|
if (siemens_ee_read_data(SIEMENS_EE_ADDR_FACTORYSET, hdr, sizeof(hdr)))
|
||||||
ret = uclass_get_device_by_seq(UCLASS_I2C, EEPROM_I2C_BUS, &bus);
|
|
||||||
if (ret)
|
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
ret = dm_i2c_probe(bus, i2c_addr, 0, &dev);
|
|
||||||
if (ret)
|
|
||||||
goto err;
|
|
||||||
|
|
||||||
ret = i2c_set_chip_offset_len(dev, 2);
|
|
||||||
if (ret)
|
|
||||||
goto err;
|
|
||||||
|
|
||||||
ret = dm_i2c_read(dev, EEPROM_FATORYSET_OFFSET, hdr, sizeof(hdr));
|
|
||||||
if (ret)
|
|
||||||
goto err;
|
|
||||||
#else
|
|
||||||
if (i2c_probe(i2c_addr))
|
|
||||||
goto err;
|
|
||||||
|
|
||||||
if (i2c_read(i2c_addr, EEPROM_FATORYSET_OFFSET, 2, hdr, sizeof(hdr)))
|
|
||||||
goto err;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if ((hdr[0] != 0x99) || (hdr[1] != 0x80)) {
|
if ((hdr[0] != 0x99) || (hdr[1] != 0x80)) {
|
||||||
printf("FactorySet is not right in eeprom.\n");
|
printf("FactorySet is not right in eeprom.\n");
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -201,33 +168,16 @@ int factoryset_read_eeprom(int i2c_addr)
|
||||||
* data after every time we got a record from eeprom
|
* data after every time we got a record from eeprom
|
||||||
*/
|
*/
|
||||||
debug("Read eeprom page :\n");
|
debug("Read eeprom page :\n");
|
||||||
for (i = 0; i < pages; i++) {
|
for (i = 0; i < pages; i++)
|
||||||
#if CONFIG_IS_ENABLED(DM_I2C)
|
if (siemens_ee_read_data((OFF_PG + i) * EEPR_PG_SZ,
|
||||||
ret = dm_i2c_read(dev, (OFF_PG + i) * EEPR_PG_SZ,
|
eeprom_buf + (i * EEPR_PG_SZ), EEPR_PG_SZ))
|
||||||
eeprom_buf + (i * EEPR_PG_SZ), EEPR_PG_SZ);
|
|
||||||
if (ret)
|
|
||||||
goto err;
|
goto err;
|
||||||
#else
|
|
||||||
if (i2c_read(i2c_addr, (OFF_PG + i) * EEPR_PG_SZ, 2,
|
|
||||||
eeprom_buf + (i * EEPR_PG_SZ), EEPR_PG_SZ))
|
|
||||||
goto err;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size % EEPR_PG_SZ) {
|
if (size % EEPR_PG_SZ)
|
||||||
#if CONFIG_IS_ENABLED(DM_I2C)
|
if (siemens_ee_read_data((OFF_PG + pages) * EEPR_PG_SZ,
|
||||||
ret = dm_i2c_read(dev, (OFF_PG + pages) * EEPR_PG_SZ,
|
eeprom_buf + (pages * EEPR_PG_SZ),
|
||||||
eeprom_buf + (pages * EEPR_PG_SZ),
|
size % EEPR_PG_SZ))
|
||||||
size % EEPR_PG_SZ);
|
|
||||||
if (ret)
|
|
||||||
goto err;
|
goto err;
|
||||||
#else
|
|
||||||
if (i2c_read(i2c_addr, (OFF_PG + pages) * EEPR_PG_SZ, 2,
|
|
||||||
eeprom_buf + (pages * EEPR_PG_SZ),
|
|
||||||
(size % EEPR_PG_SZ)))
|
|
||||||
goto err;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/* we do below just for eeprom align */
|
/* we do below just for eeprom align */
|
||||||
for (i = 0; i < size; i++)
|
for (i = 0; i < size; i++)
|
||||||
|
@ -247,11 +197,10 @@ int factoryset_read_eeprom(int i2c_addr)
|
||||||
cp1 += 3;
|
cp1 += 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(TARGET_GIEDI) || CONFIG_IS_ENABLED(TARGET_DENEB)
|
#if CONFIG_IS_ENABLED(IMX8)
|
||||||
/* get mac address for WLAN */
|
/* get mac address for WLAN */
|
||||||
ret = get_factory_record_val(cp, size, (uchar *)"WLAN1", (uchar *)"mac",
|
if (get_factory_record_val(cp, size, (uchar *)"WLAN1", (uchar *)"mac",
|
||||||
buf, MAX_STRING_LENGTH);
|
buf, MAX_STRING_LENGTH) > 0) {
|
||||||
if (ret > 0) {
|
|
||||||
cp1 = buf;
|
cp1 = buf;
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
factory_dat.mac_wlan[i] = hextoul((char *)cp1, NULL);
|
factory_dat.mac_wlan[i] = hextoul((char *)cp1, NULL);
|
||||||
|
@ -355,7 +304,7 @@ static int factoryset_mac_env_set(void)
|
||||||
|
|
||||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(TARGET_GIEDI) || CONFIG_IS_ENABLED(TARGET_DENEB)
|
#if CONFIG_IS_ENABLED(IMX8)
|
||||||
eth_env_set_enetaddr("eth1addr", mac_addr);
|
eth_env_set_enetaddr("eth1addr", mac_addr);
|
||||||
|
|
||||||
/* wlan mac */
|
/* wlan mac */
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
struct factorysetcontainer {
|
struct factorysetcontainer {
|
||||||
uchar mac[6];
|
uchar mac[6];
|
||||||
#if CONFIG_IS_ENABLED(TARGET_GIEDI) || CONFIG_IS_ENABLED(TARGET_DENEB)
|
#if CONFIG_IS_ENABLED(IMX8)
|
||||||
uchar mac_wlan[6];
|
uchar mac_wlan[6];
|
||||||
#endif
|
#endif
|
||||||
int usb_vendor_id;
|
int usb_vendor_id;
|
||||||
|
|
|
@ -44,6 +44,4 @@ config SYS_SOC
|
||||||
config SYS_CONFIG_NAME
|
config SYS_CONFIG_NAME
|
||||||
default "draco-etamin"
|
default "draco-etamin"
|
||||||
|
|
||||||
config NAND_CS_INIT
|
|
||||||
def_bool y
|
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -14,6 +14,8 @@ obj-y := mux.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
obj-y += board.o
|
obj-y += board.o
|
||||||
|
obj-y += ../common/board_am335x.o
|
||||||
|
obj-y += ../common/eeprom.o
|
||||||
ifndef CONFIG_SPL_BUILD
|
ifndef CONFIG_SPL_BUILD
|
||||||
obj-y += ../common/factoryset.o
|
obj-y += ../common/factoryset.o
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -12,33 +12,21 @@
|
||||||
* Copyright (C) 2011, Texas Instruments, Incorporated - https://www.ti.com/
|
* Copyright (C) 2011, Texas Instruments, Incorporated - https://www.ti.com/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <command.h>
|
#include <command.h>
|
||||||
#include <env.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <init.h>
|
|
||||||
#include <net.h>
|
|
||||||
#include <spl.h>
|
|
||||||
#include <asm/arch/cpu.h>
|
|
||||||
#include <asm/arch/hardware.h>
|
|
||||||
#include <asm/arch/omap.h>
|
|
||||||
#include <asm/arch/ddr_defs.h>
|
|
||||||
#include <asm/arch/clock.h>
|
|
||||||
#include <asm/arch/gpio.h>
|
|
||||||
#include <asm/arch/mmc_host_def.h>
|
|
||||||
#include <asm/arch/sys_proto.h>
|
|
||||||
#include <asm/arch/mem.h>
|
|
||||||
#include <asm/io.h>
|
|
||||||
#include <asm/emif.h>
|
|
||||||
#include <asm/gpio.h>
|
|
||||||
#include <i2c.h>
|
|
||||||
#include <miiphy.h>
|
|
||||||
#include <cpsw.h>
|
#include <cpsw.h>
|
||||||
#include <watchdog.h>
|
#include <env.h>
|
||||||
|
#include <init.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include "board.h"
|
|
||||||
#include "../common/factoryset.h"
|
|
||||||
#include <nand.h>
|
#include <nand.h>
|
||||||
|
#include <asm/arch/clock.h>
|
||||||
|
#include <asm/arch/ddr_defs.h>
|
||||||
|
#include <asm/arch/mem.h>
|
||||||
|
#include <asm/arch/sys_proto.h>
|
||||||
|
#include <asm/gpio.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
#include "board.h"
|
||||||
|
#include "../common/eeprom.h"
|
||||||
|
#include "../common/factoryset.h"
|
||||||
|
|
||||||
#ifdef CONFIG_SPL_BUILD
|
#ifdef CONFIG_SPL_BUILD
|
||||||
static struct draco_baseboard_id __section(".data") settings;
|
static struct draco_baseboard_id __section(".data") settings;
|
||||||
|
@ -132,17 +120,13 @@ struct am335x_nand_geometry {
|
||||||
u8 nand_bus;
|
u8 nand_bus;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define EEPROM_ADDR 0x50
|
|
||||||
#define EEPROM_ADDR_DDR3 0x90
|
|
||||||
#define EEPROM_ADDR_CHIP 0x120
|
|
||||||
|
|
||||||
static int draco_read_nand_geometry(void)
|
static int draco_read_nand_geometry(void)
|
||||||
{
|
{
|
||||||
struct am335x_nand_geometry geo;
|
struct am335x_nand_geometry geo;
|
||||||
|
|
||||||
/* Read NAND geometry */
|
/* Read NAND geometry */
|
||||||
if (i2c_read(EEPROM_ADDR, 0x80, 2,
|
if (siemens_ee_read_data(SIEMENS_EE_ADDR_NAND_GEO, (uchar *)&geo,
|
||||||
(uchar *)&geo, sizeof(struct am335x_nand_geometry))) {
|
sizeof(struct am335x_nand_geometry))) {
|
||||||
printf("Could not read the NAND geomtery; something fundamentally wrong on the I2C bus.\n");
|
printf("Could not read the NAND geomtery; something fundamentally wrong on the I2C bus.\n");
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
@ -158,27 +142,21 @@ static int draco_read_nand_geometry(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_SPL_BUILD
|
||||||
/*
|
/*
|
||||||
* Read header information from EEPROM into global structure.
|
* Read header information from EEPROM into global structure.
|
||||||
*/
|
*/
|
||||||
static int read_eeprom(void)
|
int draco_read_eeprom(void)
|
||||||
{
|
{
|
||||||
/* Check if baseboard eeprom is available */
|
|
||||||
if (i2c_probe(EEPROM_ADDR)) {
|
|
||||||
printf("Could not probe the EEPROM; something fundamentally wrong on the I2C bus.\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SPL_BUILD
|
|
||||||
/* Read Siemens eeprom data (DDR3) */
|
/* Read Siemens eeprom data (DDR3) */
|
||||||
if (i2c_read(EEPROM_ADDR, EEPROM_ADDR_DDR3, 2,
|
if (siemens_ee_read_data(SIEMENS_EE_ADDR_DDR3, (uchar *)&settings.ddr3,
|
||||||
(uchar *)&settings.ddr3, sizeof(struct ddr3_data))) {
|
sizeof(struct ddr3_data))) {
|
||||||
printf("Could not read the EEPROM; something fundamentally wrong on the I2C bus.\nUse default DDR3 timings\n");
|
printf("Could not read the EEPROM; something fundamentally wrong on the I2C bus.\nUse default DDR3 timings\n");
|
||||||
set_default_ddr3_timings();
|
set_default_ddr3_timings();
|
||||||
}
|
}
|
||||||
/* Read Siemens eeprom data (CHIP) */
|
/* Read Siemens eeprom data (CHIP) */
|
||||||
if (i2c_read(EEPROM_ADDR, EEPROM_ADDR_CHIP, 2,
|
if (siemens_ee_read_data(SIEMENS_EE_ADDR_CHIP, (uchar *)&settings.chip,
|
||||||
(uchar *)&settings.chip, sizeof(settings.chip)))
|
sizeof(settings.chip)))
|
||||||
printf("Could not read chip settings\n");
|
printf("Could not read chip settings\n");
|
||||||
|
|
||||||
if (ddr3_default.magic == settings.ddr3.magic &&
|
if (ddr3_default.magic == settings.ddr3.magic &&
|
||||||
|
@ -202,12 +180,9 @@ static int read_eeprom(void)
|
||||||
print_ddr3_timings();
|
print_ddr3_timings();
|
||||||
|
|
||||||
return draco_read_nand_geometry();
|
return draco_read_nand_geometry();
|
||||||
#endif
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SPL_BUILD
|
void draco_init_ddr(void)
|
||||||
static void board_init_ddr(void)
|
|
||||||
{
|
{
|
||||||
struct emif_regs draco_ddr3_emif_reg_data = {
|
struct emif_regs draco_ddr3_emif_reg_data = {
|
||||||
.zq_config = 0x50074BE4,
|
.zq_config = 0x50074BE4,
|
||||||
|
@ -254,7 +229,7 @@ struct ctrl_ioregs draco_ddr3_ioregs = {
|
||||||
&draco_ddr3_cmd_ctrl_data, &draco_ddr3_emif_reg_data, 0);
|
&draco_ddr3_cmd_ctrl_data, &draco_ddr3_emif_reg_data, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void spl_siemens_board_init(void)
|
void spl_draco_board_init(void)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -369,31 +344,3 @@ U_BOOT_CMD(
|
||||||
);
|
);
|
||||||
#endif /* #if defined(CONFIG_DRIVER_TI_CPSW) */
|
#endif /* #if defined(CONFIG_DRIVER_TI_CPSW) */
|
||||||
#endif /* #if (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) */
|
#endif /* #if (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) */
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(NAND_CS_INIT)
|
|
||||||
#define ETAMIN_NAND_GPMC_CONFIG1 0x00000800
|
|
||||||
#define ETAMIN_NAND_GPMC_CONFIG2 0x001e1e00
|
|
||||||
#define ETAMIN_NAND_GPMC_CONFIG3 0x001e1e00
|
|
||||||
#define ETAMIN_NAND_GPMC_CONFIG4 0x16051807
|
|
||||||
#define ETAMIN_NAND_GPMC_CONFIG5 0x00151e1e
|
|
||||||
#define ETAMIN_NAND_GPMC_CONFIG6 0x16000f80
|
|
||||||
|
|
||||||
/* GPMC definitions for second nand cs1 */
|
|
||||||
static const u32 gpmc_nand_config[] = {
|
|
||||||
ETAMIN_NAND_GPMC_CONFIG1,
|
|
||||||
ETAMIN_NAND_GPMC_CONFIG2,
|
|
||||||
ETAMIN_NAND_GPMC_CONFIG3,
|
|
||||||
ETAMIN_NAND_GPMC_CONFIG4,
|
|
||||||
ETAMIN_NAND_GPMC_CONFIG5,
|
|
||||||
ETAMIN_NAND_GPMC_CONFIG6,
|
|
||||||
/*CONFIG7- computed as params */
|
|
||||||
};
|
|
||||||
|
|
||||||
static void board_nand_cs_init(void)
|
|
||||||
{
|
|
||||||
enable_gpmc_cs_config(gpmc_nand_config, &gpmc_cfg->cs[1],
|
|
||||||
0x18000000, GPMC_SIZE_16M);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "../common/board.c"
|
|
||||||
|
|
|
@ -1,19 +1,15 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||||
/*
|
/*
|
||||||
* board.h
|
* Board definitions for draco products
|
||||||
*
|
*
|
||||||
* (C) Copyright 2013 Siemens Schweiz AG
|
* (C) Copyright 2013 Siemens Schweiz AG
|
||||||
* (C) Heiko Schocher, DENX Software Engineering, hs@denx.de.
|
* (C) Heiko Schocher, DENX Software Engineering, hs@denx.de.
|
||||||
*
|
*
|
||||||
* Based on:
|
* TI am335x specifics moved to ../common/board_am335x.h
|
||||||
* TI AM335x boards information header
|
|
||||||
* u-boot:/board/ti/am335x/board.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2011, Texas Instruments, Incorporated - https://www.ti.com/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _BOARD_H_
|
#ifndef _BOARD_DRACO_H_
|
||||||
#define _BOARD_H_
|
#define _BOARD_DRACO_H_
|
||||||
|
|
||||||
#define PARGS(x) #x , /* Parameter Name */ \
|
#define PARGS(x) #x , /* Parameter Name */ \
|
||||||
settings.ddr3.x, /* EEPROM Value */ \
|
settings.ddr3.x, /* EEPROM Value */ \
|
||||||
|
@ -58,21 +54,4 @@ struct draco_baseboard_id {
|
||||||
struct chip_data chip;
|
struct chip_data chip;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
#endif /* _BOARD_DRACO_H_ */
|
||||||
* We have three pin mux functions that must exist. We must be able to enable
|
|
||||||
* uart0, for initial output and i2c0 to read the main EEPROM. We then have a
|
|
||||||
* main pinmux function that can be overridden to enable all other pinmux that
|
|
||||||
* is required on the board.
|
|
||||||
*/
|
|
||||||
void enable_uart0_pin_mux(void);
|
|
||||||
void enable_uart1_pin_mux(void);
|
|
||||||
void enable_uart2_pin_mux(void);
|
|
||||||
void enable_uart3_pin_mux(void);
|
|
||||||
void enable_uart4_pin_mux(void);
|
|
||||||
void enable_uart5_pin_mux(void);
|
|
||||||
void enable_i2c0_pin_mux(void);
|
|
||||||
void enable_board_pin_mux(void);
|
|
||||||
|
|
||||||
/* Forwared declaration, defined in common board.c */
|
|
||||||
void set_env_gpios(unsigned char state);
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -10,13 +10,11 @@
|
||||||
* Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
|
* Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/sys_proto.h>
|
#include <asm/arch/sys_proto.h>
|
||||||
#include <asm/arch/hardware.h>
|
#include <asm/arch/hardware.h>
|
||||||
#include <asm/arch/mux.h>
|
#include <asm/arch/mux.h>
|
||||||
#include <asm/io.h>
|
#include "eeprom.h"
|
||||||
#include <i2c.h>
|
|
||||||
#include "board.h"
|
|
||||||
|
|
||||||
static struct module_pin_mux uart0_pin_mux[] = {
|
static struct module_pin_mux uart0_pin_mux[] = {
|
||||||
{OFFSET(uart0_rxd), (MODE(0) | PULLUP_EN | RXACTIVE)}, /* UART0_RXD */
|
{OFFSET(uart0_rxd), (MODE(0) | PULLUP_EN | RXACTIVE)}, /* UART0_RXD */
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
PXM2 BOARD
|
PXM2 BOARD
|
||||||
M: Samuel Egli <samuel.egli@siemens.com>
|
M: Enrico Leto <enrico.leto@siemens.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: board/siemens/pxm2/
|
F: board/siemens/pxm2/
|
||||||
F: include/configs/pxm2.h
|
F: include/configs/pxm2.h
|
||||||
|
|
|
@ -14,6 +14,8 @@ obj-y := mux.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
obj-y += board.o
|
obj-y += board.o
|
||||||
|
obj-y += ../common/board_am335x.o
|
||||||
|
obj-y += ../common/eeprom.o
|
||||||
ifndef CONFIG_SPL_BUILD
|
ifndef CONFIG_SPL_BUILD
|
||||||
obj-y += ../common/factoryset.o
|
obj-y += ../common/factoryset.o
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -12,37 +12,24 @@
|
||||||
* Copyright (C) 2011, Texas Instruments, Incorporated - https://www.ti.com/
|
* Copyright (C) 2011, Texas Instruments, Incorporated - https://www.ti.com/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <env.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <init.h>
|
|
||||||
#include <log.h>
|
|
||||||
#include <malloc.h>
|
|
||||||
#include <net.h>
|
|
||||||
#include <spl.h>
|
|
||||||
#include <asm/arch/cpu.h>
|
|
||||||
#include <asm/arch/hardware.h>
|
|
||||||
#include <asm/arch/omap.h>
|
|
||||||
#include <asm/arch/ddr_defs.h>
|
|
||||||
#include <asm/arch/clock.h>
|
|
||||||
#include <asm/arch/gpio.h>
|
|
||||||
#include <asm/arch/mmc_host_def.h>
|
|
||||||
#include <asm/arch/sys_proto.h>
|
|
||||||
#include <asm/io.h>
|
|
||||||
#include <asm/emif.h>
|
|
||||||
#include <asm/gpio.h>
|
|
||||||
#include <i2c.h>
|
|
||||||
#include <miiphy.h>
|
|
||||||
#include <cpsw.h>
|
#include <cpsw.h>
|
||||||
#include <watchdog.h>
|
#include <env.h>
|
||||||
#include "board.h"
|
#include <i2c.h>
|
||||||
#include "../common/factoryset.h"
|
#include <init.h>
|
||||||
#include "pmic.h"
|
|
||||||
#include <nand.h>
|
#include <nand.h>
|
||||||
#include <bmp_layout.h>
|
#include <net.h>
|
||||||
|
#include <asm/arch/clock.h>
|
||||||
|
#include <asm/arch/ddr_defs.h>
|
||||||
|
#include <asm/arch/sys_proto.h>
|
||||||
|
#include <asm/gpio.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
#include "pmic.h"
|
||||||
|
#include "../common/board_am335x.h"
|
||||||
|
#include "../common/eeprom.h"
|
||||||
|
#include "../common/factoryset.h"
|
||||||
|
|
||||||
#ifdef CONFIG_SPL_BUILD
|
#ifdef CONFIG_SPL_BUILD
|
||||||
static void board_init_ddr(void)
|
void draco_init_ddr(void)
|
||||||
{
|
{
|
||||||
struct emif_regs pxm2_ddr3_emif_reg_data = {
|
struct emif_regs pxm2_ddr3_emif_reg_data = {
|
||||||
.sdram_config = 0x41805332,
|
.sdram_config = 0x41805332,
|
||||||
|
@ -134,7 +121,7 @@ int voltage_update(unsigned int module, unsigned char vddx_op_vol_sel)
|
||||||
const struct dpll_params dpll_mpu_pxm2 = {
|
const struct dpll_params dpll_mpu_pxm2 = {
|
||||||
720, OSC-1, 1, -1, -1, -1, -1};
|
720, OSC-1, 1, -1, -1, -1, -1};
|
||||||
|
|
||||||
void spl_siemens_board_init(void)
|
void spl_draco_board_init(void)
|
||||||
{
|
{
|
||||||
uchar buf[4];
|
uchar buf[4];
|
||||||
/*
|
/*
|
||||||
|
@ -160,14 +147,14 @@ void spl_siemens_board_init(void)
|
||||||
printf("voltage update failed\n");
|
printf("voltage update failed\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* if def CONFIG_SPL_BUILD */
|
|
||||||
|
|
||||||
int read_eeprom(void)
|
int draco_read_eeprom(void)
|
||||||
{
|
{
|
||||||
/* nothing ToDo here for this board */
|
/* nothing ToDo here for this board */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif /* if def CONFIG_SPL_BUILD */
|
||||||
|
|
||||||
#if (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) || \
|
#if (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) || \
|
||||||
(defined(CONFIG_SPL_ETH) && defined(CONFIG_SPL_BUILD))
|
(defined(CONFIG_SPL_ETH) && defined(CONFIG_SPL_BUILD))
|
||||||
|
@ -274,5 +261,3 @@ int board_late_init(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "../common/board.c"
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
||||||
/*
|
|
||||||
* board.h
|
|
||||||
*
|
|
||||||
* (C) Copyright 2013 Siemens Schweiz AG
|
|
||||||
* (C) Heiko Schocher, DENX Software Engineering, hs@denx.de.
|
|
||||||
*
|
|
||||||
* Based on:
|
|
||||||
* TI AM335x boards information header
|
|
||||||
* u-boot:/board/ti/am335x/board.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2011, Texas Instruments, Incorporated - https://www.ti.com/
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _BOARD_H_
|
|
||||||
#define _BOARD_H_
|
|
||||||
|
|
||||||
void enable_uart0_pin_mux(void);
|
|
||||||
void enable_i2c0_pin_mux(void);
|
|
||||||
void enable_board_pin_mux(void);
|
|
||||||
#endif
|
|
|
@ -11,13 +11,11 @@
|
||||||
* Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
|
* Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/sys_proto.h>
|
#include <asm/arch/sys_proto.h>
|
||||||
#include <asm/arch/hardware.h>
|
#include <asm/arch/hardware.h>
|
||||||
#include <asm/arch/mux.h>
|
#include <asm/arch/mux.h>
|
||||||
#include <asm/io.h>
|
#include "eeprom.h"
|
||||||
#include <i2c.h>
|
|
||||||
#include "board.h"
|
|
||||||
|
|
||||||
static struct module_pin_mux uart0_pin_mux[] = {
|
static struct module_pin_mux uart0_pin_mux[] = {
|
||||||
{OFFSET(uart0_rxd), (MODE(0) | PULLUP_EN | RXACTIVE)}, /* UART0_RXD */
|
{OFFSET(uart0_rxd), (MODE(0) | PULLUP_EN | RXACTIVE)}, /* UART0_RXD */
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
RUT BOARD
|
RUT BOARD
|
||||||
M: Samuel Egli <samuel.egli@siemens.com>
|
M: Enrico Leto <enrico.leto@siemens.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: board/siemens/rut/
|
F: board/siemens/rut/
|
||||||
F: include/configs/rut.h
|
F: include/configs/rut.h
|
||||||
|
|
|
@ -14,6 +14,8 @@ obj-y := mux.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
obj-y += board.o
|
obj-y += board.o
|
||||||
|
obj-y += ../common/board_am335x.o
|
||||||
|
obj-y += ../common/eeprom.o
|
||||||
ifndef CONFIG_SPL_BUILD
|
ifndef CONFIG_SPL_BUILD
|
||||||
obj-y += ../common/factoryset.o
|
obj-y += ../common/factoryset.o
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -10,44 +10,30 @@
|
||||||
* Copyright (C) 2011, Texas Instruments, Incorporated - https://www.ti.com/
|
* Copyright (C) 2011, Texas Instruments, Incorporated - https://www.ti.com/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <env.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <init.h>
|
|
||||||
#include <malloc.h>
|
|
||||||
#include <net.h>
|
|
||||||
#include <spi.h>
|
|
||||||
#include <spl.h>
|
|
||||||
#include <asm/arch/cpu.h>
|
|
||||||
#include <asm/arch/hardware.h>
|
|
||||||
#include <asm/arch/omap.h>
|
|
||||||
#include <asm/arch/ddr_defs.h>
|
|
||||||
#include <asm/arch/clock.h>
|
|
||||||
#include <asm/arch/gpio.h>
|
|
||||||
#include <asm/arch/mmc_host_def.h>
|
|
||||||
#include <asm/arch/sys_proto.h>
|
|
||||||
#include <asm/io.h>
|
|
||||||
#include <asm/emif.h>
|
|
||||||
#include <asm/gpio.h>
|
|
||||||
#include <i2c.h>
|
|
||||||
#include <miiphy.h>
|
|
||||||
#include <cpsw.h>
|
#include <cpsw.h>
|
||||||
#include <video.h>
|
#include <env.h>
|
||||||
#include <watchdog.h>
|
#include <init.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include "board.h"
|
#include <nand.h>
|
||||||
|
#include <asm/arch/clock.h>
|
||||||
|
#include <asm/arch/ddr_defs.h>
|
||||||
|
#include <asm/arch/sys_proto.h>
|
||||||
|
#include <asm/gpio.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
#include "../common/board_am335x.h"
|
||||||
|
#include "../common/eeprom.h"
|
||||||
#include "../common/factoryset.h"
|
#include "../common/factoryset.h"
|
||||||
|
|
||||||
|
#ifdef CONFIG_SPL_BUILD
|
||||||
/*
|
/*
|
||||||
* Read header information from EEPROM into global structure.
|
* Read header information from EEPROM into global structure.
|
||||||
*/
|
*/
|
||||||
static int read_eeprom(void)
|
int draco_read_eeprom(void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SPL_BUILD
|
void draco_init_ddr(void)
|
||||||
static void board_init_ddr(void)
|
|
||||||
{
|
{
|
||||||
struct emif_regs rut_ddr3_emif_reg_data = {
|
struct emif_regs rut_ddr3_emif_reg_data = {
|
||||||
.sdram_config = 0x61C04AB2,
|
.sdram_config = 0x61C04AB2,
|
||||||
|
@ -124,7 +110,7 @@ err:
|
||||||
#define REQUEST_AND_PULSE_RESET(N) \
|
#define REQUEST_AND_PULSE_RESET(N) \
|
||||||
request_and_pulse_reset(N, #N);
|
request_and_pulse_reset(N, #N);
|
||||||
|
|
||||||
static void spl_siemens_board_init(void)
|
void spl_draco_board_init(void)
|
||||||
{
|
{
|
||||||
REQUEST_AND_PULSE_RESET(ETH_PHY_RESET_GPIO);
|
REQUEST_AND_PULSE_RESET(ETH_PHY_RESET_GPIO);
|
||||||
REQUEST_AND_PULSE_RESET(MAXTOUCH_RESET_GPIO);
|
REQUEST_AND_PULSE_RESET(MAXTOUCH_RESET_GPIO);
|
||||||
|
@ -244,5 +230,3 @@ int board_late_init(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "../common/board.c"
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
||||||
/*
|
|
||||||
* board.h
|
|
||||||
*
|
|
||||||
* (C) Copyright 2013 Siemens Schweiz AG
|
|
||||||
* (C) Heiko Schocher, DENX Software Engineering, hs@denx.de.
|
|
||||||
*
|
|
||||||
* Based on:
|
|
||||||
* TI AM335x boards information header
|
|
||||||
* u-boot:/board/ti/am335x/board.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2011, Texas Instruments, Incorporated - https://www.ti.com/
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _BOARD_H_
|
|
||||||
#define _BOARD_H_
|
|
||||||
|
|
||||||
void enable_uart0_pin_mux(void);
|
|
||||||
void enable_i2c0_pin_mux(void);
|
|
||||||
void enable_board_pin_mux(void);
|
|
||||||
#endif
|
|
|
@ -11,12 +11,10 @@
|
||||||
* Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
|
* Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/sys_proto.h>
|
#include <asm/arch/sys_proto.h>
|
||||||
#include <asm/arch/hardware.h>
|
#include <asm/arch/hardware.h>
|
||||||
#include <asm/arch/mux.h>
|
#include <asm/arch/mux.h>
|
||||||
#include <asm/io.h>
|
|
||||||
#include <i2c.h>
|
|
||||||
|
|
||||||
static struct module_pin_mux uart0_pin_mux[] = {
|
static struct module_pin_mux uart0_pin_mux[] = {
|
||||||
{OFFSET(uart0_rxd), (MODE(0) | PULLUDDIS | RXACTIVE)}, /* UART0_RXD */
|
{OFFSET(uart0_rxd), (MODE(0) | PULLUDDIS | RXACTIVE)}, /* UART0_RXD */
|
||||||
|
|
|
@ -86,8 +86,10 @@ CONFIG_CLK=y
|
||||||
CONFIG_CLK_TI_CTRL=y
|
CONFIG_CLK_TI_CTRL=y
|
||||||
CONFIG_DFU_NAND=y
|
CONFIG_DFU_NAND=y
|
||||||
CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
|
CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
|
||||||
CONFIG_SYS_I2C_LEGACY=y
|
CONFIG_DM_I2C=y
|
||||||
|
# CONFIG_SPL_DM_I2C is not set
|
||||||
CONFIG_SPL_SYS_I2C_LEGACY=y
|
CONFIG_SPL_SYS_I2C_LEGACY=y
|
||||||
|
CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
|
||||||
# CONFIG_SPL_DM_MMC is not set
|
# CONFIG_SPL_DM_MMC is not set
|
||||||
CONFIG_MMC_OMAP_HS=y
|
CONFIG_MMC_OMAP_HS=y
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
|
|
|
@ -84,8 +84,10 @@ CONFIG_CLK=y
|
||||||
CONFIG_CLK_TI_CTRL=y
|
CONFIG_CLK_TI_CTRL=y
|
||||||
CONFIG_DFU_NAND=y
|
CONFIG_DFU_NAND=y
|
||||||
CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
|
CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
|
||||||
CONFIG_SYS_I2C_LEGACY=y
|
CONFIG_DM_I2C=y
|
||||||
|
# CONFIG_SPL_DM_I2C is not set
|
||||||
CONFIG_SPL_SYS_I2C_LEGACY=y
|
CONFIG_SPL_SYS_I2C_LEGACY=y
|
||||||
|
CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
|
||||||
# CONFIG_MMC is not set
|
# CONFIG_MMC is not set
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_RAW_NAND=y
|
CONFIG_MTD_RAW_NAND=y
|
||||||
|
|
|
@ -84,8 +84,10 @@ CONFIG_CLK=y
|
||||||
CONFIG_CLK_TI_CTRL=y
|
CONFIG_CLK_TI_CTRL=y
|
||||||
CONFIG_DFU_NAND=y
|
CONFIG_DFU_NAND=y
|
||||||
CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
|
CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
|
||||||
CONFIG_SYS_I2C_LEGACY=y
|
CONFIG_DM_I2C=y
|
||||||
|
# CONFIG_SPL_DM_I2C is not set
|
||||||
CONFIG_SPL_SYS_I2C_LEGACY=y
|
CONFIG_SPL_SYS_I2C_LEGACY=y
|
||||||
|
CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
|
||||||
# CONFIG_MMC is not set
|
# CONFIG_MMC is not set
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_RAW_NAND=y
|
CONFIG_MTD_RAW_NAND=y
|
||||||
|
|
|
@ -69,9 +69,6 @@
|
||||||
/* Physical Memory Map */
|
/* Physical Memory Map */
|
||||||
#define CFG_MAX_RAM_BANK_SIZE (1024 << 20) /* 1GB */
|
#define CFG_MAX_RAM_BANK_SIZE (1024 << 20) /* 1GB */
|
||||||
|
|
||||||
#define EEPROM_ADDR_DDR3 0x90
|
|
||||||
#define EEPROM_ADDR_CHIP 0x120
|
|
||||||
|
|
||||||
/* nedded by compliance test in read mode */
|
/* nedded by compliance test in read mode */
|
||||||
|
|
||||||
#undef COMMON_ENV_DFU_ARGS
|
#undef COMMON_ENV_DFU_ARGS
|
||||||
|
|
|
@ -34,9 +34,6 @@
|
||||||
/* Physical Memory Map */
|
/* Physical Memory Map */
|
||||||
#define CFG_MAX_RAM_BANK_SIZE (1024 << 20) /* 1GB */
|
#define CFG_MAX_RAM_BANK_SIZE (1024 << 20) /* 1GB */
|
||||||
|
|
||||||
#define EEPROM_ADDR_DDR3 0x90
|
|
||||||
#define EEPROM_ADDR_CHIP 0x120
|
|
||||||
|
|
||||||
/* Default env settings */
|
/* Default env settings */
|
||||||
#define CFG_EXTRA_ENV_SETTINGS \
|
#define CFG_EXTRA_ENV_SETTINGS \
|
||||||
"hostname=rastaban\0" \
|
"hostname=rastaban\0" \
|
||||||
|
|
|
@ -27,9 +27,6 @@
|
||||||
/* Physical Memory Map */
|
/* Physical Memory Map */
|
||||||
#define CFG_MAX_RAM_BANK_SIZE (1024 << 20) /* 1GB */
|
#define CFG_MAX_RAM_BANK_SIZE (1024 << 20) /* 1GB */
|
||||||
|
|
||||||
#define EEPROM_ADDR_DDR3 0x90
|
|
||||||
#define EEPROM_ADDR_CHIP 0x120
|
|
||||||
|
|
||||||
/* Default env settings */
|
/* Default env settings */
|
||||||
#define CFG_EXTRA_ENV_SETTINGS \
|
#define CFG_EXTRA_ENV_SETTINGS \
|
||||||
"hostname=thuban\0" \
|
"hostname=thuban\0" \
|
||||||
|
|
Loading…
Add table
Reference in a new issue