ADD: [hw16] added support for hw16 from separate branch
BugzId: 60637
This commit is contained in:
parent
109c8ec9f6
commit
16d45768e4
|
|
@ -374,16 +374,8 @@ config TARGET_AM335X_EVM
|
|||
select DM_GPIO
|
||||
select TI_I2C_BOARD_DETECT
|
||||
|
||||
config TARGET_AM335X_NETBIRD
|
||||
bool "Support am335x_netbird"
|
||||
select CPU_V7
|
||||
select SUPPORT_SPL
|
||||
select DM
|
||||
select DM_SERIAL
|
||||
select DM_GPIO
|
||||
|
||||
config TARGET_AM335X_NETBIRD_V2
|
||||
bool "Support am335x_netbird_v2"
|
||||
config TARGET_AM335X_NBHW16
|
||||
bool "Support am335x_nbhw16"
|
||||
select CPU_V7
|
||||
select SUPPORT_SPL
|
||||
select DM
|
||||
|
|
@ -918,8 +910,7 @@ source "board/hisilicon/hikey/Kconfig"
|
|||
source "board/imx31_phycore/Kconfig"
|
||||
source "board/isee/igep0033/Kconfig"
|
||||
source "board/mpl/vcma9/Kconfig"
|
||||
source "board/nm/netbird/Kconfig"
|
||||
source "board/nm/netbird_v2/Kconfig"
|
||||
source "board/nm/nbhw16/Kconfig"
|
||||
source "board/nm/nrhw20/Kconfig"
|
||||
source "board/nm/nmhw21/Kconfig"
|
||||
source "board/nm/nrhw22/Kconfig"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
if TARGET_AM335X_NETBIRD_V2
|
||||
if TARGET_AM335X_NBHW16
|
||||
|
||||
config SYS_BOARD
|
||||
default "netbird_v2"
|
||||
default "nbhw16"
|
||||
|
||||
config SYS_VENDOR
|
||||
default "nm"
|
||||
|
|
@ -10,7 +10,7 @@ config SYS_SOC
|
|||
default "am33xx"
|
||||
|
||||
config SYS_CONFIG_NAME
|
||||
default "am335x_netbird_v2"
|
||||
default "am335x_nbhw16"
|
||||
|
||||
config CONS_INDEX
|
||||
int "UART used for console"
|
||||
|
|
@ -10,4 +10,4 @@ ifeq ($(CONFIG_SKIP_LOWLEVEL_INIT),)
|
|||
obj-y := mux.o
|
||||
endif
|
||||
|
||||
obj-y += board.o ../common/bdparser.o ../common/board_descriptor.o
|
||||
obj-y += board.o ../common/bdparser.o ../common/board_descriptor.o shield.o shield_can.o shield_comio.o shield_gnsscan.o fileaccess.o
|
||||
|
|
@ -40,6 +40,7 @@
|
|||
#include "shield.h"
|
||||
#include "shield_can.h"
|
||||
#include "shield_comio.h"
|
||||
#include "shield_gnsscan.h"
|
||||
#include "fileaccess.h"
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
|
@ -82,6 +83,7 @@ static BD_Context bdctx[3]; /* The descriptor context */
|
|||
|
||||
#define SHIELD_COM_IO 0
|
||||
#define SHIELD_DUALCAN 1
|
||||
#define SHIELD_GNSSCAN 2
|
||||
|
||||
static int _bd_init(void)
|
||||
{
|
||||
|
|
@ -102,6 +104,19 @@ static int _bd_init(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static bool is_jtag_boot(uint32_t address)
|
||||
{
|
||||
char* jtag_token = (char*)address;
|
||||
|
||||
if (strcmp(jtag_token, "JTAGBOOT") == 0) {
|
||||
strcpy(jtag_token, "jtagboot");
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Read header information from EEPROM into global structure.
|
||||
*/
|
||||
|
|
@ -123,15 +138,15 @@ struct serial_device *default_serial_console(void)
|
|||
|
||||
#ifndef CONFIG_SKIP_LOWLEVEL_INIT
|
||||
|
||||
static const struct ddr_data ddr3_netbird_data = {
|
||||
static const struct ddr_data ddr3_data = {
|
||||
/* Ratios were optimized by DDR3 training software from TI */
|
||||
.datardsratio0 = 0x39,
|
||||
.datawdsratio0 = 0x3f,
|
||||
.datafwsratio0 = 0x98,
|
||||
.datawrsratio0 = 0x7d,
|
||||
.datardsratio0 = 0x39, /* 0x39 */
|
||||
.datawdsratio0 = 0x3f, /* 0x40 */ /* 3f */
|
||||
.datafwsratio0 = 0x98, /* 0x96 */ /* 98 */
|
||||
.datawrsratio0 = 0x7d, /* 0x7d */
|
||||
};
|
||||
|
||||
static const struct cmd_control ddr3_netbird_cmd_ctrl_data = {
|
||||
static const struct cmd_control ddr3_cmd_ctrl_data = {
|
||||
.cmd0csratio = MT41K256M16HA125E_RATIO,
|
||||
.cmd0iclkout = MT41K256M16HA125E_INVERT_CLKOUT,
|
||||
|
||||
|
|
@ -142,7 +157,7 @@ static const struct cmd_control ddr3_netbird_cmd_ctrl_data = {
|
|||
.cmd2iclkout = MT41K256M16HA125E_INVERT_CLKOUT,
|
||||
};
|
||||
|
||||
static struct emif_regs ddr3_netbird_emif_reg_data = {
|
||||
static struct emif_regs ddr3_emif_reg_data = {
|
||||
.sdram_config = MT41K256M16HA125E_EMIF_SDCFG,
|
||||
.ref_ctrl = 0x61A, /* 32ms > 85°C */
|
||||
.sdram_tim1 = 0x0AAAE51B,
|
||||
|
|
@ -172,7 +187,7 @@ int spl_start_uboot(void)
|
|||
#endif
|
||||
|
||||
#define OSC (V_OSCK/1000000)
|
||||
struct dpll_params dpll_ddr_nbhw16= {
|
||||
struct dpll_params dpll_ddr= {
|
||||
DDR3_CLOCK_FREQUENCY, OSC-1, 1, -1, -1, -1, -1};
|
||||
|
||||
void am33xx_spl_board_init(void)
|
||||
|
|
@ -201,12 +216,20 @@ void am33xx_spl_board_init(void)
|
|||
|
||||
if (read_eeprom() < 0)
|
||||
puts("Could not get board ID.\n");
|
||||
|
||||
/* Debugger can place marker at end of SRAM to stop boot here */
|
||||
if (is_jtag_boot(CONFIG_JTAG_MARKER_SPL))
|
||||
{
|
||||
puts("Detected JTAG boot, executing bkpt #0\n");
|
||||
|
||||
__asm__ __volatile__ ("bkpt #0");
|
||||
}
|
||||
}
|
||||
|
||||
const struct dpll_params *get_dpll_ddr_params(void)
|
||||
{
|
||||
dpll_ddr_nbhw16.n = (get_osclk() / 1000000) - 1;
|
||||
return &dpll_ddr_nbhw16;
|
||||
dpll_ddr.n = (get_osclk() / 1000000) - 1;
|
||||
return &dpll_ddr;
|
||||
}
|
||||
|
||||
void set_uart_mux_conf(void)
|
||||
|
|
@ -221,25 +244,59 @@ void set_mux_conf_regs(void)
|
|||
}
|
||||
|
||||
|
||||
const struct ctrl_ioregs ioregs_netbird = {
|
||||
.cm0ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
.cm1ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
.cm2ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
.dt0ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
.dt1ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
const struct ctrl_ioregs ioregs = {
|
||||
.cm0ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
.cm1ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
.cm2ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
.dt0ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
.dt1ioctl = MT41K256M16HA125E_IOCTRL_VALUE
|
||||
};
|
||||
|
||||
|
||||
void sdram_init(void)
|
||||
{
|
||||
config_ddr(DDR3_CLOCK_FREQUENCY, &ioregs_netbird,
|
||||
&ddr3_netbird_data,
|
||||
&ddr3_netbird_cmd_ctrl_data,
|
||||
&ddr3_netbird_emif_reg_data, 0);
|
||||
config_ddr(DDR3_CLOCK_FREQUENCY, &ioregs,
|
||||
&ddr3_data,
|
||||
&ddr3_cmd_ctrl_data,
|
||||
&ddr3_emif_reg_data, 0);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_SKIP_LOWLEVEL_INIT */
|
||||
|
||||
#if !defined(CONFIG_SPL_BUILD)
|
||||
|
||||
/*
|
||||
* Override for Ethernet link timeout definition,
|
||||
* with option to specify via environment variable linktimeout
|
||||
*/
|
||||
int eth_phy_timeout(void)
|
||||
{
|
||||
const char* timeout_env = NULL;
|
||||
int timeout;
|
||||
|
||||
timeout = PHY_ANEG_DEFAULT_TIMEOUT;
|
||||
|
||||
/*
|
||||
* Check if timeout has been defined by environment.
|
||||
* Valid range: 1000..10000 milliseconds
|
||||
*/
|
||||
timeout_env = getenv("linktimeout");
|
||||
if (timeout_env != NULL) {
|
||||
timeout = simple_strtoul(timeout_env, NULL, 10);
|
||||
if (timeout == 0) {
|
||||
timeout = PHY_ANEG_DEFAULT_TIMEOUT;
|
||||
} else if (timeout < 1000) {
|
||||
timeout = 1000;
|
||||
} else if (timeout > 10000) {
|
||||
timeout = 10000;
|
||||
}
|
||||
}
|
||||
|
||||
return timeout;
|
||||
}
|
||||
|
||||
#endif /* !defined(CONFIG_SPL_BUILD) */
|
||||
|
||||
static void request_and_set_gpio(int gpio, char *name, int value)
|
||||
{
|
||||
int ret;
|
||||
|
|
@ -493,33 +550,50 @@ static void enable_wlan_clock(void)
|
|||
|
||||
void set_console(void)
|
||||
{
|
||||
char buf[8];
|
||||
char *defaultconsole = getenv("defaultconsole");
|
||||
const char *defaultconsole = getenv("defaultconsole");
|
||||
int shield_id = bd_get_shield(0);
|
||||
|
||||
/* Set default console to ttyS1 if not yet defined in env */
|
||||
if (defaultconsole == 0) {
|
||||
/* Use the default console */
|
||||
setenv("defaultconsole", "ttyS1");
|
||||
}
|
||||
|
||||
/* Don't allow changing to ttyS0 because ttyS0 is not available in the
|
||||
* kernel if no comio shield is available */
|
||||
if (shield_id != SHIELD_COM_IO) {
|
||||
return;
|
||||
}
|
||||
/*
|
||||
* Always use internal console for u-boot
|
||||
* as COM/IO shield is not ready at that time.
|
||||
* (Needs to be initialized first using the
|
||||
* shieldcmd that is run by bootcmd.)
|
||||
*/
|
||||
serial_set_console_index(1);
|
||||
|
||||
/* With comio shield the defaultconsole should be ttyS0 and not ttyS1 */
|
||||
setenv("defaultconsole", "ttyS0");
|
||||
#if defined(CONFIG_PRE_CONSOLE_BUFFER)
|
||||
serial_init(); /* serial communications setup */
|
||||
console_init_f(); /* stage 1 init of console */
|
||||
#endif
|
||||
|
||||
/* If consoldev is set take this as productive conosle instead of default console */
|
||||
if (read_file("/root/boot/consoledev", buf, 5) != 5) {
|
||||
puts("Invalid file consoledev\n");
|
||||
return;
|
||||
}
|
||||
if (shield_id == SHIELD_COM_IO) {
|
||||
char buf[20];
|
||||
|
||||
if (strstr(buf, "tty")==buf) {
|
||||
buf[5] = 0;
|
||||
setenv("defaultconsole", buf);
|
||||
/*
|
||||
* With COM/IO shield the defaultconsole for the kernel should
|
||||
* be ttyS0 (external port).
|
||||
* If consoledev file is present, take the tty defined in it as console
|
||||
*/
|
||||
setenv("defaultconsole", "ttyS0");
|
||||
|
||||
if (read_file("/root/boot/consoledev",buf, sizeof(buf)) > 3) {
|
||||
if (strstr(buf, "tty") == buf) {
|
||||
int i;
|
||||
buf[sizeof(buf)-1] = 0;
|
||||
for (i=0; i<sizeof(buf); i++) {
|
||||
if (buf[i] <= ' ') {
|
||||
buf[i] = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
setenv("defaultconsole", buf);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -558,6 +632,16 @@ static void check_fct(void)
|
|||
}
|
||||
}
|
||||
|
||||
static void check_jtag_boot(void)
|
||||
{
|
||||
if (is_jtag_boot(CONFIG_JTAG_MARKER_UBOOT)) {
|
||||
char *bootcmd = getenv("bootcmd");
|
||||
setenv ("bootcmd", "");
|
||||
/* Save original bootcmd in "bootcmd_orig" to allow manual boot */
|
||||
setenv ("bootcmd_orig", bootcmd);
|
||||
puts("Detected JTAG boot. Waiting on command line\n");
|
||||
}
|
||||
}
|
||||
|
||||
static void set_fdtshieldcmd(const char *fdt_cmd)
|
||||
{
|
||||
|
|
@ -578,7 +662,9 @@ static struct shield_command known_shield_commands[] = {
|
|||
"comio",
|
||||
"shield comio mode rs232",
|
||||
"fdt get value serial0 /aliases serial0;" \
|
||||
"fdt set $serial0 status okay",
|
||||
"fdt get value dio0 /aliases dio0;" \
|
||||
"fdt set $serial0 status okay;" \
|
||||
"fdt set $dio0 status okay;",
|
||||
comio_shield_init
|
||||
},
|
||||
{
|
||||
|
|
@ -591,6 +677,22 @@ static struct shield_command known_shield_commands[] = {
|
|||
"fdt set $can1 status okay;",
|
||||
can_shield_init
|
||||
},
|
||||
{
|
||||
SHIELD_GNSSCAN,
|
||||
"gnsscan",
|
||||
"shield gnsscan termination off",
|
||||
"fdt get value serial0 /aliases serial0;" \
|
||||
"fdt get value can1 /aliases d_can1;" \
|
||||
"fdt set $serial0 status okay;" \
|
||||
"fdt set $can1 status okay;" \
|
||||
/* fix uart0 pinctrl: */ \
|
||||
"fdt get value dt_path /aliases uart0_pins_gnss_can;" \
|
||||
"fdt get value dt_phandle $dt_path phandle;" \
|
||||
"fdt get value dt_path /aliases serial0;" \
|
||||
"fdt set $dt_path pinctrl-0 <$dt_phandle>;" \
|
||||
,
|
||||
gnsscan_shield_init
|
||||
},
|
||||
};
|
||||
|
||||
static const struct shield_command* get_shield_command(int shield_id)
|
||||
|
|
@ -650,7 +752,6 @@ static void shield_init(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOARD_LATE_INIT
|
||||
int board_late_init(void)
|
||||
{
|
||||
#if !defined(CONFIG_SPL_BUILD)
|
||||
|
|
@ -690,12 +791,11 @@ int board_late_init(void)
|
|||
shield_init();
|
||||
|
||||
check_fct();
|
||||
|
||||
check_jtag_boot();
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_DM_ETH
|
||||
|
||||
|
|
@ -67,7 +67,8 @@ static int do_shieldmode(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
|
|||
U_BOOT_CMD(
|
||||
shield, 6, 1, do_shieldmode,
|
||||
"Set the shield mode",
|
||||
"dualcan termination [on|off] [on|off]\n"
|
||||
"shield comio mode [rs232|rs485] termination [on|off]\n"
|
||||
"shield dualcan termination on|off on|off\n"
|
||||
"shield comio mode rs232|rs485 [termination on|off]\n"
|
||||
"shield gnsscan termination on|off\n"
|
||||
);
|
||||
|
||||
|
|
@ -0,0 +1,143 @@
|
|||
#undef DEBUG
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/arch/mux.h>
|
||||
|
||||
#include "shield.h"
|
||||
#include "board.h"
|
||||
|
||||
#define NETBIRD_GPIO_RST_SHIELD_N GPIO_TO_PIN(0, 27)
|
||||
#define NETBIRD_GPIO_EN_CAN_TERM_N GPIO_TO_PIN(0, 7)
|
||||
|
||||
|
||||
static int shield_slot_initialized = 0;
|
||||
|
||||
static struct module_pin_mux gnsscan_shield_netbird_pin_mux_final[] = {
|
||||
/* Leave UART0 unconfigured because we want to configure it as needed by linux (can/spi/uart/etc) */
|
||||
{OFFSET(uart0_rxd), (MODE(7) | PULLUDDIS | RXACTIVE)}, /* (E15) UART0_RXD */
|
||||
{OFFSET(uart0_txd), (MODE(7) | PULLUDDIS | RXACTIVE)}, /* (E16) UART0_TXD */
|
||||
{OFFSET(uart0_ctsn), (MODE(2) | PULLUDEN | PULLUP_EN)}, /* CAN1 tx */
|
||||
{OFFSET(uart0_rtsn), (MODE(2) | PULLUDDIS | RXACTIVE)}, /* CAN1 rx */
|
||||
{OFFSET(ecap0_in_pwm0_out), (MODE(7) | PULLUDEN | PULLUP_EN)}, /* EN_CAN1_TERM_N */
|
||||
{-1},
|
||||
};
|
||||
|
||||
static int request_gpios(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
debug("Shield configure gpios\n");
|
||||
ret = shield_gpio_request_as_input(NETBIRD_GPIO_RST_SHIELD_N, "shield-rst");
|
||||
if ((ret < 0))
|
||||
return -1;
|
||||
ret = shield_gpio_request_as_input(NETBIRD_GPIO_EN_CAN_TERM_N, "shield-can-term-n");
|
||||
if ((ret < 0))
|
||||
return -1;
|
||||
|
||||
shield_slot_initialized = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int configure_shieldmode(int mode)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (mode < 0 || mode > 1) {
|
||||
debug("Invalid shield mode %d\n", mode);
|
||||
return -1;
|
||||
}
|
||||
|
||||
debug("Shield type gnsscan\n");
|
||||
debug ("Set shield mode to %d\n", mode);
|
||||
|
||||
if (!shield_slot_initialized) {
|
||||
if (request_gpios()) {
|
||||
puts("Failed to request gpios\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
debug("Set final gnsscan shield muxing\n");
|
||||
configure_module_pin_mux(gnsscan_shield_netbird_pin_mux_final);
|
||||
|
||||
debug("Make sure shield module is in reset\n");
|
||||
ret = gpio_direction_output(NETBIRD_GPIO_RST_SHIELD_N, 0);
|
||||
if (ret < 0) {
|
||||
puts("Can not set shield-rst as output\n");
|
||||
return -1;
|
||||
}
|
||||
udelay(10);
|
||||
|
||||
debug("Set termination on/off\n");
|
||||
ret = gpio_direction_output(NETBIRD_GPIO_EN_CAN_TERM_N, mode);
|
||||
if (ret < 0) {
|
||||
puts("Can not set shield-can-term as output\n");
|
||||
return -1;
|
||||
}
|
||||
udelay(10);
|
||||
|
||||
debug("Take shield out of reset\n");
|
||||
gpio_set_value(NETBIRD_GPIO_RST_SHIELD_N, 1);
|
||||
udelay(10);
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static int get_termination(const char* termination)
|
||||
{
|
||||
if (strcmp("on", termination) == 0) {
|
||||
return 1;
|
||||
}
|
||||
else if (strcmp("off", termination) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
debug ("Invalid termination mode %s (falling back to off)", termination);
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int get_mode_from_args(char * const argv[], int argc)
|
||||
{
|
||||
#define CAN_PORTS 1
|
||||
int terminations[CAN_PORTS];
|
||||
int i;
|
||||
|
||||
assert(argc == (CAN_PORTS + 1));
|
||||
|
||||
if (strcmp ("termination", argv[0])) {
|
||||
debug("The only option for dualcan is terminations\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (i = 0; i < CAN_PORTS; i ++) {
|
||||
terminations[i] = get_termination(argv[i + 1]);
|
||||
if (terminations[i] < 0) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Termination is inverse */
|
||||
return (!terminations[0] << 0);
|
||||
}
|
||||
|
||||
static int set_shieldmode(char * const argv[], int argc)
|
||||
{
|
||||
if (argc != 2) {
|
||||
debug("Too few arguments for gnsscan\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return configure_shieldmode(get_mode_from_args(argv, argc));
|
||||
}
|
||||
|
||||
struct shield_t gnsscan_shield = {
|
||||
"gnsscan", set_shieldmode
|
||||
};
|
||||
|
||||
void gnsscan_shield_init(void)
|
||||
{
|
||||
shield_register(&gnsscan_shield);
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
#ifndef SHIELD_GNSSCAN_H
|
||||
#define SHIELD_GNSSCAN_H
|
||||
|
||||
int shield_gnsscan_init(void);
|
||||
int shield_gnscan_setmode(int mode);
|
||||
|
||||
void gnsscan_shield_init(void);
|
||||
|
||||
#endif // SHIELD_CAN_H
|
||||
|
|
@ -36,7 +36,7 @@ SECTIONS
|
|||
*(.__image_copy_start)
|
||||
*(.vectors)
|
||||
CPUDIR/start.o (.text*)
|
||||
board/nm/netbird/built-in.o (.text*)
|
||||
board/nm/nbhw16/built-in.o (.text*)
|
||||
*(.text*)
|
||||
}
|
||||
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
if TARGET_AM335X_NETBIRD
|
||||
|
||||
config SYS_BOARD
|
||||
default "netbird"
|
||||
|
||||
config SYS_VENDOR
|
||||
default "nm"
|
||||
|
||||
config SYS_SOC
|
||||
default "am33xx"
|
||||
|
||||
config SYS_CONFIG_NAME
|
||||
default "am335x_netbird"
|
||||
|
||||
config CONS_INDEX
|
||||
int "UART used for console"
|
||||
range 1 6
|
||||
default 1
|
||||
help
|
||||
The AM335x SoC has a total of 6 UARTs (UART0 to UART5 as referenced
|
||||
in documentation, etc) available to it. Depending on your specific
|
||||
board you may want something other than UART0 as for example the IDK
|
||||
uses UART3 so enter 4 here.
|
||||
|
||||
endif
|
||||
|
||||
|
|
@ -1,550 +0,0 @@
|
|||
/*
|
||||
* board.c
|
||||
*
|
||||
* Board functions for TI AM335X based boards
|
||||
*
|
||||
* Copyright (C) 2011, Texas Instruments, Incorporated - http://www.ti.com/
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <errno.h>
|
||||
#include <spl.h>
|
||||
#include <serial.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/clk_synthesizer.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 <power/tps65217.h>
|
||||
#include <power/tps65218.h>
|
||||
#include <power/tps65910.h>
|
||||
#include <environment.h>
|
||||
#include <watchdog.h>
|
||||
#include <environment.h>
|
||||
#include "../common/bdparser.h"
|
||||
#include "../common/board_descriptor.h"
|
||||
#include "board.h"
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
/* GPIO that controls power to DDR on EVM-SK */
|
||||
#define GPIO_TO_PIN(bank, gpio) (32 * (bank) + (gpio))
|
||||
#define GPIO_DDR_VTT_EN GPIO_TO_PIN(0, 7)
|
||||
#define ICE_GPIO_DDR_VTT_EN GPIO_TO_PIN(0, 18)
|
||||
#define GPIO_PR1_MII_CTRL GPIO_TO_PIN(3, 4)
|
||||
#define GPIO_MUX_MII_CTRL GPIO_TO_PIN(3, 10)
|
||||
#define GPIO_FET_SWITCH_CTRL GPIO_TO_PIN(0, 7)
|
||||
#define GPIO_PHY_RESET GPIO_TO_PIN(2, 5)
|
||||
|
||||
#define NETBIRD_GPIO_RST_PHY_N GPIO_TO_PIN(0, 16)
|
||||
#define NETBIRD_GPIO_PWR_GSM GPIO_TO_PIN(1, 22)
|
||||
#define NETBIRD_GPIO_RST_GSM GPIO_TO_PIN(1, 24)
|
||||
#define NETBIRD_GPIO_WLAN_EN GPIO_TO_PIN(3, 10)
|
||||
#define NETBIRD_GPIO_BT_EN GPIO_TO_PIN(3, 4)
|
||||
#define NETBIRD_GPIO_EN_GPS_ANT GPIO_TO_PIN(2, 24)
|
||||
#define NETBIRD_GPIO_LED_A GPIO_TO_PIN(1, 14)
|
||||
#define NETBIRD_GPIO_LED_B GPIO_TO_PIN(1, 15)
|
||||
#define NETBIRD_GPIO_RESET_BUTTON GPIO_TO_PIN(1, 13)
|
||||
|
||||
#define DDR3_CLOCK_FREQUENCY (400)
|
||||
|
||||
#if defined(CONFIG_SPL_BUILD) || \
|
||||
(defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_DM_ETH))
|
||||
static struct ctrl_dev *cdev = (struct ctrl_dev *)CTRL_DEVICE_BASE;
|
||||
#endif
|
||||
|
||||
#define BD_EEPROM_ADDR (0x50) /* CPU BD EEPROM (8kByte) is at 50 (A0) */
|
||||
#define BD_ADDRESS (0x0000) /* Board descriptor at beginning of EEPROM */
|
||||
#define PD_ADDRESS (0x0200) /* Product descriptor */
|
||||
#define PARTITION_ADDRESS (0x0600) /* Partition Table */
|
||||
|
||||
static BD_Context bdctx[3]; /* The descriptor context */
|
||||
|
||||
static int _bd_init(void)
|
||||
{
|
||||
if (bd_get_context(&bdctx[0], BD_EEPROM_ADDR, BD_ADDRESS) != 0) {
|
||||
printf("%s() no valid bd found\n", __func__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (bd_get_context(&bdctx[1], BD_EEPROM_ADDR, PD_ADDRESS) != 0) {
|
||||
printf("%s() no valid pd found (legacy support)\n", __func__);
|
||||
}
|
||||
|
||||
if (bd_get_context(&bdctx[2], BD_EEPROM_ADDR, PARTITION_ADDRESS) != 0) {
|
||||
printf("%s() no valid partition table found\n", __func__);
|
||||
}
|
||||
|
||||
bd_register_context_list(bdctx, ARRAY_SIZE(bdctx));
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Read header information from EEPROM into global structure.
|
||||
*/
|
||||
static inline int __maybe_unused read_eeprom(void)
|
||||
{
|
||||
return _bd_init();
|
||||
}
|
||||
|
||||
struct serial_device *default_serial_console(void)
|
||||
{
|
||||
return &eserial1_device;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_SKIP_LOWLEVEL_INIT
|
||||
|
||||
static const struct ddr_data ddr3_netbird_data = {
|
||||
/* Ratios were optimized by DDR3 training software from TI */
|
||||
.datardsratio0 = 0x37,
|
||||
.datawdsratio0 = 0x42,
|
||||
.datafwsratio0 = 0x98,
|
||||
.datawrsratio0 = 0x7a,
|
||||
};
|
||||
|
||||
static const struct cmd_control ddr3_netbird_cmd_ctrl_data = {
|
||||
.cmd0csratio = MT41K256M16HA125E_RATIO,
|
||||
.cmd0iclkout = MT41K256M16HA125E_INVERT_CLKOUT,
|
||||
|
||||
.cmd1csratio = MT41K256M16HA125E_RATIO,
|
||||
.cmd1iclkout = MT41K256M16HA125E_INVERT_CLKOUT,
|
||||
|
||||
.cmd2csratio = MT41K256M16HA125E_RATIO,
|
||||
.cmd2iclkout = MT41K256M16HA125E_INVERT_CLKOUT,
|
||||
};
|
||||
|
||||
static struct emif_regs ddr3_netbird_emif_reg_data = {
|
||||
.sdram_config = MT41K256M16HA125E_EMIF_SDCFG,
|
||||
.ref_ctrl = 0x61A, /* 32ms > 85°C */
|
||||
.sdram_tim1 = 0x0AAAE51B,
|
||||
.sdram_tim2 = 0x246B7FDA,
|
||||
.sdram_tim3 = 0x50FFE67F,
|
||||
.zq_config = MT41K256M16HA125E_ZQ_CFG,
|
||||
.emif_ddr_phy_ctlr_1 = MT41K256M16HA125E_EMIF_READ_LATENCY,
|
||||
};
|
||||
|
||||
|
||||
#ifdef CONFIG_SPL_OS_BOOT
|
||||
int spl_start_uboot(void)
|
||||
{
|
||||
/* break into full u-boot on 'c' */
|
||||
if (serial_tstc() && serial_getc() == 'c')
|
||||
return 1;
|
||||
|
||||
#ifdef CONFIG_SPL_ENV_SUPPORT
|
||||
env_init();
|
||||
env_relocate_spec();
|
||||
if (getenv_yesno("boot_os") != 1)
|
||||
return 1;
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#define OSC (V_OSCK/1000000)
|
||||
struct dpll_params dpll_ddr_nbhw16= {
|
||||
DDR3_CLOCK_FREQUENCY, OSC-1, 1, -1, -1, -1, -1};
|
||||
|
||||
void am33xx_spl_board_init(void)
|
||||
{
|
||||
/* Get the frequency */
|
||||
dpll_mpu_opp100.m = am335x_get_efuse_mpu_max_freq(cdev);
|
||||
|
||||
/* Set CPU speed to 600 MHZ */
|
||||
dpll_mpu_opp100.m = MPUPLL_M_600;
|
||||
|
||||
/* Set CORE Frequencies to OPP100 */
|
||||
do_setup_dpll(&dpll_core_regs, &dpll_core_opp100);
|
||||
|
||||
/* Clear th PFM Flag on DCDC4 */
|
||||
if (tps65218_reg_write(TPS65218_PROT_LEVEL_2, TPS65218_DCDC4, 0x00, 0x80)) {
|
||||
puts ("tps65218_reg_write failure\n");
|
||||
};
|
||||
|
||||
/* Set MPU Frequency to what we detected now that voltages are set */
|
||||
do_setup_dpll(&dpll_mpu_regs, &dpll_mpu_opp100);
|
||||
|
||||
if (read_eeprom() < 0)
|
||||
puts("Could not get board ID.\n");
|
||||
}
|
||||
|
||||
const struct dpll_params *get_dpll_ddr_params(void)
|
||||
{
|
||||
dpll_ddr_nbhw16.n = (get_osclk() / 1000000) - 1;
|
||||
return &dpll_ddr_nbhw16;
|
||||
}
|
||||
|
||||
void set_uart_mux_conf(void)
|
||||
{
|
||||
enable_uart0_pin_mux();
|
||||
}
|
||||
|
||||
void set_mux_conf_regs(void)
|
||||
{
|
||||
enable_board_pin_mux();
|
||||
}
|
||||
|
||||
|
||||
const struct ctrl_ioregs ioregs_netbird = {
|
||||
.cm0ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
.cm1ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
.cm2ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
.dt0ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
.dt1ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
|
||||
};
|
||||
|
||||
|
||||
void sdram_init(void)
|
||||
{
|
||||
config_ddr(DDR3_CLOCK_FREQUENCY, &ioregs_netbird,
|
||||
&ddr3_netbird_data,
|
||||
&ddr3_netbird_cmd_ctrl_data,
|
||||
&ddr3_netbird_emif_reg_data, 0);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_SKIP_LOWLEVEL_INIT */
|
||||
|
||||
static void request_and_set_gpio(int gpio, char *name, int value)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = gpio_request(gpio, name);
|
||||
if (ret < 0) {
|
||||
printf("%s: Unable to request %s\n", __func__, name);
|
||||
return;
|
||||
}
|
||||
|
||||
ret = gpio_direction_output(gpio, 0);
|
||||
if (ret < 0) {
|
||||
printf("%s: Unable to set %s as output\n", __func__, name);
|
||||
goto err_free_gpio;
|
||||
}
|
||||
|
||||
gpio_set_value(gpio, value);
|
||||
|
||||
return;
|
||||
|
||||
err_free_gpio:
|
||||
gpio_free(gpio);
|
||||
}
|
||||
|
||||
#define REQUEST_AND_SET_GPIO(N) request_and_set_gpio(N, #N, 1);
|
||||
#define REQUEST_AND_CLEAR_GPIO(N) request_and_set_gpio(N, #N, 0);
|
||||
|
||||
|
||||
int check_reset_button(void)
|
||||
{
|
||||
int counter = 0;
|
||||
int ret;
|
||||
|
||||
ret = gpio_request(NETBIRD_GPIO_RESET_BUTTON, "reset button");
|
||||
if (ret < 0) {
|
||||
printf("Unable to request reset button gpio\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = gpio_direction_input(NETBIRD_GPIO_RESET_BUTTON);
|
||||
if (ret < 0) {
|
||||
printf("Unable to set reset button as input\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Check if reset button is pressed for at least 3 seconds */
|
||||
do {
|
||||
if (gpio_get_value(NETBIRD_GPIO_RESET_BUTTON) != 0) break;
|
||||
udelay(100000); /* 100ms */
|
||||
counter++;
|
||||
|
||||
if (counter==30) {/* Indicate factory reset threshold */
|
||||
/* let LED blink up once */
|
||||
gpio_set_value(NETBIRD_GPIO_LED_B, 1);
|
||||
udelay(400000); /* 400ms */
|
||||
gpio_set_value(NETBIRD_GPIO_LED_B, 0);
|
||||
} else if (counter==150) { /* Indicate recovery boot threshold */
|
||||
/* let LED blink up twice */
|
||||
gpio_set_value(NETBIRD_GPIO_LED_B, 1);
|
||||
udelay(400000); /* 400ms */
|
||||
gpio_set_value(NETBIRD_GPIO_LED_B, 0);
|
||||
udelay(400000); /* 400ms */
|
||||
gpio_set_value(NETBIRD_GPIO_LED_B, 1);
|
||||
udelay(400000); /* 400ms */
|
||||
gpio_set_value(NETBIRD_GPIO_LED_B, 0);
|
||||
}
|
||||
} while (counter<150);
|
||||
|
||||
if (counter < 30) return 0; /* Don't do anything for duration < 3s */
|
||||
|
||||
if (counter < 150) /* Do factory reset for duration between 3s and 15s */
|
||||
{
|
||||
char new_bootargs[512];
|
||||
char *bootargs = getenv("bootargs");
|
||||
|
||||
if (bootargs==0) bootargs="";
|
||||
|
||||
printf("Do factory reset during boot...\n");
|
||||
|
||||
strncpy(new_bootargs, bootargs, sizeof(new_bootargs));
|
||||
strncat(new_bootargs, " factory-reset", sizeof(new_bootargs));
|
||||
|
||||
setenv("bootargs", new_bootargs);
|
||||
|
||||
printf("bootargs = %s\n", new_bootargs);
|
||||
|
||||
return 1;
|
||||
} else { /* Boot into recovery for duration > 15s */
|
||||
|
||||
/* set consoledev to external port */
|
||||
setenv("consoledev", "ttyO0");
|
||||
|
||||
printf("Booting recovery image...\n");
|
||||
|
||||
/* Set bootcmd to run recovery */
|
||||
setenv("bootcmd", "run recovery");
|
||||
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Basic board specific setup. Pinmux has been handled already.
|
||||
*/
|
||||
int board_init(void)
|
||||
{
|
||||
#if defined(CONFIG_HW_WATCHDOG)
|
||||
hw_watchdog_init();
|
||||
#endif
|
||||
|
||||
gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
|
||||
#if defined(CONFIG_NOR) || defined(CONFIG_NAND)
|
||||
gpmc_init();
|
||||
#endif
|
||||
|
||||
REQUEST_AND_CLEAR_GPIO(NETBIRD_GPIO_RST_GSM);
|
||||
udelay(10000);
|
||||
REQUEST_AND_SET_GPIO(NETBIRD_GPIO_PWR_GSM);
|
||||
mdelay(1200);
|
||||
gpio_set_value(NETBIRD_GPIO_PWR_GSM, 0);
|
||||
/* Enable debug LED to troubleshoot hw problems */
|
||||
REQUEST_AND_SET_GPIO(NETBIRD_GPIO_LED_A);
|
||||
REQUEST_AND_CLEAR_GPIO(NETBIRD_GPIO_LED_B);
|
||||
REQUEST_AND_SET_GPIO(NETBIRD_GPIO_RST_PHY_N);
|
||||
REQUEST_AND_CLEAR_GPIO(NETBIRD_GPIO_WLAN_EN);
|
||||
REQUEST_AND_CLEAR_GPIO(NETBIRD_GPIO_BT_EN);
|
||||
/* There are two funcions on the same mux mode for MMC2_DAT7 we want
|
||||
* to use RMII2_CRS_DV so we need to set SMA2 Register to 1
|
||||
* See SPRS717J site 49 (10)*/
|
||||
#define SMA2_REGISTER (CTRL_BASE + 0x1320)
|
||||
writel(0x01, SMA2_REGISTER); /* Select RMII2_CRS_DV instead of MMC2_DAT7 */
|
||||
|
||||
printf("OSC: %lu Hz\n", get_osclk());
|
||||
|
||||
return 0;
|
||||
}
|
||||
#if !defined(CONFIG_SPL_BUILD)
|
||||
|
||||
static void set_devicetree_name(void)
|
||||
{
|
||||
char devicetreename[64];
|
||||
/* add hardware versions to environment */
|
||||
if (bd_get_devicetree(devicetreename, sizeof(devicetreename)) != 0) {
|
||||
printf("Devicetree name not found, use legacy name\n");
|
||||
strcpy(devicetreename, "am335x-nbhw16.dtb");
|
||||
}
|
||||
|
||||
setenv("fdt_image", devicetreename);
|
||||
}
|
||||
|
||||
static void get_hw_version(void)
|
||||
{
|
||||
int hw_ver, hw_rev;
|
||||
char hw_versions[16];
|
||||
char new_env[256];
|
||||
|
||||
/* add hardware versions to environment */
|
||||
bd_get_hw_version(&hw_ver, &hw_rev);
|
||||
printf("HW16: V%d.%d\n", hw_ver, hw_rev);
|
||||
snprintf(hw_versions, sizeof(hw_versions), "CP=%d.%d", hw_ver, hw_rev);
|
||||
snprintf(new_env, sizeof(new_env), "setenv bootargs $bootargs %s", hw_versions);
|
||||
setenv("add_version_bootargs", new_env);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOARD_LATE_INIT
|
||||
int board_late_init(void)
|
||||
{
|
||||
#if !defined(CONFIG_SPL_BUILD)
|
||||
int boot_partition;
|
||||
|
||||
if (read_eeprom() < 0)
|
||||
puts("Could not get board ID.\n");
|
||||
|
||||
/* add active root partition to environment */
|
||||
boot_partition = bd_get_boot_partition();
|
||||
if (boot_partition > 1) {
|
||||
boot_partition = 0;
|
||||
}
|
||||
|
||||
/* mmcblk1p1 => root0, mmcblk1p2 => root1 so +1 */
|
||||
setenv_ulong("root_part", boot_partition + 1);
|
||||
|
||||
check_reset_button();
|
||||
|
||||
get_hw_version();
|
||||
|
||||
set_devicetree_name();
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
|
||||
int rc;
|
||||
char *name = NULL;
|
||||
|
||||
set_board_info_env(name);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_DM_ETH
|
||||
|
||||
#if (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) || \
|
||||
(defined(CONFIG_SPL_ETH_SUPPORT) && defined(CONFIG_SPL_BUILD))
|
||||
static void cpsw_control(int enabled)
|
||||
{
|
||||
/* VTP can be added here */
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static struct cpsw_slave_data cpsw_slaves[] = {
|
||||
{
|
||||
.slave_reg_ofs = 0x208,
|
||||
.sliver_reg_ofs = 0xd80,
|
||||
.phy_addr = 0,
|
||||
},
|
||||
{
|
||||
.slave_reg_ofs = 0x308,
|
||||
.sliver_reg_ofs = 0xdc0,
|
||||
.phy_addr = 1,
|
||||
},
|
||||
};
|
||||
|
||||
static struct cpsw_platform_data cpsw_data = {
|
||||
.mdio_base = CPSW_MDIO_BASE,
|
||||
.cpsw_base = CPSW_BASE,
|
||||
.mdio_div = 0xff,
|
||||
.channels = 8,
|
||||
.cpdma_reg_ofs = 0x800,
|
||||
.slaves = 1,
|
||||
.slave_data = cpsw_slaves,
|
||||
.ale_reg_ofs = 0xd00,
|
||||
.ale_entries = 1024,
|
||||
.host_port_reg_ofs = 0x108,
|
||||
.hw_stats_reg_ofs = 0x900,
|
||||
.bd_ram_ofs = 0x2000,
|
||||
.mac_control = (1 << 5),
|
||||
.control = cpsw_control,
|
||||
.host_port_num = 0,
|
||||
.version = CPSW_CTRL_VERSION_2,
|
||||
};
|
||||
#endif
|
||||
|
||||
#if ((defined(CONFIG_SPL_ETH_SUPPORT) || defined(CONFIG_SPL_USBETH_SUPPORT)) &&\
|
||||
defined(CONFIG_SPL_BUILD)) || \
|
||||
((defined(CONFIG_DRIVER_TI_CPSW) || \
|
||||
defined(CONFIG_USB_ETHER) && defined(CONFIG_MUSB_GADGET)) && \
|
||||
!defined(CONFIG_SPL_BUILD))
|
||||
|
||||
static void set_mac_address(int index, uchar mac[6])
|
||||
{
|
||||
/* Then take mac from bd */
|
||||
if (is_valid_ethaddr(mac)) {
|
||||
eth_setenv_enetaddr_by_index("eth", index, mac);
|
||||
}
|
||||
else {
|
||||
printf("Trying to set invalid MAC address");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* This function will:
|
||||
* Read the eFuse for MAC addresses, and set ethaddr/eth1addr/usbnet_devaddr
|
||||
* in the environment
|
||||
* Perform fixups to the PHY present on certain boards. We only need this
|
||||
* function in:
|
||||
* - SPL with either CPSW or USB ethernet support
|
||||
* - Full U-Boot, with either CPSW or USB ethernet
|
||||
* Build in only these cases to avoid warnings about unused variables
|
||||
* when we build an SPL that has neither option but full U-Boot will.
|
||||
*/
|
||||
int board_eth_init(bd_t *bis)
|
||||
{
|
||||
int rv, n = 0;
|
||||
uint8_t mac_addr0[6] = {02,00,00,00,00,01};
|
||||
uint8_t mac_addr1[6] = {02,00,00,00,00,02};
|
||||
__maybe_unused struct ti_am_eeprom *header;
|
||||
|
||||
#if !defined(CONFIG_SPL_BUILD)
|
||||
#ifdef CONFIG_DRIVER_TI_CPSW
|
||||
|
||||
cpsw_data.mdio_div = 0x3E;
|
||||
|
||||
bd_get_mac(0, mac_addr0, sizeof(mac_addr0));
|
||||
set_mac_address(0, mac_addr0);
|
||||
|
||||
bd_get_mac(1, mac_addr1, sizeof(mac_addr1));
|
||||
set_mac_address(1, mac_addr1);
|
||||
|
||||
writel(RMII_MODE_ENABLE | RMII_CHIPCKL_ENABLE, &cdev->miisel);
|
||||
cpsw_slaves[0].phy_if = PHY_INTERFACE_MODE_RMII;
|
||||
cpsw_slaves[1].phy_if = PHY_INTERFACE_MODE_RMII;
|
||||
cpsw_slaves[0].phy_addr = 0;
|
||||
cpsw_slaves[1].phy_addr = 1;
|
||||
|
||||
rv = cpsw_register(&cpsw_data);
|
||||
if (rv < 0)
|
||||
printf("Error %d registering CPSW switch\n", rv);
|
||||
else
|
||||
n += rv;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#if defined(CONFIG_USB_ETHER) && \
|
||||
(!defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_USBETH_SUPPORT))
|
||||
if (is_valid_ethaddr(mac_addr0))
|
||||
eth_setenv_enetaddr("usbnet_devaddr", mac_addr0);
|
||||
|
||||
rv = usb_eth_initialize(bis);
|
||||
if (rv < 0)
|
||||
printf("Error %d registering USB_ETHER\n", rv);
|
||||
else
|
||||
n += rv;
|
||||
#endif
|
||||
return n;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_DM_ETH */
|
||||
|
||||
#ifdef CONFIG_SPL_LOAD_FIT
|
||||
int board_fit_config_name_match(const char *name)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
/*
|
||||
* board.h
|
||||
*
|
||||
* TI AM335x boards information header
|
||||
*
|
||||
* Copyright (C) 2011, Texas Instruments, Incorporated - http://www.ti.com/
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef _BOARD_H_
|
||||
#define _BOARD_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);
|
||||
#endif
|
||||
|
|
@ -1,227 +0,0 @@
|
|||
/*
|
||||
* mux.c
|
||||
*
|
||||
* Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
* 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 version 2.
|
||||
*
|
||||
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
|
||||
* kind, whether express or implied; without even the implied warranty
|
||||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/hardware.h>
|
||||
#include <asm/arch/mux.h>
|
||||
#include <asm/io.h>
|
||||
#include <i2c.h>
|
||||
#include "board.h"
|
||||
|
||||
static struct module_pin_mux uart2_pin_mux[] = {
|
||||
{OFFSET(spi0_sclk), (MODE(1) | PULLUP_EN | RXACTIVE)}, /* UART2_RXD */
|
||||
{OFFSET(spi0_d0), (MODE(1) | PULLUDEN)}, /* UART2_TXD */
|
||||
{-1},
|
||||
};
|
||||
|
||||
static struct module_pin_mux uart3_pin_mux[] = {
|
||||
{OFFSET(spi0_cs1), (MODE(1) | PULLUP_EN | RXACTIVE)}, /* UART3_RXD */
|
||||
{OFFSET(ecap0_in_pwm0_out), (MODE(1) | PULLUDEN)}, /* UART3_TXD */
|
||||
{-1},
|
||||
};
|
||||
|
||||
static struct module_pin_mux uart4_pin_mux[] = {
|
||||
{OFFSET(gpmc_wait0), (MODE(6) | PULLUP_EN | RXACTIVE)}, /* UART4_RXD */
|
||||
{OFFSET(gpmc_wpn), (MODE(6) | PULLUDEN)}, /* UART4_TXD */
|
||||
{-1},
|
||||
};
|
||||
|
||||
static struct module_pin_mux uart5_pin_mux[] = {
|
||||
{OFFSET(lcd_data9), (MODE(4) | PULLUP_EN | RXACTIVE)}, /* UART5_RXD */
|
||||
{OFFSET(lcd_data8), (MODE(4) | PULLUDEN)}, /* UART5_TXD */
|
||||
{-1},
|
||||
};
|
||||
|
||||
static struct module_pin_mux i2c0_pin_mux[] = {
|
||||
{OFFSET(i2c0_sda), (MODE(0) | RXACTIVE |
|
||||
PULLUDEN | PULLUP_EN | SLEWCTRL)}, /* I2C_DATA */
|
||||
{OFFSET(i2c0_scl), (MODE(0) | RXACTIVE |
|
||||
PULLUDEN | PULLUP_EN | SLEWCTRL)}, /* I2C_SCLK */
|
||||
{-1},
|
||||
};
|
||||
|
||||
|
||||
|
||||
static struct module_pin_mux uart0_netbird_pin_mux[] = {
|
||||
{OFFSET(uart0_rxd), (MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* UART0_RXD */
|
||||
{OFFSET(uart0_txd), (MODE(0) | PULLUDEN | PULLUP_EN)}, /* UART0_TXD */
|
||||
{-1},
|
||||
};
|
||||
|
||||
static struct module_pin_mux uart1_netbird_pin_mux[] = {
|
||||
{OFFSET(uart1_rxd), (MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* (D16) uart1_rxd.uart1_rxd */
|
||||
{OFFSET(uart1_txd), (MODE(0) | PULLUDEN | PULLUP_EN)}, /* (D15) uart1_txd.uart1_txd */
|
||||
{OFFSET(uart1_ctsn), (MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* (D18) uart1_ctsn.uart1_ctsn */
|
||||
{OFFSET(uart1_rtsn), (MODE(0) | PULLUDEN | PULLUP_EN)}, /* (D17) uart1_rtsn.uart1_rtsn */
|
||||
{-1},
|
||||
};
|
||||
|
||||
static struct module_pin_mux rmii0_netbird_pin_mux[] = {
|
||||
{OFFSET(mii1_crs), MODE(1) | PULLUDDIS | RXACTIVE}, /* MII1_CRS */
|
||||
{OFFSET(mii1_rxerr), MODE(1) | PULLUDDIS | RXACTIVE}, /* MII1_RXERR */
|
||||
{OFFSET(mii1_txen), MODE(1) | PULLUDDIS }, /* MII1_TXEN */
|
||||
{OFFSET(mii1_txd0), MODE(1) | PULLUDDIS }, /* MII1_TXD0 */
|
||||
{OFFSET(mii1_txd1), MODE(1) | PULLUDDIS }, /* MII1_TXD1 */
|
||||
{OFFSET(mii1_rxd0), MODE(1) | PULLUDDIS | RXACTIVE }, /* MII1_RXD0 */
|
||||
{OFFSET(mii1_rxd1), MODE(1) | PULLUDDIS | RXACTIVE }, /* MII1_RXD1 */
|
||||
{OFFSET(rmii1_refclk), MODE(0) | PULLUDDIS | RXACTIVE}, /* RMII1_REFCLK */
|
||||
{OFFSET(mdio_clk), MODE(0) | PULLUDDIS }, /* MDIO_CLK */
|
||||
{OFFSET(mdio_data), MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE }, /* MDIO_DATA */
|
||||
{OFFSET(xdma_event_intr0), MODE(3) }, /* CLK_OUT1 for MDIO (design option) */
|
||||
{-1},
|
||||
};
|
||||
|
||||
static struct module_pin_mux rmii1_netbird_pin_mux[] = {
|
||||
{OFFSET(gpmc_a9), MODE(3) | PULLUDDIS | RXACTIVE}, /* MII2_CRS */
|
||||
{OFFSET(gpmc_wpn), MODE(3) | PULLUDDIS | RXACTIVE}, /* MII2_RXERR */
|
||||
{OFFSET(gpmc_a0), MODE(3) | PULLUDDIS}, /* MII2_TXEN */
|
||||
{OFFSET(gpmc_a5), MODE(3) | PULLUDDIS}, /* MII2_TXD0 */
|
||||
{OFFSET(gpmc_a4), MODE(3) | PULLUDDIS}, /* MII2_TXD1 */
|
||||
{OFFSET(gpmc_a11), MODE(3) | PULLUDDIS | RXACTIVE}, /* MII1_RXD0 */
|
||||
{OFFSET(gpmc_a10), MODE(3) | PULLUDDIS | RXACTIVE}, /* MII1_RXD1 */
|
||||
{OFFSET(mii1_col), MODE(1) | PULLUDDIS | RXACTIVE}, /* RMII1_REFCLK */
|
||||
{-1},
|
||||
};
|
||||
|
||||
static struct module_pin_mux mmc0_sdio_netbird_pin_mux[] = {
|
||||
{OFFSET(mmc0_clk), (MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* MMC0_CLK */
|
||||
{OFFSET(mmc0_cmd), (MODE(0) | PULLUDEN | PULLUP_EN)}, /* MMC0_CMD */
|
||||
{OFFSET(mmc0_dat0), (MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE )}, /* MMC0_DAT0 */
|
||||
{OFFSET(mmc0_dat1), (MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE )}, /* MMC0_DAT1 */
|
||||
{OFFSET(mmc0_dat2), (MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE )}, /* MMC0_DAT2 */
|
||||
{OFFSET(mmc0_dat3), (MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE )}, /* MMC0_DAT3 */
|
||||
{-1},
|
||||
};
|
||||
|
||||
static struct module_pin_mux mmc1_emmc_netbird_pin_mux[] = {
|
||||
{OFFSET(gpmc_csn1), (MODE(2) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* MMC1_CLK */
|
||||
{OFFSET(gpmc_csn2), (MODE(2) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* MMC1_CMD */
|
||||
{OFFSET(gpmc_ad0), (MODE(1) | PULLUDEN | PULLUP_EN | RXACTIVE )}, /* MMC1_DAT0 */
|
||||
{OFFSET(gpmc_ad1), (MODE(1) | PULLUDEN | PULLUP_EN | RXACTIVE )}, /* MMC1_DAT1 */
|
||||
{OFFSET(gpmc_ad2), (MODE(1) | PULLUDEN | PULLUP_EN | RXACTIVE )}, /* MMC1_DAT2 */
|
||||
{OFFSET(gpmc_ad3), (MODE(1) | PULLUDEN | PULLUP_EN | RXACTIVE )}, /* MMC1_DAT3 */
|
||||
{OFFSET(gpmc_ad4), (MODE(1) | PULLUDEN | PULLUP_EN | RXACTIVE )}, /* MMC1_DAT3 */
|
||||
{OFFSET(gpmc_ad5), (MODE(1) | PULLUDEN | PULLUP_EN | RXACTIVE )}, /* MMC1_DAT3 */
|
||||
{OFFSET(gpmc_ad6), (MODE(1) | PULLUDEN | PULLUP_EN | RXACTIVE )}, /* MMC1_DAT3 */
|
||||
{OFFSET(gpmc_ad7), (MODE(1) | PULLUDEN | PULLUP_EN | RXACTIVE )}, /* MMC1_DAT3 */
|
||||
{-1},
|
||||
};
|
||||
|
||||
static struct module_pin_mux gpio_netbird_pin_mux[] = {
|
||||
/* Bank 0 */
|
||||
{OFFSET(ecap0_in_pwm0_out), (MODE(7) | PULLUDDIS | RXACTIVE)}, /* (C18) eCAP0_in_PWM0_out.gpio0[7] */ /* PWM */
|
||||
{OFFSET(mii1_txd3), (MODE(7) | PULLUDDIS)}, /* (J18) gmii1_txd3.gpio0[16] */ /* RST_PHY~ */
|
||||
{OFFSET(gpmc_ad11), (MODE(7) | PULLUDDIS)}, /* (U12) gpmc_ad11.gpio0[27] */ /* RST_EXT~ */
|
||||
/* Bank 1 */
|
||||
{OFFSET(gpmc_ad13), (MODE(7) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* (R12) gpmc_ad13.gpio1[13] */ /* BUTTON */
|
||||
{OFFSET(gpmc_ad14), (MODE(7) | PULLUDDIS)}, /* (V13) gpmc_ad14.gpio1[14] */ /* LED_A */
|
||||
{OFFSET(gpmc_ad15), (MODE(7) | PULLUDDIS)}, /* (U13) gpmc_ad15.gpio1[15] */ /* LED_B */
|
||||
{OFFSET(gpmc_a6), (MODE(7) | PULLUDDIS)}, /* (U15) gpmc_a6.gpio1[22] */ /* GSM_PWR_EN */
|
||||
{OFFSET(gpmc_a8), (MODE(7) | PULLUDDIS)}, /* (V16) gpmc_a8.gpio1[24] */ /* RST_GSM~ */
|
||||
/* Bank 2 */
|
||||
{OFFSET(lcd_pclk), (MODE(7) | PULLUDDIS)}, /* (V5) lcd_pclk.gpio2[24] */ /* EN_GPS_ANT */
|
||||
{OFFSET(lcd_data3), (MODE(7) | PULLUDEN| PULLUP_EN)}, /* (V5) lcd_pclk.gpio2[9] */ /* SYSBOOT */
|
||||
{OFFSET(lcd_data4), (MODE(7) | PULLUDEN| PULLUP_EN)}, /* (V5) lcd_pclk.gpio2[10] */ /* SYSBOOT */
|
||||
/* Bank 3 */
|
||||
{OFFSET(mii1_rxdv), (MODE(7) | PULLUDDIS)}, /* (J17) gmii1_rxdv.gpio3[4] */ /* BT_EN */
|
||||
{OFFSET(mii1_rxdv), (MODE(7) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* (K18) gmii1_txclk.gpio3[9] */ /* WLAN_IRQ */
|
||||
{OFFSET(mii1_rxdv), (MODE(7) | PULLUDDIS)}, /* (L18) gmii1_rxclk.gpio3[10] */ /* WLAN_EN */
|
||||
{-1},
|
||||
};
|
||||
|
||||
static struct module_pin_mux usb_netbird_pin_mux[] = {
|
||||
{OFFSET(usb0_drvvbus), (MODE(0) | PULLUDEN | PULLDOWN_EN)}, /* (F16) USB0_DRVVBUS.USB0_DRVVBUS */ /* PWM */
|
||||
{OFFSET(usb1_drvvbus), (MODE(0) | PULLUDDIS | PULLDOWN_EN)}, /* (F15) USB1_DRVVBUS.USB1_DRVVBUS */ /* RST_PHY~ */
|
||||
{-1},
|
||||
};
|
||||
|
||||
static struct module_pin_mux unused_netbird_pin_mux[] = {
|
||||
{OFFSET(lcd_data6), (MODE(7) | PULLUDEN | PULLDOWN_EN)}, /* SYSBOOT6 is not used bulldown active, receiver disabled */
|
||||
{OFFSET(lcd_data7), (MODE(7) | PULLUDEN | PULLDOWN_EN)}, /* SYSBOOT7 is not used bulldown active, receiver disabled */
|
||||
{OFFSET(lcd_data10), (MODE(7) | PULLUDEN | PULLDOWN_EN)}, /* SYSBOOT10 is not used bulldown active, receiver disabled */
|
||||
{OFFSET(lcd_data11), (MODE(7) | PULLUDEN | PULLDOWN_EN)}, /* SYSBOOT11 is not used bulldown active, receiver disabled */
|
||||
{-1},
|
||||
};
|
||||
|
||||
void enable_uart0_pin_mux(void)
|
||||
{
|
||||
configure_module_pin_mux(uart0_netbird_pin_mux);
|
||||
}
|
||||
|
||||
void enable_uart1_pin_mux(void)
|
||||
{
|
||||
configure_module_pin_mux(uart1_netbird_pin_mux);
|
||||
}
|
||||
|
||||
void enable_uart2_pin_mux(void)
|
||||
{
|
||||
configure_module_pin_mux(uart2_pin_mux);
|
||||
}
|
||||
|
||||
void enable_uart3_pin_mux(void)
|
||||
{
|
||||
configure_module_pin_mux(uart3_pin_mux);
|
||||
}
|
||||
|
||||
void enable_uart4_pin_mux(void)
|
||||
{
|
||||
configure_module_pin_mux(uart4_pin_mux);
|
||||
}
|
||||
|
||||
void enable_uart5_pin_mux(void)
|
||||
{
|
||||
configure_module_pin_mux(uart5_pin_mux);
|
||||
}
|
||||
|
||||
void enable_i2c0_pin_mux(void)
|
||||
{
|
||||
configure_module_pin_mux(i2c0_pin_mux);
|
||||
}
|
||||
|
||||
/*
|
||||
* The AM335x GP EVM, if daughter card(s) are connected, can have 8
|
||||
* different profiles. These profiles determine what peripherals are
|
||||
* valid and need pinmux to be configured.
|
||||
*/
|
||||
#define PROFILE_NONE 0x0
|
||||
#define PROFILE_0 (1 << 0)
|
||||
#define PROFILE_1 (1 << 1)
|
||||
#define PROFILE_2 (1 << 2)
|
||||
#define PROFILE_3 (1 << 3)
|
||||
#define PROFILE_4 (1 << 4)
|
||||
#define PROFILE_5 (1 << 5)
|
||||
#define PROFILE_6 (1 << 6)
|
||||
#define PROFILE_7 (1 << 7)
|
||||
#define PROFILE_MASK 0x7
|
||||
#define PROFILE_ALL 0xFF
|
||||
|
||||
/* CPLD registers */
|
||||
#define I2C_CPLD_ADDR 0x35
|
||||
#define CFG_REG 0x10
|
||||
|
||||
void enable_board_pin_mux(void)
|
||||
{
|
||||
/* Netbird board */
|
||||
configure_module_pin_mux(gpio_netbird_pin_mux);
|
||||
configure_module_pin_mux(rmii0_netbird_pin_mux);
|
||||
configure_module_pin_mux(rmii1_netbird_pin_mux);
|
||||
configure_module_pin_mux(mmc0_sdio_netbird_pin_mux);
|
||||
configure_module_pin_mux(mmc1_emmc_netbird_pin_mux);
|
||||
configure_module_pin_mux(usb_netbird_pin_mux);
|
||||
configure_module_pin_mux(usb_netbird_pin_mux);
|
||||
configure_module_pin_mux(i2c0_pin_mux);
|
||||
configure_module_pin_mux(unused_netbird_pin_mux);
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
#
|
||||
# Makefile
|
||||
#
|
||||
# Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
ifeq ($(CONFIG_SKIP_LOWLEVEL_INIT),)
|
||||
obj-y := mux.o
|
||||
endif
|
||||
|
||||
obj-y += board.o ../common/bdparser.o ../common/board_descriptor.o shield.o shield_can.o shield_comio.o fileaccess.o
|
||||
|
|
@ -1,158 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2004-2008 Texas Instruments
|
||||
*
|
||||
* (C) Copyright 2002
|
||||
* Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
|
||||
OUTPUT_ARCH(arm)
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
. = 0x00000000;
|
||||
|
||||
. = ALIGN(4);
|
||||
.text :
|
||||
{
|
||||
*(.__image_copy_start)
|
||||
*(.vectors)
|
||||
CPUDIR/start.o (.text*)
|
||||
board/nm/netbird_v2/built-in.o (.text*)
|
||||
*(.text*)
|
||||
}
|
||||
|
||||
. = ALIGN(4);
|
||||
.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
|
||||
|
||||
. = ALIGN(4);
|
||||
.data : {
|
||||
*(.data*)
|
||||
}
|
||||
|
||||
. = ALIGN(4);
|
||||
|
||||
. = .;
|
||||
|
||||
. = ALIGN(4);
|
||||
.u_boot_list : {
|
||||
KEEP(*(SORT(.u_boot_list*)));
|
||||
}
|
||||
|
||||
. = ALIGN(4);
|
||||
|
||||
.__efi_runtime_start : {
|
||||
*(.__efi_runtime_start)
|
||||
}
|
||||
|
||||
.efi_runtime : {
|
||||
*(efi_runtime_text)
|
||||
*(efi_runtime_data)
|
||||
}
|
||||
|
||||
.__efi_runtime_stop : {
|
||||
*(.__efi_runtime_stop)
|
||||
}
|
||||
|
||||
.efi_runtime_rel_start :
|
||||
{
|
||||
*(.__efi_runtime_rel_start)
|
||||
}
|
||||
|
||||
.efi_runtime_rel : {
|
||||
*(.relefi_runtime_text)
|
||||
*(.relefi_runtime_data)
|
||||
}
|
||||
|
||||
.efi_runtime_rel_stop :
|
||||
{
|
||||
*(.__efi_runtime_rel_stop)
|
||||
}
|
||||
|
||||
. = ALIGN(4);
|
||||
|
||||
.image_copy_end :
|
||||
{
|
||||
*(.__image_copy_end)
|
||||
}
|
||||
|
||||
.rel_dyn_start :
|
||||
{
|
||||
*(.__rel_dyn_start)
|
||||
}
|
||||
|
||||
.rel.dyn : {
|
||||
*(.rel*)
|
||||
}
|
||||
|
||||
.rel_dyn_end :
|
||||
{
|
||||
*(.__rel_dyn_end)
|
||||
}
|
||||
|
||||
.hash : { *(.hash*) }
|
||||
|
||||
.end :
|
||||
{
|
||||
*(.__end)
|
||||
}
|
||||
|
||||
_image_binary_end = .;
|
||||
|
||||
/*
|
||||
* Deprecated: this MMU section is used by pxa at present but
|
||||
* should not be used by new boards/CPUs.
|
||||
*/
|
||||
. = ALIGN(4096);
|
||||
.mmutable : {
|
||||
*(.mmutable)
|
||||
}
|
||||
|
||||
/*
|
||||
* Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
|
||||
* __bss_base and __bss_limit are for linker only (overlay ordering)
|
||||
*/
|
||||
|
||||
.bss_start __rel_dyn_start (OVERLAY) : {
|
||||
KEEP(*(.__bss_start));
|
||||
__bss_base = .;
|
||||
}
|
||||
|
||||
.bss __bss_base (OVERLAY) : {
|
||||
*(.bss*)
|
||||
. = ALIGN(4);
|
||||
__bss_limit = .;
|
||||
}
|
||||
|
||||
.bss_end __bss_limit (OVERLAY) : {
|
||||
KEEP(*(.__bss_end));
|
||||
}
|
||||
|
||||
.dynsym _image_binary_end : { *(.dynsym) }
|
||||
.dynbss : { *(.dynbss) }
|
||||
.dynstr : { *(.dynstr*) }
|
||||
.dynamic : { *(.dynamic*) }
|
||||
.gnu.hash : { *(.gnu.hash) }
|
||||
.plt : { *(.plt*) }
|
||||
.interp : { *(.interp*) }
|
||||
.gnu : { *(.gnu*) }
|
||||
.ARM.exidx : { *(.ARM.exidx*) }
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
CONFIG_ARM=y
|
||||
CONFIG_TARGET_AM335X_NETBIRD=y
|
||||
CONFIG_TARGET_AM335X_NBHW16=y
|
||||
CONFIG_SPL_STACK_R_ADDR=0x82000000
|
||||
CONFIG_SPL=y
|
||||
CONFIG_SPL_STACK_R=y
|
||||
|
|
@ -14,12 +14,8 @@ CONFIG_CMD_BOOTZ=y
|
|||
CONFIG_CMD_ASKENV=y
|
||||
# CONFIG_CMD_FLASH is not set
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
CONFIG_CMD_SPI=y
|
||||
CONFIG_CMD_I2C=y
|
||||
CONFIG_CMD_USB=y
|
||||
CONFIG_CMD_DFU=y
|
||||
CONFIG_CMD_GPIO=y
|
||||
# CONFIG_CMD_SETEXPR is not set
|
||||
CONFIG_CMD_DHCP=y
|
||||
CONFIG_CMD_MII=y
|
||||
|
|
@ -30,8 +26,6 @@ CONFIG_CMD_EXT4_WRITE=y
|
|||
CONFIG_CMD_FAT=y
|
||||
CONFIG_CMD_FS_GENERIC=y
|
||||
CONFIG_DFU_TFTP=y
|
||||
CONFIG_SPI_FLASH=y
|
||||
CONFIG_SPI_FLASH_WINBOND=y
|
||||
CONFIG_SYS_NS16550=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_MUSB_HOST=y
|
||||
|
|
@ -42,3 +36,14 @@ CONFIG_G_DNL_MANUFACTURER="Texas Instruments"
|
|||
CONFIG_G_DNL_VENDOR_NUM=0x0451
|
||||
CONFIG_G_DNL_PRODUCT_NUM=0xd022
|
||||
CONFIG_OF_LIBFDT=y
|
||||
# CONFIG_BOOTP_PXE_CLIENTARCH is not set
|
||||
# CONFIG_CMD_PXE is not set
|
||||
# CONFIG_CMD_BOOTEFI is not set
|
||||
# CONFIG_CMD_XIMG is not set
|
||||
# CONFIG_CMD_ELF is not set
|
||||
# CONFIG_FPGA is not set
|
||||
# CONFIG_CMD_FPGA is not set
|
||||
# CONFIG_CMD_PMIC is not set
|
||||
# CONFIG_EFI_LOADER is not set
|
||||
# CONFIG_CMD_LOADB is not set
|
||||
# CONFIG_CMD_LOADS is not set
|
||||
|
|
|
|||
|
|
@ -1,631 +0,0 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# U-Boot 2016.05 Configuration
|
||||
#
|
||||
CONFIG_CREATE_ARCH_SYMLINK=y
|
||||
# CONFIG_ARC is not set
|
||||
CONFIG_ARM=y
|
||||
# CONFIG_AVR32 is not set
|
||||
# CONFIG_BLACKFIN is not set
|
||||
# CONFIG_M68K is not set
|
||||
# CONFIG_MICROBLAZE is not set
|
||||
# CONFIG_MIPS is not set
|
||||
# CONFIG_NDS32 is not set
|
||||
# CONFIG_NIOS2 is not set
|
||||
# CONFIG_OPENRISC is not set
|
||||
# CONFIG_PPC is not set
|
||||
# CONFIG_SANDBOX is not set
|
||||
# CONFIG_SH is not set
|
||||
# CONFIG_SPARC is not set
|
||||
# CONFIG_X86 is not set
|
||||
CONFIG_SYS_ARCH="arm"
|
||||
CONFIG_SYS_CPU="armv7"
|
||||
CONFIG_SYS_SOC="am33xx"
|
||||
CONFIG_SYS_VENDOR="nm"
|
||||
CONFIG_SYS_BOARD="netbird_v2"
|
||||
CONFIG_SYS_CONFIG_NAME="am335x_netbird_v2"
|
||||
|
||||
#
|
||||
# ARM architecture
|
||||
#
|
||||
CONFIG_HAS_VBAR=y
|
||||
CONFIG_HAS_THUMB2=y
|
||||
CONFIG_CPU_V7=y
|
||||
# CONFIG_SEMIHOSTING is not set
|
||||
# CONFIG_SYS_L2CACHE_OFF is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_TARGET_EDB93XX is not set
|
||||
# CONFIG_TARGET_VCMA9 is not set
|
||||
# CONFIG_TARGET_SMDK2410 is not set
|
||||
# CONFIG_TARGET_ASPENITE is not set
|
||||
# CONFIG_TARGET_GPLUGD is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
# CONFIG_KIRKWOOD is not set
|
||||
# CONFIG_ARCH_MVEBU is not set
|
||||
# CONFIG_TARGET_DEVKIT3250 is not set
|
||||
# CONFIG_TARGET_WORK_92105 is not set
|
||||
# CONFIG_TARGET_MX25PDK is not set
|
||||
# CONFIG_TARGET_ZMX25 is not set
|
||||
# CONFIG_TARGET_APF27 is not set
|
||||
# CONFIG_TARGET_APX4DEVKIT is not set
|
||||
# CONFIG_TARGET_XFI3 is not set
|
||||
# CONFIG_TARGET_M28EVK is not set
|
||||
# CONFIG_TARGET_MX23EVK is not set
|
||||
# CONFIG_TARGET_MX28EVK is not set
|
||||
# CONFIG_TARGET_MX23_OLINUXINO is not set
|
||||
# CONFIG_TARGET_BG0900 is not set
|
||||
# CONFIG_TARGET_SANSA_FUZE_PLUS is not set
|
||||
# CONFIG_TARGET_SC_SPS_1 is not set
|
||||
# CONFIG_ORION5X is not set
|
||||
# CONFIG_TARGET_SPEAR300 is not set
|
||||
# CONFIG_TARGET_SPEAR310 is not set
|
||||
# CONFIG_TARGET_SPEAR320 is not set
|
||||
# CONFIG_TARGET_SPEAR600 is not set
|
||||
# CONFIG_TARGET_STV0991 is not set
|
||||
# CONFIG_TARGET_X600 is not set
|
||||
# CONFIG_TARGET_IMX31_PHYCORE is not set
|
||||
# CONFIG_TARGET_MX31ADS is not set
|
||||
# CONFIG_TARGET_MX31PDK is not set
|
||||
# CONFIG_TARGET_WOODBURN is not set
|
||||
# CONFIG_TARGET_WOODBURN_SD is not set
|
||||
# CONFIG_TARGET_FLEA3 is not set
|
||||
# CONFIG_TARGET_MX35PDK is not set
|
||||
# CONFIG_ARCH_BCM283X is not set
|
||||
# CONFIG_TARGET_VEXPRESS_CA15_TC2 is not set
|
||||
# CONFIG_TARGET_VEXPRESS_CA5X2 is not set
|
||||
# CONFIG_TARGET_VEXPRESS_CA9X4 is not set
|
||||
# CONFIG_TARGET_KWB is not set
|
||||
# CONFIG_TARGET_TSERIES is not set
|
||||
# CONFIG_TARGET_CM_T335 is not set
|
||||
# CONFIG_TARGET_PEPPER is not set
|
||||
# CONFIG_TARGET_AM335X_IGEP0033 is not set
|
||||
# CONFIG_TARGET_PCM051 is not set
|
||||
# CONFIG_TARGET_DRACO is not set
|
||||
# CONFIG_TARGET_THUBAN is not set
|
||||
# CONFIG_TARGET_RASTABAN is not set
|
||||
# CONFIG_TARGET_PXM2 is not set
|
||||
# CONFIG_TARGET_RUT is not set
|
||||
# CONFIG_TARGET_PENGWYN is not set
|
||||
# CONFIG_TARGET_AM335X_BALTOS is not set
|
||||
# CONFIG_TARGET_AM335X_EVM is not set
|
||||
# CONFIG_TARGET_AM335X_NETBIRD is not set
|
||||
CONFIG_TARGET_AM335X_NETBIRD_V2=y
|
||||
# CONFIG_TARGET_AM335X_SL50 is not set
|
||||
# CONFIG_TARGET_BAV335X is not set
|
||||
# CONFIG_TARGET_TI814X_EVM is not set
|
||||
# CONFIG_TARGET_TI816X_EVM is not set
|
||||
# CONFIG_TARGET_BCM28155_AP is not set
|
||||
# CONFIG_TARGET_BCMCYGNUS is not set
|
||||
# CONFIG_TARGET_BCMNSP is not set
|
||||
# CONFIG_ARCH_EXYNOS is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_HIGHBANK is not set
|
||||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_KEYSTONE is not set
|
||||
# CONFIG_ARCH_MESON is not set
|
||||
# CONFIG_ARCH_MX7 is not set
|
||||
# CONFIG_ARCH_MX6 is not set
|
||||
# CONFIG_ARCH_MX5 is not set
|
||||
# CONFIG_TARGET_M53EVK is not set
|
||||
# CONFIG_TARGET_MX51EVK is not set
|
||||
# CONFIG_TARGET_MX53ARD is not set
|
||||
# CONFIG_TARGET_MX53EVK is not set
|
||||
# CONFIG_TARGET_MX53LOCO is not set
|
||||
# CONFIG_TARGET_MX53SMD is not set
|
||||
# CONFIG_OMAP34XX is not set
|
||||
# CONFIG_OMAP44XX is not set
|
||||
# CONFIG_OMAP54XX is not set
|
||||
# CONFIG_AM43XX is not set
|
||||
# CONFIG_RMOBILE is not set
|
||||
# CONFIG_ARCH_SNAPDRAGON is not set
|
||||
# CONFIG_ARCH_SOCFPGA is not set
|
||||
# CONFIG_TARGET_CM_T43 is not set
|
||||
# CONFIG_ARCH_SUNXI is not set
|
||||
# CONFIG_TARGET_TS4800 is not set
|
||||
# CONFIG_TARGET_VF610TWR is not set
|
||||
# CONFIG_TARGET_COLIBRI_VF is not set
|
||||
# CONFIG_TARGET_PCM052 is not set
|
||||
# CONFIG_ARCH_ZYNQ is not set
|
||||
# CONFIG_ARCH_ZYNQMP is not set
|
||||
# CONFIG_TEGRA is not set
|
||||
# CONFIG_TARGET_VEXPRESS64_AEMV8A is not set
|
||||
# CONFIG_TARGET_VEXPRESS64_BASE_FVP is not set
|
||||
# CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM is not set
|
||||
# CONFIG_TARGET_VEXPRESS64_JUNO is not set
|
||||
# CONFIG_TARGET_LS2080A_EMU is not set
|
||||
# CONFIG_TARGET_LS2080A_SIMU is not set
|
||||
# CONFIG_TARGET_LS2080AQDS is not set
|
||||
# CONFIG_TARGET_LS2080ARDB is not set
|
||||
# CONFIG_TARGET_HIKEY is not set
|
||||
# CONFIG_TARGET_LS1021AQDS is not set
|
||||
# CONFIG_TARGET_LS1021ATWR is not set
|
||||
# CONFIG_TARGET_LS1043AQDS is not set
|
||||
# CONFIG_TARGET_LS1043ARDB is not set
|
||||
# CONFIG_TARGET_H2200 is not set
|
||||
# CONFIG_TARGET_ZIPITZ2 is not set
|
||||
# CONFIG_TARGET_COLIBRI_PXA270 is not set
|
||||
# CONFIG_ARCH_UNIPHIER is not set
|
||||
# CONFIG_STM32 is not set
|
||||
# CONFIG_ARCH_ROCKCHIP is not set
|
||||
# CONFIG_TARGET_THUNDERX_88XX is not set
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x400
|
||||
CONFIG_CONS_INDEX=2
|
||||
CONFIG_SYS_MALLOC_F=y
|
||||
# CONFIG_SPL_SYS_MALLOC_SIMPLE is not set
|
||||
# CONFIG_SPL_DM is not set
|
||||
CONFIG_DM_SERIAL=y
|
||||
# CONFIG_DM_SPI is not set
|
||||
# CONFIG_DM_I2C is not set
|
||||
CONFIG_DM_GPIO=y
|
||||
# CONFIG_BLK is not set
|
||||
# CONFIG_ARMV7_LPAE is not set
|
||||
CONFIG_SPL_STACK_R_ADDR=0x82000000
|
||||
|
||||
#
|
||||
# ARM debug
|
||||
#
|
||||
# CONFIG_DEBUG_LL is not set
|
||||
# CONFIG_DM_KEYBOARD is not set
|
||||
# CONFIG_AHCI is not set
|
||||
|
||||
#
|
||||
# General setup
|
||||
#
|
||||
CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
CONFIG_EXPERT=y
|
||||
CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y
|
||||
|
||||
#
|
||||
# Boot images
|
||||
#
|
||||
CONFIG_SUPPORT_SPL=y
|
||||
CONFIG_SPL=y
|
||||
CONFIG_SPL_STACK_R=y
|
||||
# CONFIG_SPL_SEPARATE_BSS is not set
|
||||
CONFIG_FIT=y
|
||||
# CONFIG_FIT_VERBOSE is not set
|
||||
# CONFIG_FIT_SIGNATURE is not set
|
||||
# CONFIG_FIT_BEST_MATCH is not set
|
||||
# CONFIG_OF_BOARD_SETUP is not set
|
||||
# CONFIG_OF_SYSTEM_SETUP is not set
|
||||
# CONFIG_OF_STDOUT_VIA_ALIAS is not set
|
||||
CONFIG_SYS_EXTRA_OPTIONS="EMMC_BOOT"
|
||||
# CONFIG_SPL_LOAD_FIT is not set
|
||||
|
||||
#
|
||||
# Boot timing
|
||||
#
|
||||
# CONFIG_BOOTSTAGE is not set
|
||||
CONFIG_BOOTSTAGE_USER_COUNT=20
|
||||
CONFIG_BOOTSTAGE_STASH_ADDR=0
|
||||
CONFIG_BOOTSTAGE_STASH_SIZE=4096
|
||||
# CONFIG_CONSOLE_RECORD is not set
|
||||
|
||||
#
|
||||
# Command line interface
|
||||
#
|
||||
CONFIG_CMDLINE=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_SYS_HUSH_PARSER=y
|
||||
CONFIG_SYS_PROMPT="=> "
|
||||
|
||||
#
|
||||
# Autoboot options
|
||||
#
|
||||
CONFIG_AUTOBOOT_KEYED=y
|
||||
CONFIG_AUTOBOOT_PROMPT="Press s to abort autoboot in %d seconds\n"
|
||||
# CONFIG_AUTOBOOT_ENCRYPTION is not set
|
||||
CONFIG_AUTOBOOT_DELAY_STR=""
|
||||
CONFIG_AUTOBOOT_STOP_STR="s"
|
||||
# CONFIG_AUTOBOOT_KEYED_CTRLC is not set
|
||||
|
||||
#
|
||||
# Commands
|
||||
#
|
||||
|
||||
#
|
||||
# Info commands
|
||||
#
|
||||
CONFIG_CMD_BDI=y
|
||||
CONFIG_CMD_CONSOLE=y
|
||||
# CONFIG_CMD_CPU is not set
|
||||
# CONFIG_CMD_LICENSE is not set
|
||||
|
||||
#
|
||||
# Boot commands
|
||||
#
|
||||
CONFIG_CMD_BOOTD=y
|
||||
CONFIG_CMD_BOOTM=y
|
||||
CONFIG_CMD_BOOTZ=y
|
||||
# CONFIG_CMD_ELF is not set
|
||||
CONFIG_CMD_FDT=y
|
||||
CONFIG_CMD_GO=y
|
||||
CONFIG_CMD_RUN=y
|
||||
CONFIG_CMD_IMI=y
|
||||
# CONFIG_CMD_IMLS is not set
|
||||
# CONFIG_CMD_XIMG is not set
|
||||
|
||||
#
|
||||
# Environment commands
|
||||
#
|
||||
CONFIG_CMD_ASKENV=y
|
||||
CONFIG_CMD_EXPORTENV=y
|
||||
CONFIG_CMD_IMPORTENV=y
|
||||
CONFIG_CMD_EDITENV=y
|
||||
# CONFIG_CMD_GREPENV is not set
|
||||
CONFIG_CMD_SAVEENV=y
|
||||
CONFIG_CMD_ENV_EXISTS=y
|
||||
|
||||
#
|
||||
# Memory commands
|
||||
#
|
||||
CONFIG_CMD_MEMORY=y
|
||||
CONFIG_CMD_CRC32=y
|
||||
# CONFIG_LOOPW is not set
|
||||
# CONFIG_CMD_MEMTEST is not set
|
||||
# CONFIG_CMD_MX_CYCLIC is not set
|
||||
# CONFIG_CMD_MEMINFO is not set
|
||||
|
||||
#
|
||||
# Device access commands
|
||||
#
|
||||
CONFIG_CMD_DM=y
|
||||
# CONFIG_CMD_DEMO is not set
|
||||
# CONFIG_CMD_LOADB is not set
|
||||
# CONFIG_CMD_LOADS is not set
|
||||
# CONFIG_CMD_FLASH is not set
|
||||
# CONFIG_CMD_ARMFLASH is not set
|
||||
CONFIG_CMD_MMC=y
|
||||
# CONFIG_CMD_NAND is not set
|
||||
# CONFIG_CMD_SF is not set
|
||||
# CONFIG_CMD_SPI is not set
|
||||
CONFIG_CMD_I2C=y
|
||||
CONFIG_CMD_USB=y
|
||||
# CONFIG_CMD_DFU is not set
|
||||
# CONFIG_CMD_USB_MASS_STORAGE is not set
|
||||
# CONFIG_CMD_FPGA is not set
|
||||
# CONFIG_CMD_GPIO is not set
|
||||
|
||||
#
|
||||
# Shell scripting commands
|
||||
#
|
||||
CONFIG_CMD_ECHO=y
|
||||
CONFIG_CMD_ITEST=y
|
||||
CONFIG_CMD_SOURCE=y
|
||||
# CONFIG_CMD_SETEXPR is not set
|
||||
|
||||
#
|
||||
# Network commands
|
||||
#
|
||||
CONFIG_CMD_NET=y
|
||||
# CONFIG_CMD_TFTPPUT is not set
|
||||
# CONFIG_CMD_TFTPSRV is not set
|
||||
# CONFIG_CMD_RARP is not set
|
||||
CONFIG_CMD_DHCP=y
|
||||
CONFIG_CMD_NFS=y
|
||||
CONFIG_CMD_MII=y
|
||||
CONFIG_CMD_PING=y
|
||||
# CONFIG_CMD_CDP is not set
|
||||
# CONFIG_CMD_SNTP is not set
|
||||
# CONFIG_CMD_DNS is not set
|
||||
# CONFIG_CMD_LINK_LOCAL is not set
|
||||
|
||||
#
|
||||
# Misc commands
|
||||
#
|
||||
# CONFIG_CMD_CACHE is not set
|
||||
# CONFIG_CMD_TIME is not set
|
||||
CONFIG_CMD_MISC=y
|
||||
# CONFIG_CMD_TIMER is not set
|
||||
# CONFIG_CMD_QFW is not set
|
||||
|
||||
#
|
||||
# Power commands
|
||||
#
|
||||
|
||||
#
|
||||
# Security commands
|
||||
#
|
||||
|
||||
#
|
||||
# Filesystem commands
|
||||
#
|
||||
CONFIG_CMD_EXT2=y
|
||||
CONFIG_CMD_EXT4=y
|
||||
CONFIG_CMD_EXT4_WRITE=y
|
||||
CONFIG_CMD_FAT=y
|
||||
CONFIG_CMD_FS_GENERIC=y
|
||||
CONFIG_SUPPORT_OF_CONTROL=y
|
||||
|
||||
#
|
||||
# Device Tree Control
|
||||
#
|
||||
# CONFIG_OF_CONTROL is not set
|
||||
CONFIG_NET=y
|
||||
# CONFIG_NET_RANDOM_ETHADDR is not set
|
||||
# CONFIG_NETCONSOLE is not set
|
||||
CONFIG_NET_TFTP_VARS=y
|
||||
CONFIG_BOOTP_PXE_CLIENTARCH=0x15
|
||||
CONFIG_BOOTP_VCI_STRING="U-Boot.armv7"
|
||||
|
||||
#
|
||||
# Device Drivers
|
||||
#
|
||||
|
||||
#
|
||||
# Generic Driver Options
|
||||
#
|
||||
CONFIG_DM=y
|
||||
CONFIG_DM_WARN=y
|
||||
CONFIG_DM_DEVICE_REMOVE=y
|
||||
CONFIG_DM_STDIO=y
|
||||
CONFIG_DM_SEQ_ALIAS=y
|
||||
# CONFIG_SPL_DM_SEQ_ALIAS is not set
|
||||
# CONFIG_REGMAP is not set
|
||||
# CONFIG_SPL_REGMAP is not set
|
||||
# CONFIG_DEVRES is not set
|
||||
# CONFIG_ADC is not set
|
||||
# CONFIG_ADC_EXYNOS is not set
|
||||
# CONFIG_ADC_SANDBOX is not set
|
||||
# CONFIG_BLOCK_CACHE is not set
|
||||
|
||||
#
|
||||
# Clock
|
||||
#
|
||||
# CONFIG_CLK is not set
|
||||
# CONFIG_CPU is not set
|
||||
|
||||
#
|
||||
# Hardware crypto devices
|
||||
#
|
||||
# CONFIG_FSL_CAAM is not set
|
||||
|
||||
#
|
||||
# Demo for driver model
|
||||
#
|
||||
# CONFIG_DM_DEMO is not set
|
||||
|
||||
#
|
||||
# DFU support
|
||||
#
|
||||
CONFIG_DFU_TFTP=y
|
||||
|
||||
#
|
||||
# DMA Support
|
||||
#
|
||||
# CONFIG_DMA is not set
|
||||
# CONFIG_TI_EDMA3 is not set
|
||||
|
||||
#
|
||||
# GPIO Support
|
||||
#
|
||||
# CONFIG_ALTERA_PIO is not set
|
||||
# CONFIG_DWAPB_GPIO is not set
|
||||
# CONFIG_ATMEL_PIO4 is not set
|
||||
# CONFIG_INTEL_BROADWELL_GPIO is not set
|
||||
# CONFIG_LPC32XX_GPIO is not set
|
||||
# CONFIG_MSM_GPIO is not set
|
||||
# CONFIG_ROCKCHIP_GPIO is not set
|
||||
# CONFIG_VYBRID_GPIO is not set
|
||||
# CONFIG_DM_74X164 is not set
|
||||
# CONFIG_DM_PCA953X is not set
|
||||
|
||||
#
|
||||
# I2C support
|
||||
#
|
||||
# CONFIG_DM_I2C_COMPAT is not set
|
||||
# CONFIG_SYS_I2C_DW is not set
|
||||
# CONFIG_CROS_EC_KEYB is not set
|
||||
|
||||
#
|
||||
# LED Support
|
||||
#
|
||||
# CONFIG_LED is not set
|
||||
|
||||
#
|
||||
# Mailbox Controller Support
|
||||
#
|
||||
|
||||
#
|
||||
# Memory Controller drivers
|
||||
#
|
||||
|
||||
#
|
||||
# Multifunction device drivers
|
||||
#
|
||||
# CONFIG_MISC is not set
|
||||
# CONFIG_CROS_EC is not set
|
||||
# CONFIG_FSL_SEC_MON is not set
|
||||
# CONFIG_MXC_OCOTP is not set
|
||||
# CONFIG_PWRSEQ is not set
|
||||
# CONFIG_PCA9551_LED is not set
|
||||
# CONFIG_SYSRESET is not set
|
||||
# CONFIG_WINBOND_W83627 is not set
|
||||
|
||||
#
|
||||
# MMC Host controller Support
|
||||
#
|
||||
# CONFIG_DM_MMC is not set
|
||||
|
||||
#
|
||||
# MTD Support
|
||||
#
|
||||
# CONFIG_MTD is not set
|
||||
|
||||
#
|
||||
# NAND Device Support
|
||||
#
|
||||
# CONFIG_NAND_DENALI is not set
|
||||
# CONFIG_NAND_VF610_NFC is not set
|
||||
# CONFIG_NAND_PXA3XX is not set
|
||||
# CONFIG_NAND_ARASAN is not set
|
||||
|
||||
#
|
||||
# Generic NAND options
|
||||
#
|
||||
# CONFIG_SPL_NAND_DENALI is not set
|
||||
|
||||
#
|
||||
# SPI Flash Support
|
||||
#
|
||||
# CONFIG_SPI_FLASH is not set
|
||||
# CONFIG_DM_ETH is not set
|
||||
# CONFIG_PHYLIB is not set
|
||||
# CONFIG_NETDEVICES is not set
|
||||
|
||||
#
|
||||
# PCI
|
||||
#
|
||||
# CONFIG_DM_PCI is not set
|
||||
|
||||
#
|
||||
# Pin controllers
|
||||
#
|
||||
# CONFIG_PINCTRL is not set
|
||||
|
||||
#
|
||||
# Power
|
||||
#
|
||||
# CONFIG_DM_PMIC is not set
|
||||
# CONFIG_DM_REGULATOR is not set
|
||||
# CONFIG_DM_PWM is not set
|
||||
# CONFIG_RAM is not set
|
||||
|
||||
#
|
||||
# Remote Processor drivers
|
||||
#
|
||||
|
||||
#
|
||||
# Real Time Clock
|
||||
#
|
||||
# CONFIG_DM_RTC is not set
|
||||
|
||||
#
|
||||
# Serial drivers
|
||||
#
|
||||
CONFIG_REQUIRE_SERIAL_CONSOLE=y
|
||||
CONFIG_SERIAL_PRESENT=y
|
||||
CONFIG_SPL_SERIAL_PRESENT=y
|
||||
# CONFIG_DEBUG_UART is not set
|
||||
# CONFIG_DEBUG_UART_SKIP_INIT is not set
|
||||
# CONFIG_ALTERA_JTAG_UART is not set
|
||||
# CONFIG_ALTERA_UART is not set
|
||||
# CONFIG_FSL_LPUART is not set
|
||||
CONFIG_SYS_NS16550=y
|
||||
# CONFIG_MSM_SERIAL is not set
|
||||
|
||||
#
|
||||
# Sound support
|
||||
#
|
||||
# CONFIG_SOUND is not set
|
||||
|
||||
#
|
||||
# SPI Support
|
||||
#
|
||||
# CONFIG_FSL_ESPI is not set
|
||||
# CONFIG_TI_QSPI is not set
|
||||
|
||||
#
|
||||
# SPMI support
|
||||
#
|
||||
# CONFIG_SPMI is not set
|
||||
# CONFIG_DM_THERMAL is not set
|
||||
|
||||
#
|
||||
# Timer Support
|
||||
#
|
||||
# CONFIG_TIMER is not set
|
||||
|
||||
#
|
||||
# TPM support
|
||||
#
|
||||
CONFIG_USB=y
|
||||
# CONFIG_DM_USB is not set
|
||||
|
||||
#
|
||||
# USB Host Controller Drivers
|
||||
#
|
||||
# CONFIG_USB_XHCI_HCD is not set
|
||||
# CONFIG_USB_XHCI is not set
|
||||
# CONFIG_USB_EHCI_HCD is not set
|
||||
# CONFIG_USB_EHCI is not set
|
||||
# CONFIG_USB_DWC3 is not set
|
||||
|
||||
#
|
||||
# MUSB Controller Driver
|
||||
#
|
||||
CONFIG_USB_MUSB_HOST=y
|
||||
CONFIG_USB_MUSB_GADGET=y
|
||||
|
||||
#
|
||||
# ULPI drivers
|
||||
#
|
||||
|
||||
#
|
||||
# USB peripherals
|
||||
#
|
||||
# CONFIG_USB_STORAGE is not set
|
||||
# CONFIG_USB_KEYBOARD is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_ATMEL_USBA is not set
|
||||
# CONFIG_USB_GADGET_DWC2_OTG is not set
|
||||
# CONFIG_CI_UDC is not set
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=2
|
||||
CONFIG_USB_GADGET_DUALSPEED=y
|
||||
CONFIG_USB_GADGET_DOWNLOAD=y
|
||||
CONFIG_G_DNL_MANUFACTURER="Texas Instruments"
|
||||
CONFIG_G_DNL_VENDOR_NUM=0x0451
|
||||
CONFIG_G_DNL_PRODUCT_NUM=0xd022
|
||||
|
||||
#
|
||||
# Graphics support
|
||||
#
|
||||
# CONFIG_DM_VIDEO is not set
|
||||
|
||||
#
|
||||
# TrueType Fonts
|
||||
#
|
||||
# CONFIG_VIDEO_VESA is not set
|
||||
# CONFIG_VIDEO_LCD_ANX9804 is not set
|
||||
# CONFIG_VIDEO_LCD_SSD2828 is not set
|
||||
# CONFIG_VIDEO_MVEBU is not set
|
||||
# CONFIG_DISPLAY is not set
|
||||
# CONFIG_VIDEO_BRIDGE is not set
|
||||
# CONFIG_PHYS_TO_BUS is not set
|
||||
|
||||
#
|
||||
# File systems
|
||||
#
|
||||
|
||||
#
|
||||
# Library routines
|
||||
#
|
||||
# CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set
|
||||
CONFIG_HAVE_PRIVATE_LIBGCC=y
|
||||
# CONFIG_USE_PRIVATE_LIBGCC is not set
|
||||
CONFIG_SYS_HZ=1000
|
||||
# CONFIG_USE_TINY_PRINTF is not set
|
||||
CONFIG_REGEX=y
|
||||
# CONFIG_LIB_RAND is not set
|
||||
# CONFIG_CMD_DHRYSTONE is not set
|
||||
# CONFIG_RSA is not set
|
||||
# CONFIG_TPM is not set
|
||||
|
||||
#
|
||||
# Hashing Support
|
||||
#
|
||||
# CONFIG_SHA1 is not set
|
||||
# CONFIG_SHA256 is not set
|
||||
# CONFIG_SHA_HW_ACCEL is not set
|
||||
|
||||
#
|
||||
# Compression Support
|
||||
#
|
||||
# CONFIG_LZ4 is not set
|
||||
# CONFIG_ERRNO_STR is not set
|
||||
CONFIG_OF_LIBFDT=y
|
||||
# CONFIG_SPL_OF_LIBFDT is not set
|
||||
# CONFIG_EFI_LOADER is not set
|
||||
# CONFIG_UNIT_TEST is not set
|
||||
|
|
@ -13,12 +13,18 @@
|
|||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_AM335X_NETBIRD_V2_H
|
||||
#define __CONFIG_AM335X_NETBIRD_V2_H
|
||||
#ifndef __CONFIG_AM335X_NBHW16_H
|
||||
#define __CONFIG_AM335X_NBHW16_H
|
||||
|
||||
#include <configs/ti_am335x_common.h>
|
||||
|
||||
/* Disable U-Boot load from filesystems, to save around 10 kB SPL image size */
|
||||
#ifdef CONFIG_SYS_MMCSD_FS_BOOT_PARTITION
|
||||
# undef CONFIG_SYS_MMCSD_FS_BOOT_PARTITION
|
||||
#endif
|
||||
|
||||
#undef CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC
|
||||
|
||||
#undef CONFIG_HW_WATCHDOG
|
||||
#undef CONFIG_OMPAP_WATCHDOG
|
||||
#undef CONFIG_SPL_WATCHDOG_SUPPORT
|
||||
|
|
@ -40,59 +46,118 @@
|
|||
|
||||
#include <config_distro_bootcmd.h>
|
||||
|
||||
#define CONFIG_ARP_TIMEOUT 200
|
||||
/* Dynamic override for PHY_ANEG_TIMEOUT value */
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
# ifndef __ASSEMBLER__
|
||||
int eth_phy_timeout(void);
|
||||
# endif
|
||||
#endif
|
||||
#define PHY_ANEG_TIMEOUT eth_phy_timeout()
|
||||
#define PHY_ANEG_DEFAULT_TIMEOUT 5000
|
||||
|
||||
#define CONFIG_ARP_TIMEOUT 200
|
||||
#undef CONFIG_NET_RETRY_COUNT
|
||||
#define CONFIG_NET_RETRY_COUNT 5
|
||||
#define CONFIG_NET_RETRY_COUNT 5
|
||||
#define CONFIG_BOOTP_MAY_FAIL
|
||||
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
#define KERNEL_ADDR "0x80000000"
|
||||
#define LOAD_ADDR "0x83000000"
|
||||
#define FDT_ADDR "0x82000000"
|
||||
#define PXE_ADDR "0x82800000"
|
||||
|
||||
/*
|
||||
* Memory map for booting Linux
|
||||
*
|
||||
* 0x80000000 32MB KERNEL_ADDR (kernel_addr), kernel execution address
|
||||
* 0x82000000 190MB KERNEL_ADDR_R (kernel_addr_r), FIT image/kernel loading address
|
||||
* kernel will be relocated kernel_addr
|
||||
* for FIT images, ramdisc and dtb will be relocated to
|
||||
* top of bootmemory (0x8e000000 downwards)
|
||||
* 0x8BE00000 1MB FDT_ADDR_R (fdt_addr_r), device tree if separate from kernel/FIT
|
||||
* 0x8BF00000 1MB PXE_ADDR (pxefile_addr_r), pxe configuration file (pxe get command)
|
||||
* 0x8C000000 32MB LOAD_ADDR (load_addr), loading address for generic files
|
||||
* <end of boot memory>
|
||||
* 0x8E000000 4B NRSW reset reason
|
||||
* 32MB <>, Free space
|
||||
* 0x90000000 256MB <>, Free space, 512MB systems
|
||||
* 0xA0000000 512MB <>, Free space, 1GB systems only
|
||||
* 0xC0000000 End of RAM
|
||||
*/
|
||||
|
||||
#define KERNEL_ADDR "0x80000000"
|
||||
#define KERNEL_ADDR_R "0x82000000"
|
||||
#define FDT_ADDR_R "0x8BE00000"
|
||||
#define PXE_ADDR "0x8BF00000"
|
||||
#define LOAD_ADDR "0x8C000000"
|
||||
|
||||
/*
|
||||
* Limit boot memory to 256 MBytes to comply with kernel initial memory layout
|
||||
* This is the official way to restrict image load addresses.
|
||||
* Don't use xx_high_addr variables.
|
||||
*/
|
||||
#define BOOTM_SIZE "0x0E000000"
|
||||
|
||||
#define MAIN_BOOTCMD "run sdboot"
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"kernel_image=kernel.bin\0" \
|
||||
"fdt_image=openwrt-nbhw16-nb800.dtb\0" \
|
||||
"modeboot=sdboot\0" \
|
||||
"fdt_addr=" FDT_ADDR "\0" \
|
||||
"kernel_addr=" KERNEL_ADDR "\0" \
|
||||
/* Memory Adresses */ \
|
||||
"fdt_addr_r=" FDT_ADDR_R "\0" \
|
||||
"kernel_addr=" KERNEL_ADDR "\0" /* NRSW only */ \
|
||||
"kernel_addr_r=" KERNEL_ADDR_R "\0" \
|
||||
"load_addr=" LOAD_ADDR "\0" \
|
||||
"root_part=1\0" /* Default root partition, overwritte in board file */ \
|
||||
"defaultconsole=ttyS1\0" /* Default output console */ \
|
||||
"add_sd_bootargs=setenv bootargs $bootargs root=/dev/mmcblk1p$root_part rootfstype=ext4 console=$defaultconsole,115200 rootwait loglevel=4\0" \
|
||||
"add_version_bootargs=setenv bootargs $bootargs\0" \
|
||||
"pxefile_addr_r=" PXE_ADDR "\0" \
|
||||
"bootm_size=" BOOTM_SIZE "\0" \
|
||||
\
|
||||
/* Misc */ \
|
||||
"defaultconsole=ttyS1\0" \
|
||||
"fdt_skip_update=yes\0" \
|
||||
"bootdelay=0\0" \
|
||||
\
|
||||
/* Networking */ \
|
||||
"ethprime=cpsw\0" \
|
||||
"sdbringup=echo Try bringup boot && ext4load mmc 1:$root_part $kernel_addr /boot/zImage && " \
|
||||
"ext4load mmc 1:$root_part $fdt_addr /boot/$fdt_image && setenv bootargs $bootargs rw;\0" \
|
||||
"sdprod=ext4load mmc 1:$root_part $kernel_addr /boot/$kernel_image && " \
|
||||
"ext4load mmc 1:$root_part $fdt_addr /boot/$fdt_image && setenv bootargs $bootargs ro;\0" \
|
||||
"sdboot=if mmc dev 1; then echo Copying Linux from SD to RAM...; "\
|
||||
"if test -e mmc 1:$root_part /boot/$kernel_image; then run sdprod; " \
|
||||
"else run sdbringup; fi; " \
|
||||
"run add_sd_bootargs; run add_version_bootargs; run shieldcmd; run modifyfdtcmd; " \
|
||||
"bootz $kernel_addr - $fdt_addr; fi\0" \
|
||||
"bootcmd=run sdboot\0" \
|
||||
"ethopts=ti_cpsw.rx_packet_max=1526\0" \
|
||||
"ipaddr=192.168.1.1\0" \
|
||||
"serverip=192.168.1.254\0" \
|
||||
"pxefile_addr_r=" PXE_ADDR "\0" \
|
||||
"fdt_addr_r=" FDT_ADDR "\0" \
|
||||
"kernel_addr_r=" KERNEL_ADDR "\0" \
|
||||
"ramdisk_addr_r=" LOAD_ADDR "\0" \
|
||||
"bootpretryperiod=1000\0" \
|
||||
"tftptimeout=2000\0" \
|
||||
"tftptimeoutcountmax=5\0" \
|
||||
"bootpretryperiod=2000\0" \
|
||||
"autoload=false\0" \
|
||||
"shieldcmd=\0" \
|
||||
"fdtshieldcmd=\0" \
|
||||
"modifyfdtcmd=fdt addr $fdt_addr; run fdtshieldcmd;\0" \
|
||||
"tftp_recovery=tftpboot $kernel_addr recovery-image; tftpboot $fdt_addr recovery-dtb; setenv bootargs rdinit=/etc/preinit console=$defaultconsole,115200 debug; run shieldcmd; run modifyfdtcmd; bootz $kernel_addr - $fdt_addr\0" \
|
||||
"pxe_recovery=sleep 3 && dhcp && pxe get && pxe boot\0" \
|
||||
"recovery=run pxe_recovery || setenv ipaddr $ipaddr; setenv serverip $serverip; run tftp_recovery\0" /* setenv ipaddr and serverip is necessary, because dhclient can destroy the IPs inernally */
|
||||
\
|
||||
/* NRSW boot */ \
|
||||
"root_part=1\0" /* from NRSW, required here? set from board.c */ \
|
||||
"kernel_image=kernel.bin\0" \
|
||||
"fdt_image=openwrt-nbhw16-nb800.dtb\0" \
|
||||
"add_sd_bootargs=setenv bootargs $bootargs root=/dev/${mmc_dev}p$root_part rootfstype=ext4 " \
|
||||
"console=$defaultconsole,115200 rootwait loglevel=4 ti_cpsw.rx_packet_max=1526\0" \
|
||||
"add_version_bootargs=setenv bootargs $bootargs\0" \
|
||||
"sdbringup=echo Try bringup boot && ext4load mmc 1:$root_part $kernel_addr /boot/zImage && " \
|
||||
"ext4load mmc 1:$root_part $fdt_addr /boot/$fdt_image && setenv bootargs $bootargs rw;\0" \
|
||||
"sdprod=ext4load mmc 1:$root_part $kernel_addr /boot/$kernel_image && " \
|
||||
"ext4load mmc 1:$root_part $fdt_addr /boot/$fdt_image && setenv bootargs $bootargs ro;\0" \
|
||||
"sdboot=env set fdt_addr " FDT_ADDR_R "; "\
|
||||
"if mmc dev 1; then echo Copying Linux from SD to RAM...; "\
|
||||
"if test -e mmc 1:$root_part /boot/$kernel_image; then run sdprod; " \
|
||||
"else run sdbringup; fi; " \
|
||||
/* For v4.19 kernel $mmc_dev should be "mmcblk1" (read from DT), for v3.18 kernel: "mmcblk0" */ \
|
||||
"fdt addr $fdt_addr;run fdtshieldcmd;if fdt get value mmc_dev /nm_env nm,mmc-dev;then;else setenv mmc_dev mmcblk0;fi;" \
|
||||
"run add_sd_bootargs; run add_version_bootargs; run shieldcmd; " \
|
||||
"bootz $kernel_addr - $fdt_addr; fi\0" \
|
||||
\
|
||||
/* Boot command */ \
|
||||
"bootcmd=" MAIN_BOOTCMD "\0" \
|
||||
\
|
||||
/* Recovery boot (same for OSTree and NRSW) */ \
|
||||
"recovery=run pxe_recovery || setenv ipaddr $ipaddr; setenv serverip $serverip; run tftp_recovery\0" \
|
||||
/* setenv ipaddr and serverip is necessary, because dhclient destroys the IPs internally */ \
|
||||
"pxe_recovery=mdio up $ethprime && dhcp && pxe get && pxe boot\0" \
|
||||
"tftp_recovery=tftpboot $kernel_addr_r recovery-image; tftpboot $fdt_addr_r recovery-dtb; " \
|
||||
"fdt addr $fdt_addr_r; run fdtshieldcmd; " \
|
||||
"setenv bootargs rdinit=/etc/preinit console=$defaultconsole,115200 " \
|
||||
"debug $ethopts; run shieldcmd; " \
|
||||
"bootz $kernel_addr_r - $fdt_addr_r\0" /* kernel_addr_r */
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* TODO: Check if ok for NRSW? */
|
||||
#define CONFIG_ZERO_BOOTDELAY_CHECK
|
||||
|
||||
/* NS16550 Configuration */
|
||||
#define CONFIG_SYS_NS16550_COM1 0x44e09000 /* Base EVM has UART0 */
|
||||
#define CONFIG_SYS_NS16550_COM2 0x48022000 /* UART1 */
|
||||
|
|
@ -108,22 +173,20 @@
|
|||
#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2
|
||||
#define CONFIG_SYS_I2C_SPEED 100000
|
||||
#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 4
|
||||
#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 50
|
||||
#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 50 /* TODO: Can this be reduced to 20ms */
|
||||
|
||||
#define CONFIG_ENV_IS_IN_EEPROM
|
||||
#define CONFIG_ENV_OFFSET 0x1000 /* The Environment is located at 4k */
|
||||
#define CONFIG_ENV_SIZE 0x800 /* The maximum size is 2k */
|
||||
#undef CONFIG_SPL_ENV_SUPPORT
|
||||
#undef CONFIG_SPL_ENV_SUPPORT
|
||||
#undef CONFIG_SPL_NAND_SUPPORT
|
||||
#undef CONFIG_SPL_ONENAND_SUPPORT
|
||||
|
||||
|
||||
/* We need to disable SPI to not confuse the eeprom env driver */
|
||||
#undef CONFIG_SPI
|
||||
#undef CONFIG_SPI_BOOT
|
||||
#undef CONFIG_SPL_OS_BOOT
|
||||
|
||||
#define CONFIG_SPL_POWER_SUPPORT
|
||||
#define CONFIG_SPL_YMODEM_SUPPORT
|
||||
|
||||
#define CONFIG_SPL_LDSCRIPT "$(CPUDIR)/am33xx/u-boot-spl.lds"
|
||||
|
|
@ -142,14 +205,7 @@
|
|||
#define CONFIG_USB_MUSB_PIO_ONLY
|
||||
#define CONFIG_USB_MUSB_DISABLE_BULK_COMBINE_SPLIT
|
||||
#define CONFIG_AM335X_USB0
|
||||
#define CONFIG_AM335X_USB0_MODE MUSB_HOST
|
||||
|
||||
/* Fastboot */
|
||||
#define CONFIG_USB_FUNCTION_FASTBOOT
|
||||
#define CONFIG_CMD_FASTBOOT
|
||||
#define CONFIG_ANDROID_BOOT_IMAGE
|
||||
#define CONFIG_FASTBOOT_BUF_ADDR CONFIG_SYS_LOAD_ADDR
|
||||
#define CONFIG_FASTBOOT_BUF_SIZE 0x07000000
|
||||
#define CONFIG_AM335X_USB0_MODE MUSB_HOST
|
||||
|
||||
/* To support eMMC booting */
|
||||
#define CONFIG_STORAGE_EMMC
|
||||
|
|
@ -168,6 +224,7 @@
|
|||
#endif /* CONFIG_DM_ETH */
|
||||
#endif /* CONFIG_USB_MUSB_GADGET */
|
||||
|
||||
|
||||
/*
|
||||
* Disable MMC DM for SPL build and can be re-enabled after adding
|
||||
* DM support in SPL
|
||||
|
|
@ -217,7 +274,6 @@
|
|||
#endif
|
||||
|
||||
/* Network. */
|
||||
#define CONFIG_PHY_GIGE
|
||||
#define CONFIG_PHYLIB
|
||||
#define CONFIG_PHY_SMSC
|
||||
|
||||
|
|
@ -237,9 +293,25 @@
|
|||
#define CONFIG_POWER_TPS65217
|
||||
#define CONFIG_POWER_TPS62362
|
||||
|
||||
#ifdef CONFIG_NRSW_BUILD
|
||||
/* support for NM packed bootloader */
|
||||
#define CONFIG_NM_BOOTLOADER_FORMAT
|
||||
|
||||
/* password protected login */
|
||||
#define CONFIG_CRYPT
|
||||
#define CONFIG_NM_LOGIN
|
||||
#define CONFIG_NM_LOGIN_PART "1:3" /* TODO: Define location of file for OSTree/Yocto */
|
||||
#define CONFIG_NM_LOGIN_PASSWD "/root/boot/bootpass"
|
||||
#endif
|
||||
#define CONFIG_CMD_PXE
|
||||
|
||||
/* Never enable ISO it is broaken and can lead to a crash */
|
||||
#define CONFIG_JTAG_MARKER_SPL 0x402FFF00
|
||||
#define CONFIG_JTAG_MARKER_UBOOT 0x807FFF00
|
||||
|
||||
/* SPL command is not needed */
|
||||
#undef CONFIG_CMD_SPL
|
||||
|
||||
/* Never enable ISO it is broken and can lead to a crash */
|
||||
#undef CONFIG_ISO_PARTITION
|
||||
|
||||
#endif /* ! __CONFIG_AM335X_NETBIRD_V2_H */
|
||||
#endif /* ! __CONFIG_AM335X_NBHW16_H */
|
||||
|
|
@ -1,219 +0,0 @@
|
|||
/*
|
||||
* am335x_evm.h
|
||||
*
|
||||
* Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
* 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 version 2.
|
||||
*
|
||||
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
|
||||
* kind, whether express or implied; without even the implied warranty
|
||||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_AM335X_EVM_H
|
||||
#define __CONFIG_AM335X_EVM_H
|
||||
|
||||
#include <configs/ti_am335x_common.h>
|
||||
|
||||
#undef CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC
|
||||
#undef CONFIG_HW_WATCHDOG
|
||||
#undef CONFIG_OMPAP_WATCHDOG
|
||||
#undef CONFIG_SPL_WATCHDOG_SUPPORT
|
||||
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
# define CONFIG_TIMESTAMP
|
||||
# define CONFIG_LZO
|
||||
#endif
|
||||
|
||||
#define CONFIG_SYS_BOOTM_LEN (16 << 20)
|
||||
|
||||
#define MACH_TYPE_TIAM335EVM 3589 /* Until the next sync */
|
||||
#define CONFIG_MACH_TYPE MACH_TYPE_TIAM335EVM
|
||||
#define CONFIG_BOARD_LATE_INIT
|
||||
|
||||
/* Clock Defines */
|
||||
#define V_OSCK 0 /* 0 means detect from sysboot1 config */
|
||||
#define V_SCLK (V_OSCK)
|
||||
|
||||
#include <config_distro_bootcmd.h>
|
||||
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"kernel_image=kernel.bin\0" \
|
||||
"fdt_image=openwrt-nbhw16.dtb\0" \
|
||||
"modeboot=sdboot\0" \
|
||||
"fdt_addr=0x82000000\0" \
|
||||
"kernel_addr=0x80000000\0" \
|
||||
"load_addr=0x83000000\0" \
|
||||
"root_part=1\0" /* Default root partition, overwritte in board/mv_ebu/a38x/nbhw14_env.c */ \
|
||||
"add_sd_bootargs=setenv bootargs $bootargs root=/dev/mmcblk1p$root_part rootfstype=ext4 console=ttyO0,115200 rootwait earlyprintk\0" \
|
||||
"add_version_bootargs=setenv bootargs $bootargs\0" \
|
||||
"fdt_skip_update=yes\0" \
|
||||
"ethprime=cpsw\0" \
|
||||
"sdbringup=echo Try bringup boot && ext4load mmc 1:$root_part $kernel_addr /boot/zImage && " \
|
||||
"ext4load mmc 1:$root_part $fdt_addr /boot/$fdt_image && setenv bootargs $bootargs rw;\0" \
|
||||
"sdprod=ext4load mmc 1:$root_part $kernel_addr /boot/$kernel_image && " \
|
||||
"ext4load mmc 1:$root_part $fdt_addr /boot/$fdt_image && setenv bootargs $bootargs ro;\0" \
|
||||
"sdboot=if mmc dev 1; then echo Copying Linux from SD to RAM...; "\
|
||||
"if test -e mmc 1:$root_part /boot/$kernel_image; then run sdprod; " \
|
||||
"else run sdbringup; fi; " \
|
||||
"run add_sd_bootargs; run add_version_bootargs; " \
|
||||
"bootz $kernel_addr - $fdt_addr; fi\0" \
|
||||
"bootcmd=run sdboot\0" \
|
||||
"ipaddr=192.168.1.1\0" \
|
||||
"serverip=192.168.1.254\0" \
|
||||
"recovery=tftpboot $kernel_addr recovery-image; tftpboot $fdt_addr recovery-dtb; setenv bootargs rdinit=/etc/preinit console=ttyO0,115200 debug; bootz $kernel_addr - $fdt_addr\0"
|
||||
#endif
|
||||
|
||||
/* NS16550 Configuration */
|
||||
#define CONFIG_SYS_NS16550_COM1 0x44e09000 /* Base EVM has UART0 */
|
||||
#define CONFIG_SYS_NS16550_COM2 0x48022000 /* UART1 */
|
||||
#define CONFIG_SYS_NS16550_COM3 0x48024000 /* UART2 */
|
||||
#define CONFIG_SYS_NS16550_COM4 0x481a6000 /* UART3 */
|
||||
#define CONFIG_SYS_NS16550_COM5 0x481a8000 /* UART4 */
|
||||
#define CONFIG_SYS_NS16550_COM6 0x481aa000 /* UART5 */
|
||||
#define CONFIG_BAUDRATE 115200
|
||||
|
||||
#define CONFIG_CMD_EEPROM
|
||||
#define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* Main EEPROM */
|
||||
#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2
|
||||
#define CONFIG_SYS_I2C_SPEED 100000
|
||||
#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 4
|
||||
#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 50
|
||||
|
||||
#define CONFIG_ENV_IS_IN_EEPROM
|
||||
#define CONFIG_ENV_OFFSET 0x1000 /* The Environment is located at 4k */
|
||||
#define CONFIG_ENV_SIZE 0x800 /* The maximum size is 2k */
|
||||
#undef CONFIG_SPL_ENV_SUPPORT
|
||||
#undef CONFIG_SPL_NAND_SUPPORT
|
||||
#undef CONFIG_SPL_ONENAND_SUPPORT
|
||||
|
||||
|
||||
/* We need to disable SPI to not confuse the eeprom env driver */
|
||||
#undef CONFIG_SPI
|
||||
#undef CONFIG_SPI_BOOT
|
||||
#undef CONFIG_SPL_OS_BOOT
|
||||
|
||||
#define CONFIG_SPL_POWER_SUPPORT
|
||||
#define CONFIG_SPL_YMODEM_SUPPORT
|
||||
|
||||
#define CONFIG_SPL_LDSCRIPT "$(CPUDIR)/am33xx/u-boot-spl.lds"
|
||||
|
||||
#define CONFIG_SUPPORT_EMMC_BOOT
|
||||
|
||||
/*
|
||||
* USB configuration. We enable MUSB support, both for host and for
|
||||
* gadget. We set USB0 as peripheral and USB1 as host, based on the
|
||||
* board schematic and physical port wired to each. Then for host we
|
||||
* add mass storage support and for gadget we add both RNDIS ethernet
|
||||
* and DFU.
|
||||
*/
|
||||
#define CONFIG_USB_MUSB_DSPS
|
||||
#define CONFIG_ARCH_MISC_INIT
|
||||
#define CONFIG_USB_MUSB_PIO_ONLY
|
||||
#define CONFIG_USB_MUSB_DISABLE_BULK_COMBINE_SPLIT
|
||||
#define CONFIG_AM335X_USB0
|
||||
#define CONFIG_AM335X_USB0_MODE MUSB_PERIPHERAL
|
||||
#define CONFIG_AM335X_USB1
|
||||
#define CONFIG_AM335X_USB1_MODE MUSB_HOST
|
||||
|
||||
/* Fastboot */
|
||||
#define CONFIG_USB_FUNCTION_FASTBOOT
|
||||
#define CONFIG_CMD_FASTBOOT
|
||||
#define CONFIG_ANDROID_BOOT_IMAGE
|
||||
#define CONFIG_FASTBOOT_BUF_ADDR CONFIG_SYS_LOAD_ADDR
|
||||
#define CONFIG_FASTBOOT_BUF_SIZE 0x07000000
|
||||
|
||||
/* To support eMMC booting */
|
||||
#define CONFIG_STORAGE_EMMC
|
||||
#define CONFIG_FASTBOOT_FLASH_MMC_DEV 1
|
||||
|
||||
#ifdef CONFIG_USB_MUSB_HOST
|
||||
#define CONFIG_USB_STORAGE
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_USB_MUSB_GADGET
|
||||
/* Removing USB gadget and can be enabled adter adding support usb DM */
|
||||
#ifndef CONFIG_DM_ETH
|
||||
#define CONFIG_USB_ETHER
|
||||
#define CONFIG_USB_ETH_RNDIS
|
||||
#define CONFIG_USBNET_HOST_ADDR "de:ad:be:af:00:00"
|
||||
#endif /* CONFIG_DM_ETH */
|
||||
#endif /* CONFIG_USB_MUSB_GADGET */
|
||||
|
||||
/*
|
||||
* Disable MMC DM for SPL build and can be re-enabled after adding
|
||||
* DM support in SPL
|
||||
*/
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
#undef CONFIG_DM_MMC
|
||||
#undef CONFIG_TIMER
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SPL_BUILD)
|
||||
/* Remove other SPL modes. */
|
||||
#undef CONFIG_SPL_NAND_SUPPORT
|
||||
#define CONFIG_ENV_IS_NOWHERE
|
||||
#undef CONFIG_PARTITION_UUIDS
|
||||
#undef CONFIG_EFI_PARTITION
|
||||
#endif
|
||||
|
||||
/* USB Device Firmware Update support */
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
#define CONFIG_USB_FUNCTION_DFU
|
||||
#define CONFIG_DFU_MMC
|
||||
#define DFU_ALT_INFO_MMC \
|
||||
"dfu_alt_info_mmc=" \
|
||||
"boot part 0 1;" \
|
||||
"rootfs part 0 2;" \
|
||||
"MLO fat 0 1;" \
|
||||
"MLO.raw raw 0x100 0x100;" \
|
||||
"u-boot.img.raw raw 0x300 0x400;" \
|
||||
"spl-os-args.raw raw 0x80 0x80;" \
|
||||
"spl-os-image.raw raw 0x900 0x2000;" \
|
||||
"spl-os-args fat 0 1;" \
|
||||
"spl-os-image fat 0 1;" \
|
||||
"u-boot.img fat 0 1;" \
|
||||
"uEnv.txt fat 0 1\0"
|
||||
#define DFU_ALT_INFO_NAND ""
|
||||
#define CONFIG_DFU_RAM
|
||||
#define DFU_ALT_INFO_RAM \
|
||||
"dfu_alt_info_ram=" \
|
||||
"kernel ram 0x80200000 0xD80000;" \
|
||||
"fdt ram 0x80F80000 0x80000;" \
|
||||
"ramdisk ram 0x81000000 0x4000000\0"
|
||||
#define DFUARGS \
|
||||
"dfu_alt_info_emmc=rawemmc raw 0 3751936\0" \
|
||||
DFU_ALT_INFO_MMC \
|
||||
DFU_ALT_INFO_RAM \
|
||||
DFU_ALT_INFO_NAND
|
||||
#endif
|
||||
|
||||
/* Network. */
|
||||
#define CONFIG_PHY_GIGE
|
||||
#define CONFIG_PHYLIB
|
||||
#define CONFIG_PHY_SMSC
|
||||
|
||||
#ifdef CONFIG_DRIVER_TI_CPSW
|
||||
#define CONFIG_CLOCK_SYNTHESIZER
|
||||
#define CLK_SYNTHESIZER_I2C_ADDR 0x65
|
||||
#endif
|
||||
|
||||
#define CONFIG_SYS_MEMTEST_START 0x80000000
|
||||
#define CONFIG_SYS_MEMTEST_END 0x87900000
|
||||
|
||||
/* Enable support for TPS 65218 */
|
||||
#define CONFIG_POWER
|
||||
#define CONFIG_POWER_I2C
|
||||
#define CONFIG_POWER_TPS65218
|
||||
/* For compatibility reasons (BeagleBone) */
|
||||
#define CONFIG_POWER_TPS65217
|
||||
#define CONFIG_POWER_TPS62362
|
||||
|
||||
/* Never enable ISO it is broaken and can lead to a crash */
|
||||
#undef CONFIG_ISO_PARTITION
|
||||
|
||||
#endif /* ! __CONFIG_AM335X_EVM_H */
|
||||
Loading…
Reference in New Issue