[PATCH u-boot-marvell] ddr: marvell: a38x: Sync code with Marvell mv-ddr-marvell repository
Stefan Roese
sr at denx.de
Thu Mar 4 14:18:37 CET 2021
On 02.03.21 11:17, Pali Rohár wrote:
> This syncs drivers/ddr/marvell/a38x/ with the master branch of repository
> https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell.git up to the
> commit 7c351731d196 ("Merge pull request #29 from pali/sync-a38x-uboot").
>
> This patch was created by following steps:
>
> 1. Replace all a38x files in U-Boot tree by files from upstream github
> Marvell mv-ddr-marvell repository.
>
> 2. Run following command to omit portions not relevant for a38x and ddr3:
>
> files=drivers/ddr/marvell/a38x/*
> sed 's/#if defined(CONFIG_ARMADA_38X) || defined(CONFIG_ARMADA_39X)/#ifdef TRUE/' -i $files
> unifdef -m -UMV_DDR -UMV_DDR_ATF -UCONFIG_DDR4 -UCONFIG_APN806 \
> -UCONFIG_MC_STATIC -UCONFIG_MC_STATIC_PRINT -UCONFIG_PHY_STATIC \
> -UCONFIG_PHY_STATIC_PRINT -UCONFIG_CUSTOMER_BOARD_SUPPORT \
> -UCONFIG_A3700 -UA3900 -UA80X0 -UA70X0 -DTRUE $files
>
> 3. Manually omit SPDX-License-Identifier changes from this patch as
> upstream license in upstream github repository contains long license
> texts and U-Boot is using just SPDX-License-Identifier.
>
> After applying this patch, a38x ddr3 code in upstream Marvell github
> repository and in U-Boot would be fully identical. So in future applying
> above steps could be used to sync code again.
>
> The only change in this patch is removal of dead code and some fixes with
> include files.
Thanks for the detailed description here.
> Signed-off-by: Pali Rohár <pali at kernel.org>
Reviewed-by: Stefan Roese <sr at denx.de>
Thanks,
Stefan
> ---
>
> This patch depends on Marek's patch "ddr: marvell: a38x Add more space for
> additional info from SPD" [1]. Please apply my patch on top Marek's patch.
>
> [1] - https://patchwork.ozlabs.org/project/uboot/patch/20210226105659.3054-1-marek.behun@nic.cz/
> ---
> drivers/ddr/marvell/a38x/ddr3_debug.c | 1 -
> drivers/ddr/marvell/a38x/ddr3_init.c | 3 ---
> drivers/ddr/marvell/a38x/ddr3_training.c | 11 +----------
> .../ddr/marvell/a38x/ddr3_training_ip_engine.c | 8 +++-----
> drivers/ddr/marvell/a38x/ddr3_training_leveling.c | 1 -
> drivers/ddr/marvell/a38x/ddr_ml_wrapper.h | 2 --
> drivers/ddr/marvell/a38x/mv_ddr_plat.c | 1 -
> drivers/ddr/marvell/a38x/mv_ddr_plat.h | 2 ++
> drivers/ddr/marvell/a38x/mv_ddr_sys_env_lib.h | 15 ---------------
> drivers/ddr/marvell/a38x/xor.c | 2 --
> 10 files changed, 6 insertions(+), 40 deletions(-)
>
> diff --git a/drivers/ddr/marvell/a38x/ddr3_debug.c b/drivers/ddr/marvell/a38x/ddr3_debug.c
> index 22e0cc4d9176..f5fc964d6f87 100644
> --- a/drivers/ddr/marvell/a38x/ddr3_debug.c
> +++ b/drivers/ddr/marvell/a38x/ddr3_debug.c
> @@ -6,7 +6,6 @@
> #include "ddr3_init.h"
> #include "mv_ddr_training_db.h"
> #include "mv_ddr_regs.h"
> -#include <log.h>
>
> u8 is_reg_dump = 0;
> u8 debug_pbs = DEBUG_LEVEL_ERROR;
> diff --git a/drivers/ddr/marvell/a38x/ddr3_init.c b/drivers/ddr/marvell/a38x/ddr3_init.c
> index 7488770268cf..f878b4512bfc 100644
> --- a/drivers/ddr/marvell/a38x/ddr3_init.c
> +++ b/drivers/ddr/marvell/a38x/ddr3_init.c
> @@ -77,9 +77,6 @@ int ddr3_init(void)
> return status;
> }
>
> -#if defined(CONFIG_PHY_STATIC_PRINT)
> - mv_ddr_phy_static_print();
> -#endif
>
> /* Post MC/PHY initializations */
> mv_ddr_post_training_soc_config(ddr_type);
> diff --git a/drivers/ddr/marvell/a38x/ddr3_training.c b/drivers/ddr/marvell/a38x/ddr3_training.c
> index 2b3af23202b6..2512b58cb7b2 100644
> --- a/drivers/ddr/marvell/a38x/ddr3_training.c
> +++ b/drivers/ddr/marvell/a38x/ddr3_training.c
> @@ -7,8 +7,6 @@
> #include "mv_ddr_common.h"
> #include "mv_ddr_training_db.h"
> #include "mv_ddr_regs.h"
> -#include <log.h>
> -#include <linux/delay.h>
>
> #define GET_CS_FROM_MASK(mask) (cs_mask2_num[mask])
> #define CS_CBE_VALUE(cs_num) (cs_cbe_reg[cs_num])
> @@ -207,7 +205,6 @@ static int ddr3_tip_pad_inv(void)
> if (tm->interface_params[0].as_bus_params[sphy].
> is_ck_swap == 1 && sphy == 0) {
> /* TODO: move this code to per platform one */
> -#if defined(CONFIG_ARMADA_38X) || defined(CONFIG_ARMADA_39X)
> /* clock swap for both cs0 and cs1 */
> data = (INVERT_PAD << INV_PAD2_OFFS |
> INVERT_PAD << INV_PAD6_OFFS |
> @@ -219,9 +216,6 @@ static int ddr3_tip_pad_inv(void)
> DDR_PHY_CONTROL,
> PHY_CTRL_PHY_REG,
> data, data);
> -#else /* !CONFIG_ARMADA_38X && !CONFIG_ARMADA_39X */
> -#pragma message "unknown platform to configure ddr clock swap"
> -#endif
> }
> }
>
> @@ -2014,9 +2008,7 @@ int ddr3_tip_adll_regs_bypass(u32 dev_num, u32 reg_val1, u32 reg_val2)
> static int ddr3_tip_ddr3_training_main_flow(u32 dev_num)
> {
> /* TODO: enable this functionality for other platforms */
> -#if defined(CONFIG_ARMADA_38X) || defined(CONFIG_ARMADA_39X)
> struct init_cntr_param init_cntr_prm;
> -#endif
> int ret = MV_OK;
> int adll_bypass_flag = 0;
> u32 if_id;
> @@ -2050,7 +2042,6 @@ static int ddr3_tip_ddr3_training_main_flow(u32 dev_num)
> }
>
> /* TODO: enable this functionality for other platforms */
> -#if defined(CONFIG_ARMADA_38X) || defined(CONFIG_ARMADA_39X)
> if (is_adll_calib_before_init != 0) {
> DEBUG_TRAINING_IP(DEBUG_LEVEL_INFO,
> ("with adll calib before init\n"));
> @@ -2081,7 +2072,6 @@ static int ddr3_tip_ddr3_training_main_flow(u32 dev_num)
> return MV_FAIL;
> }
> }
> -#endif
>
> ret = adll_calibration(dev_num, ACCESS_TYPE_MULTICAST, 0, freq);
> if (ret != MV_OK) {
> @@ -2905,3 +2895,4 @@ unsigned int mv_ddr_misl_phy_odt_n_get(void)
>
> return odt_n;
> }
> +
> diff --git a/drivers/ddr/marvell/a38x/ddr3_training_ip_engine.c b/drivers/ddr/marvell/a38x/ddr3_training_ip_engine.c
> index 5fd9a052fa0d..102f9bd633f5 100644
> --- a/drivers/ddr/marvell/a38x/ddr3_training_ip_engine.c
> +++ b/drivers/ddr/marvell/a38x/ddr3_training_ip_engine.c
> @@ -6,8 +6,6 @@
> #include "ddr3_init.h"
> #include "mv_ddr_regs.h"
> #include "ddr_training_ip_db.h"
> -#include <image.h>
> -#include <linux/delay.h>
>
> #define PATTERN_1 0x55555555
> #define PATTERN_2 0xaaaaaaaa
> @@ -614,9 +612,9 @@ int ddr3_tip_load_pattern_to_odpg(u32 dev_num, enum hws_access_type access_type,
> MASK_ALL_BITS));
> }
>
> - CHECK_STATUS(ddr3_tip_if_write(dev_num, access_type, if_id,
> - ODPG_DATA_BUFFER_OFFS_REG,
> - load_addr, MASK_ALL_BITS));
> + CHECK_STATUS(ddr3_tip_if_write
> + (dev_num, access_type, if_id,
> + ODPG_DATA_BUFFER_OFFS_REG, load_addr, MASK_ALL_BITS));
>
> return MV_OK;
> }
> diff --git a/drivers/ddr/marvell/a38x/ddr3_training_leveling.c b/drivers/ddr/marvell/a38x/ddr3_training_leveling.c
> index dadb06b31814..7f7df6794a95 100644
> --- a/drivers/ddr/marvell/a38x/ddr3_training_leveling.c
> +++ b/drivers/ddr/marvell/a38x/ddr3_training_leveling.c
> @@ -7,7 +7,6 @@
> #include "mv_ddr_training_db.h"
> #include "ddr_training_ip_db.h"
> #include "mv_ddr_regs.h"
> -#include <linux/delay.h>
>
> #define WL_ITERATION_NUM 10
>
> diff --git a/drivers/ddr/marvell/a38x/ddr_ml_wrapper.h b/drivers/ddr/marvell/a38x/ddr_ml_wrapper.h
> index ac9250f74ed8..735731196589 100644
> --- a/drivers/ddr/marvell/a38x/ddr_ml_wrapper.h
> +++ b/drivers/ddr/marvell/a38x/ddr_ml_wrapper.h
> @@ -13,9 +13,7 @@
> #include <asm/arch/cpu.h>
> #include <asm/arch/soc.h>
>
> -#if defined(CONFIG_ARMADA_38X) || defined(CONFIG_ARMADA_39X)
> #define INTER_REGS_BASE SOC_REGS_PHY_BASE
> -#endif
>
> /*
> * MV_DEBUG_INIT need to be defines, otherwise the output of the
> diff --git a/drivers/ddr/marvell/a38x/mv_ddr_plat.c b/drivers/ddr/marvell/a38x/mv_ddr_plat.c
> index 0d1df189e820..da0d63d4f7a4 100644
> --- a/drivers/ddr/marvell/a38x/mv_ddr_plat.c
> +++ b/drivers/ddr/marvell/a38x/mv_ddr_plat.c
> @@ -8,7 +8,6 @@
> #include "mv_ddr_training_db.h"
> #include "mv_ddr_regs.h"
> #include "mv_ddr_sys_env_lib.h"
> -#include <linux/delay.h>
>
> #define DDR_INTERFACES_NUM 1
> #define DDR_INTERFACE_OCTETS_NUM 5
> diff --git a/drivers/ddr/marvell/a38x/mv_ddr_plat.h b/drivers/ddr/marvell/a38x/mv_ddr_plat.h
> index 281d4c23013e..44998847c254 100644
> --- a/drivers/ddr/marvell/a38x/mv_ddr_plat.h
> +++ b/drivers/ddr/marvell/a38x/mv_ddr_plat.h
> @@ -6,6 +6,8 @@
> #ifndef _MV_DDR_PLAT_H
> #define _MV_DDR_PLAT_H
>
> +#include <linux/delay.h>
> +
> #define MAX_DEVICE_NUM 1
> #define MAX_INTERFACE_NUM 1
> #define MAX_BUS_NUM 5
> diff --git a/drivers/ddr/marvell/a38x/mv_ddr_sys_env_lib.h b/drivers/ddr/marvell/a38x/mv_ddr_sys_env_lib.h
> index dc6977c33455..cf5142094d31 100644
> --- a/drivers/ddr/marvell/a38x/mv_ddr_sys_env_lib.h
> +++ b/drivers/ddr/marvell/a38x/mv_ddr_sys_env_lib.h
> @@ -78,20 +78,6 @@ enum suspend_wakeup_status {
> * set '-2'
> * If suspend to RAM is not supported set '-1'
> */
> -#ifdef CONFIG_CUSTOMER_BOARD_SUPPORT
> -#ifdef CONFIG_ARMADA_38X
> -#define MV_BOARD_WAKEUP_GPIO_INFO { \
> - {A38X_CUSTOMER_BOARD_ID0, -1 }, \
> - {A38X_CUSTOMER_BOARD_ID0, -1 }, \
> -};
> -#else
> -#define MV_BOARD_WAKEUP_GPIO_INFO { \
> - {A39X_CUSTOMER_BOARD_ID0, -1 }, \
> - {A39X_CUSTOMER_BOARD_ID0, -1 }, \
> -};
> -#endif /* CONFIG_ARMADA_38X */
> -
> -#else
>
> #ifdef CONFIG_ARMADA_38X
> #define MV_BOARD_WAKEUP_GPIO_INFO { \
> @@ -109,7 +95,6 @@ enum suspend_wakeup_status {
> {A39X_DB_69XX_ID, -1 }, \
> };
> #endif /* CONFIG_ARMADA_38X */
> -#endif /* CONFIG_CUSTOMER_BOARD_SUPPORT */
>
> enum suspend_wakeup_status mv_ddr_sys_env_suspend_wakeup_check(void);
> u32 mv_ddr_sys_env_get_cs_ena_from_reg(void);
> diff --git a/drivers/ddr/marvell/a38x/xor.c b/drivers/ddr/marvell/a38x/xor.c
> index 98fb39eaf0fa..7bc6268293e5 100644
> --- a/drivers/ddr/marvell/a38x/xor.c
> +++ b/drivers/ddr/marvell/a38x/xor.c
> @@ -347,10 +347,8 @@ void ddr3_new_tip_ecc_scrub(void)
> for (cs_c = 0; cs_c < max_cs; cs_c++)
> cs_ena |= 1 << cs_c;
>
> -#if defined(CONFIG_ARMADA_38X) || defined(CONFIG_ARMADA_39X)
> /* all chip-selects are of same size */
> ddr3_calc_mem_cs_size(0, &cs_mem_size_mb);
> -#endif
> cs_mem_size = cs_mem_size_mb * _1M;
> mv_sys_xor_init(max_cs, cs_ena, cs_mem_size, 0);
> total_mem_size = max_cs * cs_mem_size;
>
Viele Grüße,
Stefan
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
More information about the U-Boot
mailing list