From: Minkyu Kang <mk7.kang@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 6/9 v8] Exynos5420: Add base patch for SMDK5420
Date: Wed, 27 Nov 2013 14:49:44 +0900 [thread overview]
Message-ID: <529587F8.8020600@samsung.com> (raw)
In-Reply-To: <528DB51E.7060908@samsung.com>
ping.
-------- Original Message --------
Subject: Re: [PATCH 6/9 v8] Exynos5420: Add base patch for SMDK5420
Date: Thu, 21 Nov 2013 16:24:14 +0900
From: Minkyu Kang <mk7.kang@samsung.com>
Organization: SAMSUNG ELECTRONICS
To: Rajeshwari S Shinde <rajeshwari.s@samsung.com>
CC: u-boot at lists.denx.de, patches at linaro.org, sjg at chromium.org, chander.kashyap at linaro.org, u-boot-review at google.com, alim.akhtar at samsung.com, trini at ti.com
Dear Rajeshwari,
On 15/11/13 13:59, Rajeshwari S Shinde wrote:
> Adding the base patch for Exynos based SMDK5420.
> This shall enable compilation and basic boot support for
> SMDK5420.
>
> Signed-off-by: Rajeshwari S Shinde <rajeshwari.s@samsung.com>
> Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
> ---
> Changes in V2:
> - None
> Changes in V3:
> - None
> Changes in V4:
> - Rebased on latest u-boot-samsung tree.
> Changes in V5:
> - Removed functions board_eth_init and board_mmc_init
> as they were moved to common/board.c
> Changes in V6:
> - None
> Changes in V7:
> - added CONFIG_EXYNOS_SPL to build 5420 and 5250
> Changes in V8:
> - None
> board/samsung/common/board.c | 2 +
> board/samsung/smdk5420/Makefile | 34 ++++++++
> board/samsung/smdk5420/smdk5420.c | 159 ++++++++++++++++++++++++++++++++++
> board/samsung/smdk5420/smdk5420_spl.c | 52 +++++++++++
> boards.cfg | 1 +
> include/configs/arndale.h | 1 +
> include/configs/exynos5250-dt.h | 1 +
> tools/Makefile | 3 +-
> 8 files changed, 252 insertions(+), 1 deletion(-)
> create mode 100644 board/samsung/smdk5420/Makefile
> create mode 100644 board/samsung/smdk5420/smdk5420.c
> create mode 100644 board/samsung/smdk5420/smdk5420_spl.c
>
> diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c
> index 9ebfc42..2512a59 100644
> --- a/board/samsung/common/board.c
> +++ b/board/samsung/common/board.c
> @@ -143,6 +143,7 @@ struct cros_ec_dev *board_get_cros_ec_dev(void)
> return local.cros_ec_dev;
> }
>
> +#ifdef CONFIG_CROS_EC
> static int board_init_cros_ec_devices(const void *blob)
> {
> local.cros_ec_err = cros_ec_init(blob, &local.cros_ec_dev);
> @@ -151,6 +152,7 @@ static int board_init_cros_ec_devices(const void *blob)
>
> return 0;
> }
> +#endif
>
> #if defined(CONFIG_POWER)
> #ifdef CONFIG_POWER_MAX77686
> diff --git a/board/samsung/smdk5420/Makefile b/board/samsung/smdk5420/Makefile
> new file mode 100644
> index 0000000..be538ec
> --- /dev/null
> +++ b/board/samsung/smdk5420/Makefile
> @@ -0,0 +1,34 @@
> +#
> +# Copyright (C) 2013 Samsung Electronics
> +#
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +
> +include $(TOPDIR)/config.mk
> +
> +LIB = $(obj)lib$(BOARD).o
> +
> +COBJS += smdk5420_spl.o
> +
> +ifndef CONFIG_SPL_BUILD
> +COBJS += smdk5420.o
> +endif
> +
> +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
> +OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS))
> +
> +ALL := $(obj).depend $(LIB)
> +
> +all: $(ALL)
> +
> +$(LIB): $(OBJS)
> + $(call cmd_link_o_target, $(OBJS))
> +
> +#########################################################################
> +
> +# defines $(obj).depend target
> +include $(SRCTREE)/rules.mk
> +
> +sinclude $(obj).depend
> +
> +#########################################################################
> diff --git a/board/samsung/smdk5420/smdk5420.c b/board/samsung/smdk5420/smdk5420.c
> new file mode 100644
> index 0000000..d85b953
> --- /dev/null
> +++ b/board/samsung/smdk5420/smdk5420.c
> @@ -0,0 +1,159 @@
> +/*
> + * Copyright (C) 2013 Samsung Electronics
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <fdtdec.h>
> +#include <asm/io.h>
> +#include <i2c.h>
> +#include <lcd.h>
> +#include <spi.h>
> +#include <asm/arch/board.h>
> +#include <asm/arch/cpu.h>
> +#include <asm/arch/gpio.h>
> +#include <asm/arch/pinmux.h>
> +#include <asm/arch/dp_info.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +#ifdef CONFIG_USB_EHCI_EXYNOS
> +static int board_usb_vbus_init(void)
> +{
> + struct exynos5_gpio_part1 *gpio1 = (struct exynos5_gpio_part1 *)
> + samsung_get_base_gpio_part1();
> +
> + /* Enable VBUS power switch */
> + s5p_gpio_direction_output(&gpio1->x2, 6, 1);
> +
> + /* VBUS turn ON time */
> + mdelay(3);
> +
> + return 0;
> +}
> +#endif
> +
> +int exynos_init(void)
> +{
> +#ifdef CONFIG_USB_EHCI_EXYNOS
> + board_usb_vbus_init();
> +#endif
> + return 0;
> +}
> +
> +#ifdef CONFIG_LCD
> +void cfg_lcd_gpio(void)
> +{
> + struct exynos5_gpio_part1 *gpio1 =
> + (struct exynos5_gpio_part1 *)samsung_get_base_gpio_part1();
> +
> + /* For Backlight */
> + s5p_gpio_cfg_pin(&gpio1->b2, 0, GPIO_OUTPUT);
> + s5p_gpio_set_value(&gpio1->b2, 0, 1);
> +
> + /* LCD power on */
> + s5p_gpio_cfg_pin(&gpio1->x1, 5, GPIO_OUTPUT);
> + s5p_gpio_set_value(&gpio1->x1, 5, 1);
> +
> + /* Set Hotplug detect for DP */
> + s5p_gpio_cfg_pin(&gpio1->x0, 7, GPIO_FUNC(0x3));
> +}
> +
> +vidinfo_t panel_info = {
> + .vl_freq = 60,
> + .vl_col = 2560,
> + .vl_row = 1600,
> + .vl_width = 2560,
> + .vl_height = 1600,
> + .vl_clkp = CONFIG_SYS_LOW,
> + .vl_hsp = CONFIG_SYS_LOW,
> + .vl_vsp = CONFIG_SYS_LOW,
> + .vl_dp = CONFIG_SYS_LOW,
> + .vl_bpix = 4, /* LCD_BPP = 2^4, for output conosle on LCD */
> +
> + /* wDP panel timing infomation */
> + .vl_hspw = 32,
> + .vl_hbpd = 80,
> + .vl_hfpd = 48,
> +
> + .vl_vspw = 6,
> + .vl_vbpd = 37,
> + .vl_vfpd = 3,
> + .vl_cmd_allow_len = 0xf,
> +
> + .win_id = 3,
> + .cfg_gpio = cfg_lcd_gpio,
> + .backlight_on = NULL,
> + .lcd_power_on = NULL,
> + .reset_lcd = NULL,
> + .dual_lcd_enabled = 0,
> +
> + .init_delay = 0,
> + .power_on_delay = 0,
> + .reset_delay = 0,
> + .interface_mode = FIMD_RGB_INTERFACE,
> + .dp_enabled = 1,
> +};
> +
> +static struct edp_device_info edp_info = {
> + .disp_info = {
> + .h_res = 2560,
> + .h_sync_width = 32,
> + .h_back_porch = 80,
> + .h_front_porch = 48,
> + .v_res = 1600,
> + .v_sync_width = 6,
> + .v_back_porch = 37,
> + .v_front_porch = 3,
> + .v_sync_rate = 60,
> + },
> + .lt_info = {
> + .lt_status = DP_LT_NONE,
> + },
> + .video_info = {
> + .master_mode = 0,
> + .bist_mode = DP_DISABLE,
> + .bist_pattern = NO_PATTERN,
> + .h_sync_polarity = 0,
> + .v_sync_polarity = 0,
> + .interlaced = 0,
> + .color_space = COLOR_RGB,
> + .dynamic_range = VESA,
> + .ycbcr_coeff = COLOR_YCBCR601,
> + .color_depth = COLOR_8,
> + },
> +};
> +
> +static struct exynos_dp_platform_data dp_platform_data = {
> + .phy_enable = set_dp_phy_ctrl,
> + .edp_dev_info = &edp_info,
> +};
> +
> +void init_panel_info(vidinfo_t *vid)
> +{
> + vid->rgb_mode = MODE_RGB_P,
typo?
Did you try to build your patch?
> +
> + exynos_set_dp_platform_data(&dp_platform_data);
> +}
> +#endif
> +
> +int board_get_revision(void)
> +{
> + return 0;
> +}
> +
> +#ifdef CONFIG_DISPLAY_BOARDINFO
> +int checkboard(void)
> +{
> + const char *board_name;
> +
> + board_name = fdt_getprop(gd->fdt_blob, 0, "model", NULL);
> + if (board_name == NULL)
> + printf("\nUnknown Board\n");
> + else
> + printf("\nBoard: %s\n", board_name);
> +
> + return 0;
> +}
> +#endif
> diff --git a/board/samsung/smdk5420/smdk5420_spl.c b/board/samsung/smdk5420/smdk5420_spl.c
> new file mode 100644
> index 0000000..73359f7
> --- /dev/null
> +++ b/board/samsung/smdk5420/smdk5420_spl.c
> @@ -0,0 +1,52 @@
> +/*
> + * Copyright (C) 2013 The Chromium OS Authors.
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <asm/arch/cpu.h>
> +#include <asm/arch/spl.h>
> +#include <asm/arch/clk.h>
> +
> +#define SIGNATURE 0xdeadbeef
> +
> +/* Parameters of early board initialization in SPL */
> +static struct spl_machine_param machine_param
> + __attribute__((section(".machine_param"))) = {
> + .signature = SIGNATURE,
> + .version = 1,
> + .params = "vmubfasirM",
> + .size = sizeof(machine_param),
> +
> + .mem_iv_size = 0x1f,
> + .mem_type = DDR_MODE_DDR3,
> +
> + /*
> + * Set uboot_size to 0x100000 bytes.
> + *
> + * This is an overly conservative value chosen to accommodate all
> + * possible U-Boot image. You are advised to set this value to a
> + * smaller realistic size via scripts that modifies the .machine_param
> + * section of output U-Boot image.
> + */
> + .uboot_size = 0x100000,
> +
> + .boot_source = BOOT_MODE_OM,
> + .frequency_mhz = 800,
> + .arm_freq_mhz = 900,
> + .serial_base = 0x12c30000,
> + .i2c_base = 0x12c60000,
> + .mem_manuf = MEM_MANUF_SAMSUNG,
> +};
> +
> +struct spl_machine_param *spl_get_machine_params(void)
> +{
> + if (machine_param.signature != SIGNATURE) {
> + /* Will hang if SIGNATURE dont match */
> + while (1)
> + ;
> + }
> +
> + return &machine_param;
> +}
> diff --git a/boards.cfg b/boards.cfg
> index 3a56eab..06849e4 100644
> --- a/boards.cfg
> +++ b/boards.cfg
> @@ -272,6 +272,7 @@ Active arm armv7 exynos samsung arndale
> Active arm armv7 exynos samsung origen origen - Chander Kashyap <k.chander@samsung.com>
> Active arm armv7 exynos samsung smdk5250 smdk5250 - Chander Kashyap <k.chander@samsung.com>
> Active arm armv7 exynos samsung smdk5250 snow - Rajeshwari Shinde <rajeshwari.s@samsung.com>
> +Active arm armv7 exynos samsung smdk5420 smdk5420 - Rajeshwari Shinde <rajeshwari.s@samsung.com>
> Active arm armv7 exynos samsung smdkv310 smdkv310 - Chander Kashyap <k.chander@samsung.com>
> Active arm armv7 exynos samsung trats trats - Lukasz Majewski <l.majewski@samsung.com>
> Active arm armv7 exynos samsung trats2 trats2 - Piotr Wilczek <p.wilczek@samsung.com>
> diff --git a/include/configs/arndale.h b/include/configs/arndale.h
> index ed44a04..743d30d 100644
> --- a/include/configs/arndale.h
> +++ b/include/configs/arndale.h
> @@ -117,6 +117,7 @@
> #define CONFIG_USB_STORAGE
>
> /* MMC SPL */
> +#define CONFIG_EXYNOS_SPL
> #define CONFIG_SPL
> #define COPY_BL2_FNPTR_ADDR 0x02020030
>
> diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h
> index 3736ea8..1ed36dd 100644
> --- a/include/configs/exynos5250-dt.h
> +++ b/include/configs/exynos5250-dt.h
> @@ -152,6 +152,7 @@
> #define CONFIG_TPM_TIS_I2C_SLAVE_ADDR 0x20
>
> /* MMC SPL */
> +#define CONFIG_EXYNOS_SPL
> #define CONFIG_SPL
> #define COPY_BL2_FNPTR_ADDR 0x02020030
>
> diff --git a/tools/Makefile b/tools/Makefile
> index ca76f94..05467e2 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -53,6 +53,7 @@ BIN_FILES-$(CONFIG_XWAY_SWAP_BYTES) += xway-swap-bytes$(SFX)
> BIN_FILES-y += mkenvimage$(SFX)
> BIN_FILES-y += mkimage$(SFX)
> BIN_FILES-$(CONFIG_EXYNOS5250) += mk$(BOARD)spl$(SFX)
> +BIN_FILES-$(CONFIG_EXYNOS5420) += mk$(BOARD)spl$(SFX)
> BIN_FILES-$(CONFIG_MX23) += mxsboot$(SFX)
> BIN_FILES-$(CONFIG_MX28) += mxsboot$(SFX)
> BIN_FILES-$(CONFIG_NETCONSOLE) += ncb$(SFX)
> @@ -87,7 +88,7 @@ NOPED_OBJ_FILES-y += ublimage.o
> OBJ_FILES-$(CONFIG_BUILD_ENVCRC) += envcrc.o
> OBJ_FILES-$(CONFIG_CMD_LOADS) += img2srec.o
> OBJ_FILES-$(CONFIG_CMD_NET) += gen_eth_addr.o
> -OBJ_FILES-$(CONFIG_EXYNOS5250) += mkexynosspl.o
> +OBJ_FILES-$(CONFIG_EXYNOS_SPL) += mkexynosspl.o
> OBJ_FILES-$(CONFIG_KIRKWOOD) += kwboot.o
> OBJ_FILES-$(CONFIG_LCD_LOGO) += bmp_logo.o
> OBJ_FILES-$(CONFIG_MX23) += mxsboot.o
>
Thanks,
Minkyu Kang.
next prev parent reply other threads:[~2013-11-27 5:49 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-15 4:59 [U-Boot] [PATCH 0/9 v8] EXYNOS5420: Add SMDK5420 board support Rajeshwari S Shinde
2013-11-15 4:59 ` [U-Boot] [PATCH 1/9 v8] EXYNOS5: Create a common board file Rajeshwari S Shinde
2013-11-15 4:59 ` [U-Boot] [PATCH 2/9 v8] Exynos5420: Add base addresses for 5420 Rajeshwari S Shinde
2013-11-15 4:59 ` [U-Boot] [PATCH 3/9 v8] Exynos5420: Add clock initialization " Rajeshwari S Shinde
[not found] ` <528DB03B.4060909@samsung.com>
2013-11-27 5:47 ` Minkyu Kang
2013-11-15 4:59 ` [U-Boot] [PATCH 4/9 v8] Exynos5420: Add DDR3 " Rajeshwari S Shinde
[not found] ` <528DB294.8000903@samsung.com>
2013-11-27 5:49 ` Minkyu Kang
2013-11-15 4:59 ` [U-Boot] [PATCH 5/9 v8] Exynos5420: Add support for 5420 in pinmux and gpio Rajeshwari S Shinde
2013-11-15 4:59 ` [U-Boot] [PATCH 6/9 v8] Exynos5420: Add base patch for SMDK5420 Rajeshwari S Shinde
[not found] ` <528DB51E.7060908@samsung.com>
2013-11-27 5:49 ` Minkyu Kang [this message]
2013-11-15 4:59 ` [U-Boot] [PATCH 7/9 v8] DTS: Add dts support " Rajeshwari S Shinde
2013-11-15 4:59 ` [U-Boot] [PATCH 8/9 v8] Config: Add initial config " Rajeshwari S Shinde
[not found] ` <528DB710.2000902@samsung.com>
2013-11-27 5:50 ` Minkyu Kang
2013-11-15 4:59 ` [U-Boot] [PATCH 9/9 v8] SPL: EXYNOS: Prepare for variable size SPL support Rajeshwari S Shinde
2013-11-26 4:24 ` [U-Boot] [PATCH 0/9 v8] EXYNOS5420: Add SMDK5420 board support Rajeshwari Birje
2013-11-27 2:51 ` Minkyu Kang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=529587F8.8020600@samsung.com \
--to=mk7.kang@samsung.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.