mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
arm, am33xx: update for siemens am335x based boards
updates for the siemens am335x based boards: - draco: add delay for DDR3 configuration - change MTD partition layout and add a possibility to redefine MTD layout in board header. - move ubi support to common header file - draco: improve dtb naming - draco: set CONFIG_SYS_CBSIZE to 1024 - add generic env based led Leds can now be defined in Environment - add generic env based dfu button Which gpio is used for the dfu button can be defined through the Environment - set MACH_TYPE only if defined - draco: increase CPU freq to 300MHz - Add time command to siemens am33xx boards - DDR3: increase default tRFC - draco: enable pullup for DFU and ERST pin - change print format DDR3 Signed-off-by: Samuel Egli <samuel.egli@siemens.com> Acked-by: Heiko Schocher <hs@denx.de> Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Heiko Schocher <hs@denx.de>
This commit is contained in:
parent
8607c4f127
commit
61159b7684
9 changed files with 430 additions and 180 deletions
|
@ -75,8 +75,9 @@ int board_init(void)
|
|||
i2c_set_bus_num(0);
|
||||
if (read_eeprom() < 0)
|
||||
puts("Could not get board ID.\n");
|
||||
|
||||
#ifdef CONFIG_MACH_TYPE
|
||||
gd->bd->bi_arch_number = CONFIG_MACH_TYPE;
|
||||
#endif
|
||||
gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
|
||||
|
||||
#ifdef CONFIG_FACTORYSET
|
||||
|
@ -102,21 +103,29 @@ const struct dpll_params *get_dpll_ddr_params(void)
|
|||
}
|
||||
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
|
||||
#define MAX_NR_LEDS 10
|
||||
#define MAX_PIN_NUMBER 128
|
||||
#define STARTUP 0
|
||||
|
||||
#if defined(BOARD_DFU_BUTTON_GPIO)
|
||||
/*
|
||||
* This command returns the status of the user button on
|
||||
* Input - none
|
||||
* Returns - 1 if button is held down
|
||||
* 0 if button is not held down
|
||||
*/
|
||||
static int
|
||||
do_userbutton(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
unsigned char get_button_state(char * const envname, unsigned char def)
|
||||
{
|
||||
int button = 0;
|
||||
int gpio;
|
||||
char *ptr_env;
|
||||
|
||||
gpio = BOARD_DFU_BUTTON_GPIO;
|
||||
gpio_request(gpio, "DFU");
|
||||
/* If button is not found we take default */
|
||||
ptr_env = getenv(envname);
|
||||
if (NULL == ptr_env) {
|
||||
gpio = def;
|
||||
} else {
|
||||
gpio = (unsigned char)simple_strtoul(ptr_env, NULL, 0);
|
||||
if (gpio > MAX_PIN_NUMBER)
|
||||
gpio = def;
|
||||
}
|
||||
|
||||
gpio_request(gpio, "");
|
||||
gpio_direction_input(gpio);
|
||||
if (gpio_get_value(gpio))
|
||||
button = 1;
|
||||
|
@ -127,6 +136,20 @@ do_userbutton(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|||
|
||||
return button;
|
||||
}
|
||||
/**
|
||||
* This command returns the status of the user button on
|
||||
* Input - none
|
||||
* Returns - 1 if button is held down
|
||||
* 0 if button is not held down
|
||||
*/
|
||||
static int
|
||||
do_userbutton(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
{
|
||||
int button = 0;
|
||||
button = get_button_state("button_dfu0", BOARD_DFU_BUTTON_GPIO);
|
||||
button |= get_button_state("button_dfu1", BOARD_DFU_BUTTON_GPIO);
|
||||
return button;
|
||||
}
|
||||
|
||||
U_BOOT_CMD(
|
||||
dfubutton, CONFIG_SYS_MAXARGS, 1, do_userbutton,
|
||||
|
@ -134,46 +157,6 @@ U_BOOT_CMD(
|
|||
""
|
||||
);
|
||||
#endif
|
||||
/*
|
||||
* This command sets led
|
||||
* Input - name of led
|
||||
* value of led
|
||||
* Returns - 1 if input does not match
|
||||
* 0 if led was set
|
||||
*/
|
||||
static int
|
||||
do_setled(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
{
|
||||
int gpio = 0;
|
||||
if (argc != 3)
|
||||
goto exit;
|
||||
#if defined(BOARD_STATUS_LED)
|
||||
if (!strcmp(argv[1], "stat"))
|
||||
gpio = BOARD_STATUS_LED;
|
||||
#endif
|
||||
#if defined(BOARD_DFU_BUTTON_LED)
|
||||
if (!strcmp(argv[1], "dfu"))
|
||||
gpio = BOARD_DFU_BUTTON_LED;
|
||||
#endif
|
||||
/* If argument does not mach exit */
|
||||
if (gpio == 0)
|
||||
goto exit;
|
||||
gpio_request(gpio, "");
|
||||
gpio_direction_output(gpio, 1);
|
||||
if (!strcmp(argv[2], "1"))
|
||||
gpio_set_value(gpio, 1);
|
||||
else
|
||||
gpio_set_value(gpio, 0);
|
||||
return 0;
|
||||
exit:
|
||||
return 1;
|
||||
}
|
||||
|
||||
U_BOOT_CMD(
|
||||
led, CONFIG_SYS_MAXARGS, 2, do_setled,
|
||||
"Set led on or off",
|
||||
"dfu val - set dfu led\nled stat val - set status led"
|
||||
);
|
||||
|
||||
static int
|
||||
do_usertestwdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
|
@ -189,4 +172,95 @@ U_BOOT_CMD(
|
|||
"Sends U-Boot into infinite loop",
|
||||
""
|
||||
);
|
||||
|
||||
/**
|
||||
* Get led gpios from env and set them.
|
||||
* The led define in environment need to need to be of the form ledN=NN,S0,S1
|
||||
* where N is an unsigned integer from 0 to 9 and S0 and S1 is 0 or 1. S0
|
||||
* defines the startup state of the led, S1 the special state of the led when
|
||||
* it enters e.g. dfu mode.
|
||||
*/
|
||||
void set_env_gpios(unsigned char state)
|
||||
{
|
||||
char *ptr_env;
|
||||
char str_tmp[5]; /* must contain "ledX"*/
|
||||
char num[1];
|
||||
unsigned char i, idx, pos1, pos2, ccount;
|
||||
unsigned char gpio_n, gpio_s0, gpio_s1;
|
||||
|
||||
for (i = 0; i < MAX_NR_LEDS; i++) {
|
||||
strcpy(str_tmp, "led");
|
||||
sprintf(num, "%d", i);
|
||||
strcat(str_tmp, num);
|
||||
|
||||
/* If env var is not found we stop */
|
||||
ptr_env = getenv(str_tmp);
|
||||
if (NULL == ptr_env)
|
||||
break;
|
||||
|
||||
/* Find sperators position */
|
||||
pos1 = 0;
|
||||
pos2 = 0;
|
||||
ccount = 0;
|
||||
for (idx = 0; ptr_env[idx] != '\0'; idx++) {
|
||||
if (ptr_env[idx] == ',') {
|
||||
if (ccount++ < 1)
|
||||
pos1 = idx;
|
||||
else
|
||||
pos2 = idx;
|
||||
}
|
||||
}
|
||||
/* Bad led description skip this definition */
|
||||
if (pos2 <= pos1 || ccount > 2)
|
||||
continue;
|
||||
|
||||
/* Get pin number and request gpio */
|
||||
memset(str_tmp, 0, sizeof(str_tmp));
|
||||
strncpy(str_tmp, ptr_env, pos1*sizeof(char));
|
||||
gpio_n = (unsigned char)simple_strtoul(str_tmp, NULL, 0);
|
||||
|
||||
/* Invalid gpio number skip definition */
|
||||
if (gpio_n > MAX_PIN_NUMBER)
|
||||
continue;
|
||||
|
||||
gpio_request(gpio_n, "");
|
||||
|
||||
if (state == STARTUP) {
|
||||
/* get pin state 0 and set */
|
||||
memset(str_tmp, 0, sizeof(str_tmp));
|
||||
strncpy(str_tmp, ptr_env+pos1+1,
|
||||
(pos2-pos1-1)*sizeof(char));
|
||||
gpio_s0 = (unsigned char)simple_strtoul(str_tmp, NULL,
|
||||
0);
|
||||
|
||||
gpio_direction_output(gpio_n, gpio_s0);
|
||||
|
||||
} else {
|
||||
/* get pin state 1 and set */
|
||||
memset(str_tmp, 0, sizeof(str_tmp));
|
||||
strcpy(str_tmp, ptr_env+pos2+1);
|
||||
gpio_s1 = (unsigned char)simple_strtoul(str_tmp, NULL,
|
||||
0);
|
||||
gpio_direction_output(gpio_n, gpio_s1);
|
||||
}
|
||||
} /* loop through defined led in environment */
|
||||
}
|
||||
|
||||
static int do_board_led(cmd_tbl_t *cmdtp, int flag, int argc,
|
||||
char *const argv[])
|
||||
{
|
||||
if (argc != 2)
|
||||
return CMD_RET_USAGE;
|
||||
if ((unsigned char)simple_strtoul(argv[1], NULL, 0) == STARTUP)
|
||||
set_env_gpios(0);
|
||||
else
|
||||
set_env_gpios(1);
|
||||
return 0;
|
||||
};
|
||||
|
||||
U_BOOT_CMD(
|
||||
draco_led, CONFIG_SYS_MAXARGS, 2, do_board_led,
|
||||
"Set LEDs defined in environment",
|
||||
"<0|1>"
|
||||
);
|
||||
#endif /* !CONFIG_SPL_BUILD */
|
||||
|
|
|
@ -43,7 +43,7 @@ static struct draco_baseboard_id __attribute__((section(".data"))) settings;
|
|||
/* Default@303MHz-i0 */
|
||||
const struct ddr3_data ddr3_default = {
|
||||
0x33524444, 0x56312e35, 0x0080, 0x0000, 0x003A, 0x003F, 0x009F,
|
||||
0x0079, 0x0888A39B, 0x26247FDA, 0x501F821F, 0x00100206, 0x61A44A32,
|
||||
0x0079, 0x0888A39B, 0x26517FDA, 0x501F84EF, 0x00100206, 0x61A44A32,
|
||||
0x0000093B, 0x0000014A,
|
||||
"default name @303MHz \0",
|
||||
"default marking \0",
|
||||
|
@ -71,8 +71,8 @@ static void print_ddr3_timings(void)
|
|||
printf("clock:\t\t%d MHz\n", DDR_PLL_FREQ);
|
||||
printf("device:\t\t%s\n", settings.ddr3.manu_name);
|
||||
printf("marking:\t%s\n", settings.ddr3.manu_marking);
|
||||
printf("timing parameters\n");
|
||||
printf("diff\teeprom\tdefault\n");
|
||||
printf("%-20s, %-8s, %-8s, %-4s\n", "timing parameters", "eeprom",
|
||||
"default", "diff");
|
||||
PRINTARGS(magic);
|
||||
PRINTARGS(version);
|
||||
PRINTARGS(ddr3_sratio);
|
||||
|
@ -96,9 +96,12 @@ static void print_ddr3_timings(void)
|
|||
|
||||
static void print_chip_data(void)
|
||||
{
|
||||
struct ctrl_dev *cdev = (struct ctrl_dev *)CTRL_DEVICE_BASE;
|
||||
dpll_mpu_opp100.m = am335x_get_efuse_mpu_max_freq(cdev);
|
||||
printf("\nCPU BOARD\n");
|
||||
printf("device: \t'%s'\n", settings.chip.sdevname);
|
||||
printf("hw version: \t'%s'\n", settings.chip.shwver);
|
||||
printf("max freq: \t%d MHz\n", dpll_mpu_opp100.m);
|
||||
}
|
||||
#endif /* CONFIG_SPL_BUILD */
|
||||
|
||||
|
@ -193,6 +196,11 @@ struct ctrl_ioregs draco_ddr3_ioregs = {
|
|||
|
||||
config_ddr(DDR_PLL_FREQ, &draco_ddr3_ioregs, &draco_ddr3_data,
|
||||
&draco_ddr3_cmd_ctrl_data, &draco_ddr3_emif_reg_data, 0);
|
||||
|
||||
/* For Samsung 2Gbit RAM we need this delay otherwise config fails after
|
||||
* soft reset.
|
||||
*/
|
||||
udelay(2000);
|
||||
}
|
||||
|
||||
static void spl_siemens_board_init(void)
|
||||
|
@ -201,6 +209,26 @@ static void spl_siemens_board_init(void)
|
|||
}
|
||||
#endif /* if def CONFIG_SPL_BUILD */
|
||||
|
||||
#ifdef CONFIG_BOARD_LATE_INIT
|
||||
int board_late_init(void)
|
||||
{
|
||||
omap_nand_switch_ecc(1, 8);
|
||||
#ifdef CONFIG_FACTORYSET
|
||||
/* Set ASN in environment*/
|
||||
if (factory_dat.asn[0] != 0) {
|
||||
setenv("dtb_name", (char *)factory_dat.asn);
|
||||
} else {
|
||||
/* dtb suffix gets added in load script */
|
||||
setenv("dtb_name", "am335x-draco");
|
||||
}
|
||||
#else
|
||||
setenv("dtb_name", "am335x-draco");
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#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)
|
||||
|
@ -280,13 +308,4 @@ U_BOOT_CMD(
|
|||
#endif /* #if defined(CONFIG_DRIVER_TI_CPSW) */
|
||||
#endif /* #if (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) */
|
||||
|
||||
#ifdef CONFIG_BOARD_LATE_INIT
|
||||
int board_late_init(void)
|
||||
{
|
||||
omap_nand_switch_ecc(1, 8);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#include "../common/board.c"
|
||||
|
|
|
@ -16,9 +16,13 @@
|
|||
#ifndef _BOARD_H_
|
||||
#define _BOARD_H_
|
||||
|
||||
#define PARGS3(x) settings.ddr3.x-ddr3_default.x, \
|
||||
settings.ddr3.x, ddr3_default.x
|
||||
#define PRINTARGS(y) printf("%x, %8x, %8x : "#y"\n", PARGS3(y))
|
||||
#define PARGS(x) #x , /* Parameter Name */ \
|
||||
settings.ddr3.x, /* EEPROM Value */ \
|
||||
ddr3_default.x, /* Default Value */ \
|
||||
settings.ddr3.x-ddr3_default.x /* Difference */
|
||||
|
||||
#define PRINTARGS(y) printf("%-20s, %8x, %8x, %4d\n", PARGS(y))
|
||||
|
||||
#define MAGIC_CHIP 0x50494843
|
||||
|
||||
/* Automatic generated definition */
|
||||
|
@ -69,4 +73,7 @@ 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
|
||||
|
|
|
@ -60,7 +60,7 @@ static struct module_pin_mux nand_pin_mux[] = {
|
|||
|
||||
static struct module_pin_mux gpios_pin_mux[] = {
|
||||
/* DFU button GPIO0_27*/
|
||||
{OFFSET(gpmc_ad11), (MODE(7) | PULLUDEN | RXACTIVE)},
|
||||
{OFFSET(gpmc_ad11), (MODE(7) | PULLUDEN | PULLUP_EN | RXACTIVE)},
|
||||
{OFFSET(gpmc_csn3), MODE(7) }, /* LED0 GPIO2_0 */
|
||||
{OFFSET(emu0), MODE(7)}, /* LED1 GPIO3_7 */
|
||||
/* Triacs in HW Rev 2 */
|
||||
|
@ -222,7 +222,7 @@ static struct module_pin_mux gpios_pin_mux[] = {
|
|||
{OFFSET(vrefp), MODE(7) | RXACTIVE | PULLUDDIS},
|
||||
{OFFSET(vrefn), MODE(7) | RXACTIVE | PULLUDDIS},
|
||||
/* nRST for SMSC LAN9303 switch - GPIO2_24 */
|
||||
{OFFSET(lcd_pclk), MODE(7) }, /* LAN9303 nRST */
|
||||
{OFFSET(lcd_pclk), MODE(7) | PULLUDEN | PULLUP_EN }, /* LAN9303 nRST */
|
||||
{-1},
|
||||
};
|
||||
|
||||
|
|
|
@ -19,18 +19,23 @@
|
|||
|
||||
#include "siemens-am33x-common.h"
|
||||
|
||||
#define CONFIG_SYS_MPUCLK 275
|
||||
#define CONFIG_DISPLAY_CPUINFO
|
||||
#define CONFIG_SYS_MPUCLK 300
|
||||
#define DDR_PLL_FREQ 303
|
||||
#undef CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC
|
||||
|
||||
#define BOARD_DFU_BUTTON_GPIO 27
|
||||
#define BOARD_DFU_BUTTON_LED 64 /* red LED */
|
||||
#define BOARD_STATUS_LED 103 /* green LED */
|
||||
#define BOARD_DFU_BUTTON_GPIO 27 /* Use as default */
|
||||
#define GPIO_LAN9303_NRST 88 /* GPIO2_24 = gpio88 */
|
||||
|
||||
#define CONFIG_ENV_SETTINGS_BUTTONS_AND_LEDS \
|
||||
"button_dfu0=27\0" \
|
||||
"led0=103,1,0\0" \
|
||||
"led1=64,0,1\0"
|
||||
|
||||
#undef CONFIG_DOS_PARTITION
|
||||
#undef CONFIG_CMD_FAT
|
||||
|
||||
#define CONFIG_BOARD_LATE_INIT
|
||||
|
||||
/* Physical Memory Map */
|
||||
#define CONFIG_MAX_RAM_BANK_SIZE (1024 << 20) /* 1GB */
|
||||
|
@ -57,13 +62,25 @@
|
|||
/* Watchdog */
|
||||
#define CONFIG_OMAP_WATCHDOG
|
||||
|
||||
/* Define own nand partitions */
|
||||
#define CONFIG_ENV_OFFSET_REDUND 0x2E0000
|
||||
#define CONFIG_ENV_SIZE_REDUND 0x2000
|
||||
#define CONFIG_ENV_RANGE (4 * CONFIG_SYS_ENV_SECT_SIZE)
|
||||
|
||||
|
||||
#define MTDPARTS_DEFAULT MTDPARTS_DEFAULT_V2
|
||||
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
|
||||
/* Default env settings */
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"hostname=draco\0" \
|
||||
"nand_img_size=0x400000\0" \
|
||||
"optargs=\0" \
|
||||
CONFIG_COMMON_ENV_SETTINGS
|
||||
"preboot=draco_led 0\0" \
|
||||
CONFIG_ENV_SETTINGS_BUTTONS_AND_LEDS \
|
||||
CONFIG_ENV_SETTINGS_V2 \
|
||||
CONFIG_ENV_SETTINGS_NAND_V2
|
||||
|
||||
#ifndef CONFIG_RESTORE_FLASH
|
||||
/* set to negative value for no autoboot */
|
||||
|
@ -75,6 +92,7 @@
|
|||
"reset; " \
|
||||
"fi;" \
|
||||
"run nand_boot;" \
|
||||
"run nand_boot_backup;" \
|
||||
"reset;"
|
||||
|
||||
|
||||
|
|
|
@ -19,7 +19,8 @@
|
|||
|
||||
#include "siemens-am33x-common.h"
|
||||
|
||||
#define CONFIG_SYS_MPUCLK 275
|
||||
#define CONFIG_DISPLAY_CPUINFO
|
||||
#define CONFIG_SYS_MPUCLK 300
|
||||
#define DDR_PLL_FREQ 303
|
||||
#undef CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC
|
||||
|
||||
|
@ -28,9 +29,15 @@
|
|||
#define BOARD_STATUS_LED 103 /* green LED */
|
||||
#define GPIO_LAN9303_NRST 88 /* GPIO2_24 = gpio88 */
|
||||
|
||||
#define CONFIG_ENV_SETTINGS_BUTTONS_AND_LEDS \
|
||||
"button_dfu0=27\0" \
|
||||
"led0=103,1,0\0" \
|
||||
"led1=64,0,1\0"
|
||||
|
||||
#undef CONFIG_DOS_PARTITION
|
||||
#undef CONFIG_CMD_FAT
|
||||
|
||||
#define CONFIG_BOARD_LATE_INIT
|
||||
|
||||
/* Physical Memory Map */
|
||||
#define CONFIG_MAX_RAM_BANK_SIZE (1024 << 20) /* 1GB */
|
||||
|
@ -57,6 +64,14 @@
|
|||
/* Watchdog */
|
||||
#define CONFIG_OMAP_WATCHDOG
|
||||
|
||||
/* Define own nand partitions */
|
||||
#define CONFIG_ENV_OFFSET_REDUND 0x2E0000
|
||||
#define CONFIG_ENV_SIZE_REDUND 0x2000
|
||||
#define CONFIG_ENV_RANGE (4 * CONFIG_SYS_ENV_SECT_SIZE)
|
||||
|
||||
|
||||
#define MTDPARTS_DEFAULT MTDPARTS_DEFAULT_V2
|
||||
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
|
||||
/* Default env settings */
|
||||
|
@ -64,7 +79,10 @@
|
|||
"hostname=dxr2\0" \
|
||||
"nand_img_size=0x400000\0" \
|
||||
"optargs=\0" \
|
||||
CONFIG_COMMON_ENV_SETTINGS
|
||||
"preboot=draco_led 0\0" \
|
||||
CONFIG_ENV_SETTINGS_BUTTONS_AND_LEDS \
|
||||
CONFIG_ENV_SETTINGS_V2 \
|
||||
CONFIG_ENV_SETTINGS_NAND_V2
|
||||
|
||||
#ifndef CONFIG_RESTORE_FLASH
|
||||
/* set to negative value for no autoboot */
|
||||
|
@ -76,6 +94,7 @@
|
|||
"reset; " \
|
||||
"fi;" \
|
||||
"run nand_boot;" \
|
||||
"run nand_boot_backup;" \
|
||||
"reset;"
|
||||
|
||||
|
||||
|
|
|
@ -25,11 +25,14 @@
|
|||
#define DDR_PLL_FREQ 266
|
||||
|
||||
#define BOARD_DFU_BUTTON_GPIO 59
|
||||
#define BOARD_DFU_BUTTON_LED 117
|
||||
#define BOARD_LCD_POWER 111
|
||||
#define BOARD_BACK_LIGHT 112
|
||||
#define BOARD_TOUCH_POWER 57
|
||||
|
||||
#define CONFIG_ENV_SETTINGS_BUTTONS_AND_LEDS \
|
||||
"button_dfu0=59\0" \
|
||||
"led0=117,0,1\0" \
|
||||
|
||||
/* Physical Memory Map */
|
||||
#define CONFIG_MAX_RAM_BANK_SIZE (512 << 20) /* 1GB */
|
||||
|
||||
|
@ -48,29 +51,25 @@
|
|||
|
||||
#define CONFIG_FACTORYSET
|
||||
|
||||
/* UBI Support */
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
#define CONFIG_CMD_MTDPARTS
|
||||
#define CONFIG_MTD_PARTITIONS
|
||||
#define CONFIG_MTD_DEVICE
|
||||
#define CONFIG_RBTREE
|
||||
#define CONFIG_LZO
|
||||
#define CONFIG_CMD_UBI
|
||||
#define CONFIG_CMD_UBIFS
|
||||
#endif
|
||||
|
||||
/* Watchdog */
|
||||
#define CONFIG_OMAP_WATCHDOG
|
||||
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
|
||||
/* Use common default */
|
||||
#define MTDPARTS_DEFAULT MTDPARTS_DEFAULT_V1
|
||||
|
||||
/* Default env settings */
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"hostname=pxm2\0" \
|
||||
"nand_img_size=0x500000\0" \
|
||||
"optargs=\0" \
|
||||
"preboot=draco_led 0\0" \
|
||||
CONFIG_ENV_SETTINGS_BUTTONS_AND_LEDS \
|
||||
"splashpos=m,m\0" \
|
||||
CONFIG_COMMON_ENV_SETTINGS \
|
||||
CONFIG_ENV_SETTINGS_V1 \
|
||||
CONFIG_ENV_SETTINGS_NAND_V1 \
|
||||
"mmc_dev=0\0" \
|
||||
"mmc_root=/dev/mmcblk0p2 rw\0" \
|
||||
"mmc_root_fs_type=ext4 rootwait\0" \
|
||||
|
|
|
@ -45,29 +45,23 @@
|
|||
|
||||
#define CONFIG_FACTORYSET
|
||||
|
||||
/* UBI Support */
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
#define CONFIG_CMD_MTDPARTS
|
||||
#define CONFIG_MTD_PARTITIONS
|
||||
#define CONFIG_MTD_DEVICE
|
||||
#define CONFIG_RBTREE
|
||||
#define CONFIG_LZO
|
||||
#define CONFIG_CMD_UBI
|
||||
#define CONFIG_CMD_UBIFS
|
||||
#endif
|
||||
|
||||
/* Watchdog */
|
||||
#define WATCHDOG_TRIGGER_GPIO 14
|
||||
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
|
||||
/* Use common default */
|
||||
#define MTDPARTS_DEFAULT MTDPARTS_DEFAULT_V1
|
||||
|
||||
/* Default env settings */
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"hostname=rut\0" \
|
||||
"nand_img_size=0x500000\0" \
|
||||
"splashpos=m,m\0" \
|
||||
"optargs=fixrtc --no-log consoleblank=0 \0" \
|
||||
CONFIG_COMMON_ENV_SETTINGS \
|
||||
CONFIG_ENV_SETTINGS_V1 \
|
||||
CONFIG_ENV_SETTINGS_NAND_V1 \
|
||||
"mmc_dev=0\0" \
|
||||
"mmc_root=/dev/mmcblk0p2 rw\0" \
|
||||
"mmc_root_fs_type=ext4 rootwait\0" \
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
#define CONFIG_CMD_ASKENV
|
||||
#define CONFIG_CMD_ECHO
|
||||
#define CONFIG_CMD_CACHE
|
||||
#define CONFIG_CMD_TIME
|
||||
|
||||
#define CONFIG_SYS_GENERIC_BOARD
|
||||
|
||||
|
@ -69,7 +70,7 @@
|
|||
#define CONFIG_SYS_MAXARGS 32
|
||||
|
||||
/* Console I/O Buffer Size */
|
||||
#define CONFIG_SYS_CBSIZE 512
|
||||
#define CONFIG_SYS_CBSIZE 1024
|
||||
|
||||
/* Print Buffer Size */
|
||||
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE \
|
||||
|
@ -309,22 +310,87 @@
|
|||
/* NAND support */
|
||||
#ifdef CONFIG_NAND
|
||||
#define CONFIG_CMD_NAND
|
||||
#define CONFIG_CMD_MTDPARTS
|
||||
|
||||
#define MTDIDS_NAME_STR "omap2-nand.0"
|
||||
#define MTDIDS_DEFAULT "nand0=" MTDIDS_NAME_STR
|
||||
#define MTDPARTS_DEFAULT "mtdparts=" MTDIDS_NAME_STR ":" \
|
||||
"128k(spl)," \
|
||||
"128k(spl.backup1)," \
|
||||
"128k(spl.backup2)," \
|
||||
"128k(spl.backup3)," \
|
||||
"1920k(u-boot)," \
|
||||
"128k(uboot.env)," \
|
||||
"5120k(kernel_a)," \
|
||||
"5120k(kernel_b)," \
|
||||
"8192k(mtdoops)," \
|
||||
"-(rootfs)"
|
||||
/* UBI Support */
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
#define CONFIG_CMD_MTDPARTS
|
||||
#define CONFIG_MTD_PARTITIONS
|
||||
#define CONFIG_MTD_DEVICE
|
||||
#define CONFIG_RBTREE
|
||||
#define CONFIG_LZO
|
||||
#define CONFIG_CMD_UBI
|
||||
#define CONFIG_CMD_UBIFS
|
||||
#endif
|
||||
|
||||
/* Commen environment */
|
||||
#define CONFIG_PREBOOT
|
||||
#define COMMON_ENV_DFU_ARGS "dfu_args=run bootargs_defaults;" \
|
||||
"setenv bootargs ${bootargs};" \
|
||||
"mtdparts default;" \
|
||||
"draco_led 1;" \
|
||||
"dfu 0 nand 0;" \
|
||||
"draco_led 0;\0" \
|
||||
|
||||
#define COMMON_ENV_NAND_BOOT \
|
||||
"nand_boot=echo Booting from nand; " \
|
||||
"if test ${upgrade_available} -eq 1; then " \
|
||||
"if test ${bootcount} -gt ${bootlimit}; " \
|
||||
"then " \
|
||||
"setenv upgrade_available 0;" \
|
||||
"setenv ${partitionset_active} true;" \
|
||||
"if test -n ${A}; then " \
|
||||
"setenv partitionset_active B; " \
|
||||
"env delete A; " \
|
||||
"fi;" \
|
||||
"if test -n ${B}; then " \
|
||||
"setenv partitionset_active A; " \
|
||||
"env delete B; " \
|
||||
"fi;" \
|
||||
"saveenv; " \
|
||||
"fi;" \
|
||||
"fi;" \
|
||||
"echo set ${partitionset_active}...;" \
|
||||
"run nand_args; "
|
||||
|
||||
#define COMMON_ENV_NAND_CMDS "flash_self=run nand_boot\0" \
|
||||
"flash_self_test=setenv testargs test; " \
|
||||
"run nand_boot\0" \
|
||||
"dfu_start=echo Preparing for dfu mode ...; " \
|
||||
"run dfu_args; \0"
|
||||
|
||||
#define COMMON_ENV_SETTINGS \
|
||||
"verify=no \0" \
|
||||
"project_dir=targetdir\0" \
|
||||
"upgrade_available=0\0" \
|
||||
"altbootcmd=run bootcmd\0" \
|
||||
"bootlimit=3\0" \
|
||||
"partitionset_active=A\0" \
|
||||
"loadaddr=0x82000000\0" \
|
||||
"kloadaddr=0x81000000\0" \
|
||||
"script_addr=0x81900000\0" \
|
||||
"console=console=ttyMTD,mtdoops console=ttyO0,115200n8 panic=5\0" \
|
||||
"nfsopts=nolock rw\0" \
|
||||
"ip_method=none\0" \
|
||||
"bootenv=uEnv.txt\0" \
|
||||
"bootargs_defaults=setenv bootargs " \
|
||||
"console=${console} " \
|
||||
"${testargs} " \
|
||||
"${optargs}\0" \
|
||||
"siemens_help=echo; "\
|
||||
"echo Type 'run flash_self' to use kernel and root " \
|
||||
"filesystem on memory; echo Type 'run flash_self_test' to " \
|
||||
"use kernel and root filesystem on memory, boot in test " \
|
||||
"mode; echo Not ready yet: 'run flash_nfs' to use kernel " \
|
||||
"from memory and root filesystem over NFS; echo Type " \
|
||||
"'run net_nfs' to get Kernel over TFTP and mount root " \
|
||||
"filesystem over NFS; " \
|
||||
"echo Set partitionset_active variable to 'A' " \
|
||||
"or 'B' to select kernel and rootfs partition; " \
|
||||
"echo" \
|
||||
"\0"
|
||||
|
||||
/*
|
||||
* Variant 1 partition layout
|
||||
* chip-size = 256MiB
|
||||
*| name | size | address area |
|
||||
*-------------------------------------------------------
|
||||
|
@ -340,8 +406,21 @@
|
|||
*| rootfs | 235.500 MiB | 0x 1480000..0x fffffff |
|
||||
*-------------------------------------------------------
|
||||
*/
|
||||
#define MTDIDS_NAME_STR "omap2-nand.0"
|
||||
#define MTDIDS_DEFAULT "nand0=" MTDIDS_NAME_STR
|
||||
#define MTDPARTS_DEFAULT_V1 "mtdparts=" MTDIDS_NAME_STR ":" \
|
||||
"128k(spl)," \
|
||||
"128k(spl.backup1)," \
|
||||
"128k(spl.backup2)," \
|
||||
"128k(spl.backup3)," \
|
||||
"1920k(u-boot)," \
|
||||
"128k(uboot.env)," \
|
||||
"5120k(kernel_a)," \
|
||||
"5120k(kernel_b)," \
|
||||
"8192k(mtdoops)," \
|
||||
"-(rootfs)"
|
||||
|
||||
#define DFU_ALT_INFO_NAND \
|
||||
#define DFU_ALT_INFO_NAND_V1 \
|
||||
"spl part 0 1;" \
|
||||
"spl.backup1 part 0 2;" \
|
||||
"spl.backup2 part 0 3;" \
|
||||
|
@ -352,17 +431,7 @@
|
|||
"kernel_b part 0 8;" \
|
||||
"rootfs partubi 0 10"
|
||||
|
||||
#define CONFIG_COMMON_ENV_SETTINGS \
|
||||
"verify=no \0" \
|
||||
"project_dir=targetdir\0" \
|
||||
"upgrade_available=0\0" \
|
||||
"altbootcmd=run bootcmd\0" \
|
||||
"bootlimit=3\0" \
|
||||
"partitionset_active=A\0" \
|
||||
"loadaddr=0x82000000\0" \
|
||||
"kloadaddr=0x81000000\0" \
|
||||
"script_addr=0x81900000\0" \
|
||||
"console=console=ttyMTD,mtdoops console=ttyO0,115200n8 panic=5\0" \
|
||||
#define CONFIG_ENV_SETTINGS_NAND_V1 \
|
||||
"nand_active_ubi_vol=rootfs_a\0" \
|
||||
"nand_active_ubi_vol_A=rootfs_a\0" \
|
||||
"nand_active_ubi_vol_B=rootfs_b\0" \
|
||||
|
@ -370,13 +439,6 @@
|
|||
"nand_src_addr=0x280000\0" \
|
||||
"nand_src_addr_A=0x280000\0" \
|
||||
"nand_src_addr_B=0x780000\0" \
|
||||
"nfsopts=nolock rw mem=128M\0" \
|
||||
"ip_method=none\0" \
|
||||
"bootenv=uEnv.txt\0" \
|
||||
"bootargs_defaults=setenv bootargs " \
|
||||
"console=${console} " \
|
||||
"${testargs} " \
|
||||
"${optargs}\0" \
|
||||
"nand_args=run bootargs_defaults;" \
|
||||
"mtdparts default;" \
|
||||
"setenv ${partitionset_active} true;" \
|
||||
|
@ -395,15 +457,15 @@
|
|||
"rootfstype=${nand_root_fs_type} ip=${ip_method} " \
|
||||
"console=ttyMTD,mtdoops console=ttyO0,115200n8 mtdoops.mtddev" \
|
||||
"=mtdoops\0" \
|
||||
"dfu_args=run bootargs_defaults;" \
|
||||
"setenv bootargs ${bootargs} ;" \
|
||||
"mtdparts default; " \
|
||||
"led dfu 1;" \
|
||||
"led stat 0;" \
|
||||
"dfu 0 nand 0;" \
|
||||
"led dfu 0;" \
|
||||
"led stat 1;\0" \
|
||||
"dfu_alt_info=" DFU_ALT_INFO_NAND "\0" \
|
||||
COMMON_ENV_DFU_ARGS \
|
||||
"dfu_alt_info=" DFU_ALT_INFO_NAND_V1 "\0" \
|
||||
COMMON_ENV_NAND_BOOT \
|
||||
"nand read.i ${kloadaddr} ${nand_src_addr} " \
|
||||
"${nand_img_size}; bootm ${kloadaddr}\0" \
|
||||
COMMON_ENV_NAND_CMDS
|
||||
|
||||
#define CONFIG_ENV_SETTINGS_V1 \
|
||||
COMMON_ENV_SETTINGS \
|
||||
"net_args=run bootargs_defaults;" \
|
||||
"mtdparts default;" \
|
||||
"setenv bootfile ${project_dir}/kernel/uImage;" \
|
||||
|
@ -413,48 +475,103 @@
|
|||
"nfsroot=${serverip}:${rootpath},${nfsopts} " \
|
||||
"ip=${ipaddr}:${serverip}:" \
|
||||
"${gatewayip}:${netmask}:${hostname}:eth0:off\0" \
|
||||
"nand_boot=echo Booting from nand; " \
|
||||
"if test ${upgrade_available} -eq 1; then " \
|
||||
"if test ${bootcount} -gt ${bootlimit}; " \
|
||||
"then " \
|
||||
"setenv upgrade_available 0;" \
|
||||
"setenv ${partitionset_active} true;" \
|
||||
"if test -n ${A}; then " \
|
||||
"setenv partitionset_active B; " \
|
||||
"env delete A; " \
|
||||
"fi;" \
|
||||
"if test -n ${B}; then " \
|
||||
"setenv partitionset_active A; " \
|
||||
"env delete B; " \
|
||||
"fi;" \
|
||||
"saveenv; " \
|
||||
"fi;" \
|
||||
"fi;" \
|
||||
"echo set ${partitionset_active}...;" \
|
||||
"run nand_args; " \
|
||||
"nand read.i ${kloadaddr} ${nand_src_addr} " \
|
||||
"${nand_img_size}; bootm ${kloadaddr}\0" \
|
||||
"net_nfs=echo Booting from network ...; " \
|
||||
"run net_args; " \
|
||||
"tftpboot ${kloadaddr} ${serverip}:${bootfile}; " \
|
||||
"bootm ${kloadaddr}\0" \
|
||||
"flash_self=run nand_boot\0" \
|
||||
"flash_self_test=setenv testargs test; " \
|
||||
"run nand_boot\0" \
|
||||
"dfu_start=echo Preparing for dfu mode ...; " \
|
||||
"run dfu_args; \0" \
|
||||
"preboot=echo; "\
|
||||
"echo Type 'run flash_self' to use kernel and root " \
|
||||
"filesystem on memory; echo Type 'run flash_self_test' to " \
|
||||
"use kernel and root filesystem on memory, boot in test " \
|
||||
"mode; echo Not ready yet: 'run flash_nfs' to use kernel " \
|
||||
"from memory and root filesystem over NFS; echo Type " \
|
||||
"'run net_nfs' to get Kernel over TFTP and mount root " \
|
||||
"filesystem over NFS; " \
|
||||
"echo Set partitionset_active variable to 'A' " \
|
||||
"or 'B' to select kernel and rootfs partition; " \
|
||||
"echo" \
|
||||
"\0"
|
||||
"bootm ${kloadaddr}\0"
|
||||
|
||||
/*
|
||||
* Variant 2 partition layout
|
||||
* chip-size = 256MiB
|
||||
*| name | size | address area |
|
||||
*-------------------------------------------------------
|
||||
*| spl | 128.000 KiB | 0x 0..0x 1ffff |
|
||||
*| spl.backup1 | 128.000 KiB | 0x 20000..0x 3ffff |
|
||||
*| spl.backup2 | 128.000 KiB | 0x 40000..0x 5ffff |
|
||||
*| spl.backup3 | 128.000 KiB | 0x 60000..0x 7ffff |
|
||||
*| u-boot | 1.875 MiB | 0x 80000..0x 25ffff |
|
||||
*| uboot.env0 | 512.000 KiB | 0x 260000..0x 2Dffff |
|
||||
*| uboot.env1 | 512.000 KiB | 0x 2E0000..0x 35ffff |
|
||||
*| rootfs | 148.000 MiB | 0x 360000..0x 975ffff |
|
||||
*| mtdoops | 512.000 KiB | 0x 9760000..0x 98Dffff |
|
||||
*|configuration | 104.125 MiB | 0x 97E0000..0x fffffff |
|
||||
*-------------------------------------------------------
|
||||
*/
|
||||
|
||||
#define MTDPARTS_DEFAULT_V2 "mtdparts=" MTDIDS_NAME_STR ":" \
|
||||
"128k(spl)," \
|
||||
"128k(spl.backup1)," \
|
||||
"128k(spl.backup2)," \
|
||||
"128k(spl.backup3)," \
|
||||
"1920k(u-boot)," \
|
||||
"512k(u-boot.env0)," \
|
||||
"512k(u-boot.env1)," \
|
||||
"148m(rootfs)," \
|
||||
"512k(mtdoops)," \
|
||||
"-(configuration)"
|
||||
|
||||
#define DFU_ALT_INFO_NAND_V2 \
|
||||
"spl part 0 1;" \
|
||||
"spl.backup1 part 0 2;" \
|
||||
"spl.backup2 part 0 3;" \
|
||||
"spl.backup3 part 0 4;" \
|
||||
"u-boot part 0 5;" \
|
||||
"u-boot.env0 part 0 6;" \
|
||||
"u-boot.env1 part 0 7;" \
|
||||
"rootfs partubi 0 8;" \
|
||||
"configuration partubi 0 10"
|
||||
|
||||
#define CONFIG_ENV_SETTINGS_NAND_V2 \
|
||||
"nand_active_ubi_vol=rootfs_a\0" \
|
||||
"rootfs_name=rootfs\0" \
|
||||
"kernel_name=uImage\0"\
|
||||
"nand_root_fs_type=ubifs rootwait=1\0" \
|
||||
"nand_args=run bootargs_defaults;" \
|
||||
"mtdparts default;" \
|
||||
"setenv ${partitionset_active} true;" \
|
||||
"if test -n ${A}; then " \
|
||||
"setenv nand_active_ubi_vol ${rootfs_name}_a;" \
|
||||
"fi;" \
|
||||
"if test -n ${B}; then " \
|
||||
"setenv nand_active_ubi_vol ${rootfs_name}_b;" \
|
||||
"fi;" \
|
||||
"setenv nand_root ubi0:${nand_active_ubi_vol} rw " \
|
||||
"ubi.mtd=7,2048 ubi.mtd=9,2048;" \
|
||||
"setenv bootargs ${bootargs} " \
|
||||
"root=${nand_root} noinitrd ${mtdparts} " \
|
||||
"rootfstype=${nand_root_fs_type} ip=${ip_method} " \
|
||||
"console=ttyMTD,mtdoops console=ttyO0,115200n8 mtdoops.mtddev" \
|
||||
"=mtdoops\0" \
|
||||
COMMON_ENV_DFU_ARGS \
|
||||
"dfu_alt_info=" DFU_ALT_INFO_NAND_V2 "\0" \
|
||||
COMMON_ENV_NAND_BOOT \
|
||||
"ubi part rootfs 2048;" \
|
||||
"ubifsmount ubi0:${nand_active_ubi_vol};" \
|
||||
"ubifsload ${kloadaddr} boot/${kernel_name};" \
|
||||
"ubifsload ${loadaddr} boot/${dtb_name}.dtb;" \
|
||||
"bootm ${kloadaddr} - ${loadaddr}\0" \
|
||||
"nand_boot_backup=ubifsload ${loadaddr} boot/am335x-draco.dtb;" \
|
||||
"bootm ${kloadaddr} - ${loadaddr}\0" \
|
||||
COMMON_ENV_NAND_CMDS
|
||||
|
||||
#define CONFIG_ENV_SETTINGS_V2 \
|
||||
COMMON_ENV_SETTINGS \
|
||||
"net_args=run bootargs_defaults;" \
|
||||
"mtdparts default;" \
|
||||
"setenv bootfile ${project_dir}/kernel/uImage;" \
|
||||
"setenv bootdtb ${project_dir}/kernel/dtb;" \
|
||||
"setenv rootpath /home/projects/${project_dir}/rootfs;" \
|
||||
"setenv bootargs ${bootargs} " \
|
||||
"root=/dev/nfs ${mtdparts} " \
|
||||
"nfsroot=${serverip}:${rootpath},${nfsopts} " \
|
||||
"ip=${ipaddr}:${serverip}:" \
|
||||
"${gatewayip}:${netmask}:${hostname}:eth0:off\0" \
|
||||
"net_nfs=echo Booting from network ...; " \
|
||||
"run net_args; " \
|
||||
"tftpboot ${kloadaddr} ${serverip}:${bootfile}; " \
|
||||
"tftpboot ${loadaddr} ${serverip}:${bootdtb}; " \
|
||||
"bootm ${kloadaddr} - ${loadaddr}\0"
|
||||
|
||||
|
||||
#define CONFIG_NAND_OMAP_GPMC
|
||||
#define CONFIG_NAND_OMAP_ELM
|
||||
|
@ -473,6 +590,9 @@
|
|||
|
||||
#define CONFIG_OMAP_GPIO
|
||||
|
||||
/* Gpio cmd support */
|
||||
#define CONFIG_CMD_GPIO
|
||||
|
||||
/* Watchdog */
|
||||
#define CONFIG_HW_WATCHDOG
|
||||
|
||||
|
|
Loading…
Reference in a new issue