From patchwork Tue Mar 27 09:29:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kever Yang X-Patchwork-Id: 891469 X-Patchwork-Delegate: philipp.tomsich@theobroma-systems.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=rock-chips.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="YHS2MK0V"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 409Qy62Y5lz9s1c for ; Tue, 27 Mar 2018 20:41:34 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id DF059C21F05; Tue, 27 Mar 2018 09:39:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id B25EEC21FF3; Tue, 27 Mar 2018 09:32:45 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 46FF9C21FC4; Tue, 27 Mar 2018 09:30:37 +0000 (UTC) Received: from mail-pl0-f66.google.com (mail-pl0-f66.google.com [209.85.160.66]) by lists.denx.de (Postfix) with ESMTPS id DD682C21FA4 for ; Tue, 27 Mar 2018 09:30:33 +0000 (UTC) Received: by mail-pl0-f66.google.com with SMTP id b7-v6so13749128plr.8 for ; Tue, 27 Mar 2018 02:30:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=ptZ9lGYIT7Rv719jW9+W5s4FfVJk+JUsg9r34nst900=; b=YHS2MK0VX4kDdMvH26+2CVgJgfbhX1YwKYBYKtm8/vYzrt+JydHaIXVma0rRan12lA 2+zMSprJ9ivGg+b/j5ufO3kwNwDx3Tdc40WZbxQ6yE32OOMYXpTC4M9rdXcKxjXyyeEq +LfXrnmat6s2RjrA4PorDqjse4XEKM4/6zozNgk1mdrSHvZYGfCS7nBrQ1Gp0ym+dmBZ dn26q0THRckUiHfGDf5i82LdpCFmW9SBbU/WjXW04YHkK+lSC/dJuZT4il4REklcSpd0 S3jpjIU8fCW3aH7InA+YCaiKb6qOPteC30o+3ab/lrfZwGQwTgUUV6kMm7Di12B6PQrt BoeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=ptZ9lGYIT7Rv719jW9+W5s4FfVJk+JUsg9r34nst900=; b=VsmUshRiJIJ4BfqNiB22ceMCkKeTmnRseROf9ICssGzyEREIi2fcNPx6CzqLQmn3kM g8bAF9p9R3whZJJFa7nN7q966w/aqkzdJ+EFkfM2IDlx/wfK5lYbgLY2SJxxqQK4l8ZL oN10S2x2AeCMoa/DkkRqkztDP8IEa8yzoZJ6R1+GC10WSGwd57rlhf4DeEc1+Lf11kPH 5RjA9hvve107RtHVv+t4PCeBQDRc+C7Oibfm3xA3qj9BhUSsdT9nqWgCyrctRL3sV9n+ 4YNIxhPl3pi42mQ8C+WRymeEWoAIZGftcLPVkcd6PEswbaE0r+zl52TTsIHooFxpVY07 ExUg== X-Gm-Message-State: AElRT7F8YyBf9ktEP7NNRdcX0B1wiJLYyp2nds0S4JH8vRRMgsat+GYa 5veuSvlrV3MAmQYrBD+RzTne1g== X-Google-Smtp-Source: AG47ELuxasguEo1m7P190BuPdS0hZMVd4I5BuzPtjHQ10AdpZcE5UJeXbQh7abvCLrlWaxxA5KBrXw== X-Received: by 2002:a17:902:149:: with SMTP id 67-v6mr44952578plb.296.1522143032188; Tue, 27 Mar 2018 02:30:32 -0700 (PDT) Received: from localhost.localdomain ([103.29.142.67]) by smtp.gmail.com with ESMTPSA id j83sm2171561pfj.18.2018.03.27.02.30.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 27 Mar 2018 02:30:31 -0700 (PDT) From: Kever Yang To: u-boot@lists.denx.de Date: Tue, 27 Mar 2018 17:29:10 +0800 Message-Id: <1522142971-20739-17-git-send-email-kever.yang@rock-chips.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1522142971-20739-1-git-send-email-kever.yang@rock-chips.com> References: <1522142971-20739-1-git-send-email-kever.yang@rock-chips.com> Subject: [U-Boot] [PATCH 16/36] rockchip: sdram-common: add api to pass dram info to trust os X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Trust OS decode this info like this: https://github.com/ARM-software/arm-trusted-firmware/blob/master/plat/rockchip/common/drivers/parameter/ddr_parameter.c#L19 We have to set a available value, or else we get error info from Trust OS like this: "ERROR: over or zero region, nr=3145987, max=10" Signed-off-by: Kever Yang Acked-by: Philipp Tomsich --- arch/arm/include/asm/arch-rockchip/sdram_common.h | 4 ++++ arch/arm/mach-rockchip/sdram_common.c | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/arch/arm/include/asm/arch-rockchip/sdram_common.h b/arch/arm/include/asm/arch-rockchip/sdram_common.h index fec8586..55c6b81 100644 --- a/arch/arm/include/asm/arch-rockchip/sdram_common.h +++ b/arch/arm/include/asm/arch-rockchip/sdram_common.h @@ -55,4 +55,8 @@ size_t rockchip_sdram_size(phys_addr_t reg); /* Called by U-Boot board_init_r for Rockchip SoCs */ int dram_init(void); + +/* Write ddr param to a known place for trustos */ +int rockchip_setup_ddr_param(struct ram_info *info); + #endif diff --git a/arch/arm/mach-rockchip/sdram_common.c b/arch/arm/mach-rockchip/sdram_common.c index 76dbdc8..3a71f09 100644 --- a/arch/arm/mach-rockchip/sdram_common.c +++ b/arch/arm/mach-rockchip/sdram_common.c @@ -12,6 +12,15 @@ #include DECLARE_GLOBAL_DATA_PTR; +struct ddr_param { + u32 count; + u32 reserved; + u64 bank_addr; + u64 bank_size; +}; + +#define PARAM_DRAM_INFO_OFFSET 0x2000000 + size_t rockchip_sdram_size(phys_addr_t reg) { u32 rank, col, bk, cs0_row, cs1_row, bw, row_3_4; @@ -81,3 +90,15 @@ ulong board_get_usable_ram_top(ulong total_size) return (gd->ram_top > top) ? top : gd->ram_top; } + +int rockchip_setup_ddr_param(struct ram_info *info) +{ + struct ddr_param *dinfo = (struct ddr_param *)CONFIG_SYS_SDRAM_BASE + + PARAM_DRAM_INFO_OFFSET; + + dinfo->count = 1; + dinfo->bank_addr = info->base; + dinfo->bank_size = info->size; + + return 0; +}