Skip to content
Snippets Groups Projects
Commit af2fc32e authored by Nicola Sparnacci's avatar Nicola Sparnacci
Browse files

[SANTINO][ENV] Add Seco-like environment

parent 6ac32ade
No related branches found
No related tags found
No related merge requests found
/*
* (C) Copyright 2015 Seco
*
* Author: Davide Cardillo <davide.cardillo@seco.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <command.h>
#include <env.h>
#include <seco/env_common.h>
#include <configs/seco_mx6_dtbo.h>
#define STR_HELPER(x) #x
#define STR(x) STR_HELPER(x)
/* *********************************** IMX6DL *********************************** */
data_boot_dev_t kern_dev_imx6dl_list [] = {
{ SECO_DEV_TYPE_EMMC, "eMMC onboard", STR(MACRO_ENV_KERNEL_SRC_USDHCI), SCFG_BOOT_DEV_ID_EMMC, LOAD_ADDR_KERNEL_LOCAL_DEV, SCFG_KERNEL_FILENAME },
{ SECO_DEV_TYPE_SD_EXT, "external SD", STR(MACRO_ENV_KERNEL_SRC_USDHCI), SCFG_BOOT_DEV_ID_SD_EXT, LOAD_ADDR_KERNEL_LOCAL_DEV, SCFG_KERNEL_FILENAME },
{ SECO_DEV_TYPE_TFTP, "TFTP", STR(MACRO_ENV_KERNEL_SRC_TFTP), "", LOAD_ADDR_KERNEL_REMOTE_DEV, SCFG_KERNEL_FILENAME },
{ SECO_DEV_TYPE_USB, "USB", STR(MACRO_ENV_KERNEL_SRC_USB), SCFG_BOOT_DEV_ID_USB, LOAD_ADDR_KERNEL_LOCAL_DEV, SCFG_KERNEL_FILENAME },
};
size_t kern_dev_imx6dl_size = sizeof( kern_dev_imx6dl_list ) / sizeof( kern_dev_imx6dl_list[0] );
data_boot_dev_t fdt_dev_imx6dl_list [] = {
{ SECO_DEV_TYPE_EMMC, "eMMC onboard", STR(MACRO_ENV_FDT_SRC_USDHCI), SCFG_BOOT_DEV_ID_EMMC, LOAD_ADDR_FDT_LOCAL_DEV, SCFG_DEFAULT_FDT_IMX6DL_FILENAME },
{ SECO_DEV_TYPE_SD_EXT, "external SD", STR(MACRO_ENV_FDT_SRC_USDHCI), SCFG_BOOT_DEV_ID_SD_EXT, LOAD_ADDR_FDT_LOCAL_DEV, SCFG_DEFAULT_FDT_IMX6DL_FILENAME },
{ SECO_DEV_TYPE_SPI, "SPI onboard", STR(MACRO_ENV_FDT_SRC_SPI), SCFG_BOOT_DEV_ID_SPI, LOAD_ADDR_FDT_LOCAL_DEV, "" },
{ SECO_DEV_TYPE_TFTP, "TFTP", STR(MACRO_ENV_FDT_SRC_TFTP), "", LOAD_ADDR_FDT_REMOTE_DEV, SCFG_DEFAULT_FDT_IMX6DL_FILENAME },
{ SECO_DEV_TYPE_USB, "USB", STR(MACRO_ENV_FDT_SRC_USB), SCFG_BOOT_DEV_ID_USB, LOAD_ADDR_FDT_LOCAL_DEV, SCFG_DEFAULT_FDT_IMX6DL_FILENAME },
};
size_t fdt_dev_imx6dl_size = sizeof( fdt_dev_imx6dl_list ) / sizeof( fdt_dev_imx6dl_list[0] );
#ifdef CONFIG_OF_LIBFDT_OVERLAY
data_boot_dev_t fdt_overlay_dev_imx6dl_list [] = {
{ SECO_DEV_TYPE_EMMC, "eMMC onboard", STR(MACRO_ENV_FDT_OVERLAY_SRC_USDHCI), SCFG_BOOT_DEV_ID_EMMC, "" },
{ SECO_DEV_TYPE_SD_EXT, "external SD", STR(MACRO_ENV_FDT_OVERLAY_SRC_USDHCI), SCFG_BOOT_DEV_ID_SD_EXT, "" },
{ SECO_DEV_TYPE_TFTP, "TFTP", STR(MACRO_ENV_FDT_OVERLAY_SRC_TFTP), "", "" },
{ SECO_DEV_TYPE_USB, "USB", STR(MACRO_ENV_FDT_OVERLAY_SRC_USB), SCFG_BOOT_DEV_ID_USB, "" },
};
size_t fdt_overlay_dev_imx6dl_size = sizeof( fdt_overlay_dev_imx6dl_list ) / sizeof( fdt_overlay_dev_imx6dl_list[0] );
#endif /* CONFIG_OF_LIBFDT_OVERLAY */
data_boot_dev_t ramfs_dev_imx6dl_list [] = {
{ SECO_DEV_TYPE_NONE, "Not use", "0x0", "0", LOAD_ADDR_RAMFS_LOCAL_DEV, "" },
{ SECO_DEV_TYPE_EMMC, "eMMC onboard", STR(MACRO_ENV_RAMFS_SRC_USDHCI), SCFG_BOOT_DEV_ID_EMMC, LOAD_ADDR_RAMFS_LOCAL_DEV, SCFG_RAMFS_FILENAME },
{ SECO_DEV_TYPE_SD_EXT, "external SD", STR(MACRO_ENV_RAMFS_SRC_USDHCI), SCFG_BOOT_DEV_ID_SD_EXT, LOAD_ADDR_RAMFS_LOCAL_DEV, SCFG_RAMFS_FILENAME },
{ SECO_DEV_TYPE_TFTP, "TFTP", STR(MACRO_ENV_RAMFS_SRC_TFTP), "", LOAD_ADDR_RAMFS_REMOTE_DEV, SCFG_RAMFS_FILENAME },
{ SECO_DEV_TYPE_USB, "USB", STR(MACRO_ENV_RAMFS_SRC_USB), SCFG_BOOT_DEV_ID_USB, LOAD_ADDR_RAMFS_LOCAL_DEV, SCFG_RAMFS_FILENAME },
};
size_t ramfs_dev_imx6dl_size = sizeof( ramfs_dev_imx6dl_list ) / sizeof( ramfs_dev_imx6dl_list[0] );
data_boot_dev_t filesystem_dev_imx6dl_list [] = {
{ SECO_DEV_TYPE_EMMC, "eMMC onboard", STR(MACRO_ENV_FS_SRC_USDHCI), SCFG_ROOT_DEV_ID_EMMC, "" },
{ SECO_DEV_TYPE_SD_EXT, "external SD", STR(MACRO_ENV_FS_SRC_USDHCI), SCFG_ROOT_DEV_ID_SD_EXT, "" },
{ SECO_DEV_TYPE_NFS, "NFS", STR(MACRO_ENV_FS_SRC_NFS), "", "" },
{ SECO_DEV_TYPE_USB, "USB", STR(MACRO_ENV_FS_SRC_USB), "", "" },
};
size_t filesystem_dev_imx6dl_size = sizeof( filesystem_dev_imx6dl_list ) / sizeof( filesystem_dev_imx6dl_list[0] );
static panel_parameters_t lvds_video_spec_list [] = {
{ "WVGA [800x480]", "LDB-WVGA", "RGB666", "datamap=spwg", -1, NULL, 1 },
{ "SVGA [800x600]", "LDB-SVGA", "RGB666", "datamap=spwg", -1, NULL, 1 },
{ "XGA [1024x768]", "LDB-XGA", "RGB666", "datamap=spwg", -1, NULL, 1 },
{ "WXGA [1368x768]", "LDB-WXGA", "RGB24", "datamap=jeida", -1, NULL, 1 },
{ "WXGAP60 [1280x800]", "LDB-1280P60", "RGB24,bpp=32","datamap=spwg", -1, NULL, 1 },
{ "SXGA [1280x1024]", "LDB-SXGA", "RGB24", "datamap=jeida", -1, NULL, 1 },
};
static panel_parameters_t lvds_clone_video_spec_list [] = {
{ "WVGA [800x480]", "LDB-WVGA", "RGB666", "datamap=spwg", -1, "ldb=dual", 1 },
{ "SVGA [800x600]", "LDB-SVGA", "RGB666", "datamap=spwg", -1, "ldb=dual", 1 },
{ "XGA [1024x768]", "LDB-XGA", "RGB666", "datamap=spwg", -1, "ldb=dual", 1 },
{ "WXGA [1368x768]", "LDB-WXGA", "RGB24", "datamap=jeida", -1, "ldb=dual", 1 },
{ "WXGAP60 [1280x800]", "LDB-1280P60", "RGB24,bpp=32","datamap=spwg", -1, "ldb=dual", 1 },
{ "SXGA [1280x1024]", "LDB-SXGA", "RGB24", "datamap=jeida", -1, "ldb=dual", 1 },
};
static panel_parameters_t lvds_dual_video_spec_list [] = {
{ "HD1080 [1920x1080]", "LDB-1080P60", "RGB24", "datamap=spwg", -1, "ldb=spl0", 2 },
};
static panel_parameters_t hdmi_video_spec_list [] = {
{ "FULL HD [1920x1080]", "1920x1080M@60", "RGB24,bpp=32", NULL, -1, NULL, 0 },
};
/* LVDS0, LVDS1, HDMI */
video_mode_t video_mode_list [] = {
{
/* NO DISPLAY */
.label = "no display",
.video = {
{ VIDEO_NOT_USED, VIDEO_LVDS, NO_VIDEO_ARGS },
{ VIDEO_NOT_USED, VIDEO_LVDS, NO_VIDEO_ARGS },
{ VIDEO_NOT_USED, VIDEO_HDMI, NO_VIDEO_ARGS },
},
.panel_name = "none",
.dtbo_conf_file = NULL,
.use_bootargs = 0,
}, {
/* LVDS0 ONLY */
.label = "LVDS",
.video = {
{
.used = VIDEO_USED,
.type = VIDEO_LVDS,
.video_args = {
.name = "LVDS ch0",
.buffer = "mxcfb0",
.driver = "ldb",
PANEL_LIST(lvds_video_spec_list)
},
},
{ VIDEO_NOT_USED, VIDEO_LVDS, NO_VIDEO_ARGS },
{ VIDEO_NOT_USED, VIDEO_HDMI, NO_VIDEO_ARGS },
},
.panel_name = "none",
.dtbo_conf_file = STR(ENV_DTBO_A75_LVDS),
.use_bootargs = 0,
}, {
/* HDMI ONLY */
.label = "HDMI",
.video = {
{ VIDEO_NOT_USED, VIDEO_LVDS, NO_VIDEO_ARGS },
{ VIDEO_NOT_USED, VIDEO_LVDS, NO_VIDEO_ARGS },
{
.used = VIDEO_USED,
.type = VIDEO_HDMI,
.video_args = {
.name = "HDMI",
.buffer = "mxcfb0",
.driver = "hdmi",
PANEL_LIST(hdmi_video_spec_list)
},
},
},
.panel_name = "none",
.dtbo_conf_file = STR(ENV_DTBO_A75_HDMI),
.use_bootargs = 0,
}, {
.label = "LVDS ch0/ch1 clone",
.video = {
{
.used = VIDEO_USED,
.type = VIDEO_LVDS,
.video_args = {
.name = "LVDS ch0/ch1 clone",
.buffer = "mxcfb0",
.driver = "ldb",
PANEL_LIST(lvds_clone_video_spec_list)
},
},
{ VIDEO_NOT_USED, VIDEO_LVDS, NO_VIDEO_ARGS },
{ VIDEO_NOT_USED, VIDEO_HDMI, NO_VIDEO_ARGS },
},
.panel_name = "none",
.dtbo_conf_file = STR(ENV_DTBO_A75_LDB_CLONE),
.use_bootargs = 0,
}, {
/* LVDS0 + LVDS1 DUAL CHANNEL */
.label = "LVDS dual channel",
.video = {
{
.used = VIDEO_USED,
.type = VIDEO_LVDS,
.video_args = {
.name = "LVDS ch0/ch1 dual",
.buffer = "mxcfb0",
.driver = "ldb",
PANEL_LIST(lvds_dual_video_spec_list)
},
},
{ VIDEO_NOT_USED, VIDEO_LVDS, NO_VIDEO_ARGS },
{ VIDEO_NOT_USED, VIDEO_HDMI, NO_VIDEO_ARGS },
},
.panel_name = "none",
.dtbo_conf_file = STR(ENV_DTBO_A75_LDB_DUAL),
.use_bootargs = 0,
}, {
/* LVDS0 + HDMI */
.label = "LVDS + HDMI",
.video = {
{
.used = VIDEO_USED,
.type = VIDEO_LVDS,
.video_args = {
.name = "LVDS ch0",
.buffer = "mxcfb0",
.driver = "ldb",
PANEL_LIST(lvds_video_spec_list)
},
},
{
.used = VIDEO_USED,
.type = VIDEO_HDMI,
.video_args = {
.name = "HDMI",
.buffer = "mxcfb1",
.driver = "hdmi",
PANEL_LIST(hdmi_video_spec_list)
},
},
{ VIDEO_NOT_USED, VIDEO_HDMI, NO_VIDEO_ARGS },
},
.panel_name = "none",
.dtbo_conf_file = STR(ENV_DTBO_A75_LVDS_HDMI),
.use_bootargs = 0,
}, {
/* HDMI + LVDS0 */
.label = "HDMI + LVDS",
.video = {
{
.used = VIDEO_USED,
.type = VIDEO_LVDS,
.video_args = {
.name = "LVDS ch0",
.buffer = "mxcfb1",
.driver = "ldb",
PANEL_LIST(lvds_video_spec_list)
},
},
{
.used = VIDEO_USED,
.type = VIDEO_HDMI,
.video_args = {
.name = "HDMI",
.buffer = "mxcfb0",
.driver = "hdmi",
PANEL_LIST(hdmi_video_spec_list)
},
},
{ VIDEO_NOT_USED, VIDEO_HDMI, NO_VIDEO_ARGS },
},
.panel_name = "none",
.dtbo_conf_file = STR(ENV_DTBO_A75_HDMI_LVDS),
.use_bootargs = 0,
},
};
size_t video_mode_size = sizeof( video_mode_list ) / sizeof( video_mode_list[0] );
#ifdef CONFIG_OF_LIBFDT_OVERLAY
/* *********************************** FDT OVERLAY *********************************** */
overlay_list_t overlay_peripheral_list [] = {
{
.title = "serial device",
.options = {
{ "flexcan", "" }, // default
{ "uart1", STR(ENV_DTBO_A75_UART1) },
},
},
{
.title = "audio type",
.options = {
{ "SGTL5000 (I2S)", "" }, // default
{ "AC97", STR(ENV_DTBO_A75_AC97) },
},
},
};
size_t overlay_peripheral_size = sizeof( overlay_peripheral_list ) / sizeof( overlay_peripheral_list[0] );
#endif /* CONFIG_OF_LIBFDT_OVERLAY */
......@@ -53,6 +53,11 @@
#include "../common/proto_seco.h"
#ifdef CONFIG_SECO_ENV_MANAGER
#include <seco/env_common.h>
#include "env_conf.h"
#endif
DECLARE_GLOBAL_DATA_PTR;
#define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
......@@ -952,16 +957,36 @@ int board_late_init(void)
#endif
#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
env_set("board_name", "SABRESD");
if (is_mx6dqp())
env_set("board_rev", "MX6QP");
else if (is_mx6dq())
env_set("board_rev", "MX6Q");
else if (is_mx6sdl())
env_set("board_name", "SANTINO");
env_set("board_rev", "MX6DL" );
#endif
#ifdef CONFIG_SECO_ENV_MANAGER
if (is_mx6sdl( ) ) {
gd->bsp_sources.kern_dev_list = &kern_dev_imx6dl_list[0];
gd->bsp_sources.kern_dev_num = kern_dev_imx6dl_size;
gd->bsp_sources.fdt_dev_list = &fdt_dev_imx6dl_list[0];
gd->bsp_sources.fdt_dev_num = fdt_dev_imx6dl_size;
#ifdef CONFIG_OF_LIBFDT_OVERLAY
gd->bsp_sources.fdt_overlay_dev_list = fdt_overlay_dev_imx6dl_list;
gd->bsp_sources.fdt_overlay_dev_num = fdt_overlay_dev_imx6dl_size;
#endif
gd->bsp_sources.ramfs_dev_list = &ramfs_dev_imx6dl_list[0];
gd->bsp_sources.ramfs_dev_num = ramfs_dev_imx6dl_size;
gd->bsp_sources.filesystem_dev_list = &filesystem_dev_imx6dl_list[0];
gd->bsp_sources.filesystem_dev_num = filesystem_dev_imx6dl_size;
}
gd->boot_setup.video_mode_list = video_mode_list;
gd->boot_setup.video_mode_num = video_mode_size;
#ifdef CONFIG_OF_LIBFDT_OVERLAY
gd->boot_setup.overlay_peripheral_list = overlay_peripheral_list;
gd->boot_setup.overlay_peripheral_num = overlay_peripheral_size;
#endif
#endif /* CONFIG_SECO_ENV_MANAGER */
#ifdef CONFIG_ENV_IS_IN_MMC
board_late_mmc_env_init();
#endif
......
......@@ -72,6 +72,8 @@ CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y
# CONFIG_CONSOLE_MUX is not set
CONFIG_BOOTDELAY=3
CONFIG_ENV_IS_IN_MMC=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_SECO_ENV_MANAGER=y
# VIDEO
CONFIG_SECO_VIDEO=y
......@@ -85,6 +87,11 @@ CONFIG_SYS_WHITE_ON_BLACK=y
CONFIG_SPLASH_SCREEN=y
CONFIG_SPLASH_SCREEN_ALIGN=y
# FDT FOR KERNEL
CONFIG_OF_LIBFDT=y
CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_CMD_FDT=y
# STORAGE
CONFIG_CMD_MMC=y
CONFIG_CMD_PART=y
......@@ -170,3 +177,6 @@ CONFIG_FASTBOOT_BUF_SIZE=0x40000000
CONFIG_CMD_FASTBOOT=y
CONFIG_FASTBOOT_UUU_SUPPORT=y
CONFIG_FASTBOOT=y
CONFIG_FASTBOOT_FLASH_MMC_DEV=0
CONFIG_FASTBOOT_USB_DEV=0
......@@ -12,18 +12,6 @@
#define ENV_CONSOLE_DEV "ttymxc1"
/* ____________________________________________________________________________
| |
| WATCHDOG |
|____________________________________________________________________________|
*/
#define APX_WDT_TRIGGER_BASE GPIO3_BASE_ADDR
#define APX_WDT_TRIGGER_NUM 25
#define APX_WDT_ENABLE_BASE GPIO4_BASE_ADDR
#define APX_WDT_ENABLE_NUM 11
/* ____________________________________________________________________________
| |
| USDHC |
......@@ -79,10 +67,10 @@
/* SCFG = SECO CONFIG */
#define BOARD_BOOT_ID_EMMC 0
#define BOARD_BOOT_ID_SD 1
#define BOARD_BOOT_ID_EXT_SD 1
#define BOARD_ROOT_ID_EMMC 0
#define BOARD_ROOT_ID_SD 1
#define BOARD_ROOT_ID_SD_EXT 1
#define SCFG_KERNEL_BOOT_DEV_IMX6Q_NUM 6
#define SCFG_KERNEL_BOOT_DEV_IMX6DL_NUM 5
......@@ -99,12 +87,13 @@
#define SCFG_BOOT_DEV_ID_EMMC __stringify(BOARD_BOOT_ID_EMMC)"\0"
#define SCFG_BOOT_DEV_ID_SD __stringify(BOARD_BOOT_ID_SD)"\0"
#define SCFG_BOOT_DEV_ID_SD_EXT __stringify(BOARD_BOOT_ID_SD_EXT)"\0"
#define SCFG_BOOT_DEV_ID_SPI "0"
#define SCFG_BOOT_DEV_ID_SATA "0"
#define SCFG_BOOT_DEV_ID_USB "0"
#define SCFG_ROOT_DEV_ID_EMMC __stringify(BOARD_ROOT_ID_EMMC)"\0"
#define SCFG_ROOT_DEV_ID_SD __stringify(BOARD_ROOT_ID_SD)"\0"
#define SCFG_ROOT_DEV_ID_SD_EXT __stringify(BOARD_ROOT_ID_SD_EXT)"\0"
#define SCFG_ROOT_DEV_ID_SATA "0"
#define SCFG_ROOT_DEV_ID_USB "0"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment