From: Michal Simek <michal.simek@amd.com>
To: Padmarao Begari <padmarao.begari@amd.com>, u-boot@lists.denx.de
Cc: git@amd.com, venkatesh.abbarapu@amd.com
Subject: Re: [PATCH] board: xilinx: Store board info data in data section
Date: Wed, 16 Apr 2025 13:50:56 +0200 [thread overview]
Message-ID: <3702a956-e66a-4d03-aaf4-550c26596372@amd.com> (raw)
In-Reply-To: <20250409162553.588285-1-padmarao.begari@amd.com>
On 4/9/25 18:25, Padmarao Begari wrote:
> Line 171 in README is describing that before relocation no code
> should use global variable because global variables are placed
> to BSS section which is initialized to 0 after relocation.
>
> In the case of ZynqMP, where DTB reselection is enabled, the EEPROM
> is read again after relocation. This prevents the issue from being
> observed. However, in Versal Gen 2, where DTB reselection is also
> enabled, the EEPROM is not read after relocation because it is not
> yet wired in board_init(). This leads to a situation where the code
> accesses an incorrect memory location, because none is really
> checking the board_info is valid or not. To fix, move the board_info
> into the data section and also check whether it is valid or not.
>
> Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
> ---
> board/xilinx/common/board.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/board/xilinx/common/board.c b/board/xilinx/common/board.c
> index deea6c71103..8ffe7429901 100644
> --- a/board/xilinx/common/board.c
> +++ b/board/xilinx/common/board.c
> @@ -80,7 +80,7 @@ struct xilinx_board_description {
> };
>
> static int highest_id = -1;
> -static struct xilinx_board_description *board_info;
> +static struct xilinx_board_description *board_info __section(".data");
>
> #define XILINX_I2C_DETECTION_BITS sizeof(struct fru_common_hdr)
>
> @@ -468,6 +468,9 @@ int board_late_init_xilinx(void)
> ret |= env_set_addr("bootm_size", (void *)bootm_size);
>
> for (id = 0; id <= highest_id; id++) {
> + if (!board_info)
> + break;
> +
> desc = &board_info[id];
> if (desc && desc->header == EEPROM_HEADER_MAGIC) {
> if (desc->manufacturer[0])
Applied.
M
prev parent reply other threads:[~2025-04-16 11:51 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-09 16:25 [PATCH] board: xilinx: Store board info data in data section Padmarao Begari
2025-04-16 11:50 ` Michal Simek [this message]
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=3702a956-e66a-4d03-aaf4-550c26596372@amd.com \
--to=michal.simek@amd.com \
--cc=git@amd.com \
--cc=padmarao.begari@amd.com \
--cc=u-boot@lists.denx.de \
--cc=venkatesh.abbarapu@amd.com \
/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.