From: Marek Vasut <marex@denx.de>
To: "Abbarapu, Venkatesh" <venkatesh.abbarapu@amd.com>,
"u-boot@lists.denx.de" <u-boot@lists.denx.de>,
"tudor.ambarus@linaro.org" <tudor.ambarus@linaro.org>,
"j-humphreys@ti.com" <j-humphreys@ti.com>
Cc: "Simek, Michal" <michal.simek@amd.com>,
"jagan@amarulasolutions.com" <jagan@amarulasolutions.com>,
"vigneshr@ti.com" <vigneshr@ti.com>,
"u-kumar1@ti.com" <u-kumar1@ti.com>,
"trini@konsulko.com" <trini@konsulko.com>,
"seanga2@gmail.com" <seanga2@gmail.com>,
"caleb.connolly@linaro.org" <caleb.connolly@linaro.org>,
"sjg@chromium.org" <sjg@chromium.org>,
"william.zhang@broadcom.com" <william.zhang@broadcom.com>,
"stefan_b@posteo.net" <stefan_b@posteo.net>,
"quentin.schulz@cherry.de" <quentin.schulz@cherry.de>,
"Takahiro.Kuwano@infineon.com" <Takahiro.Kuwano@infineon.com>,
"p-mantena@ti.com" <p-mantena@ti.com>,
"git (AMD-Xilinx)" <git@amd.com>
Subject: Re: [PATCH v2] mtd: spi-nor: Fix the spi_nor_read() when config SPI_STACKED_PARALLEL is enabled
Date: Wed, 18 Dec 2024 02:09:01 +0100 [thread overview]
Message-ID: <7f2b69af-ea98-4d22-a831-e484811c9715@denx.de> (raw)
In-Reply-To: <SA1PR12MB86974EDF358A58732A9B7A6F983B2@SA1PR12MB8697.namprd12.prod.outlook.com>
On 12/16/24 2:58 PM, Abbarapu, Venkatesh wrote:
>>>>> +++ b/drivers/mtd/spi/spi-nor-core.c
>>>>> @@ -1140,7 +1140,7 @@ static int spi_nor_erase(struct mtd_info *mtd,
>>>>> struct
>>>> erase_info *instr)
>>>>> nor->spi->flags &= ~SPI_XFER_U_PAGE;
>>>>> }
>>>>> #ifdef CONFIG_SPI_FLASH_BAR
>>>>> - ret = write_bar(nor, addr);
>>>>> + ret = write_bar(nor, offset);
>>>>
>>>> This change is really inobvious, the code above likely needs to be
>>>> compiled out if the SPI_STACKED_PARALLEL stuff is disabled ?
>>>
>>> In the spi_nor_erase()
>>> offset = addr;
>>> if(PARALLEL)
>>> offset/=2;
>>> so for parallel or single configuration we need to pass "offset" to write_bar()
>>> write_bar(nor, offset");
>>
>> The code above likely needs to be compiled out if the SPI_STACKED_PARALLEL
>> stuff is disabled ?
>>
>> [...]
>>
> Already the code here is being checked with the flags SNOR_F_HAS_PARALLEL and SNOR_F_HAS_STACKED. Do you want to add the check SPI_STACKED_PARALLEL apart from these flags?
Yes, to compile the code out completely.
>>>> If I look at this change with 'git show -w' , the change looks like this:
>>>>
>>>> "
>>>> #ifdef CONFIG_SPI_FLASH_BAR
>>>> + u32 remain_len;
>>>> +
>>>> ret = write_bar(nor, offset);
>>>> if (ret < 0)
>>>> return log_ret(ret);
>>>> + remain_len = (SZ_16M * (nor->bank_curr + 1)) - offset;
>>>> + if (len < remain_len)
>>>> + read_len = len;
>>>> + else
>>>> + read_len = remain_len;
>>>> #endif
>>>> -
>>>> + if (CONFIG_IS_ENABLED(SPI_STACKED_PARALLEL)) {
>>>> if (len < rem_bank_len)
>>>> read_len = len;
>>>> else
>>>> read_len = rem_bank_len;
>>>> -
>>>> + }
>>>> if (read_len == 0)
>>>> return -EIO; "
>>>>
>>>> Why is there this part of code twice now, ifdeffed out differently in each case ?
>>>>
>>>> "
>>>> if (len < rem_bank_len)
>>>> read_len = len;
>>>> else
>>>> read_len = rem_bank_len; "
>>>
>>> For parallel/stacked configuration and address width the "rem_bank_len" will vary
>> and as we don't want to disturb the default read functionality added the ifdef
>> separately.
>> What would happen if both SPI_FLASH_BAR and SPI_STACKED_PARALLEL are
>> enabled on a system that only has one SPI NOR attached
>> (non-stacked/parallel) ? I noticed the second "copy" of the code behaves slightly
>> differently in the else branch, so does that mean this would break such setup ?
>
> If both SPI_FLASH_BAR and SPI_STACKED_PARALLEL are enabled, the "rem_bank_len" manipulation is done under the CONFIG_IS_ENABLED(SPI_STACKED_PARALLEL) code and this won't break any default functionality.
Wouldn't read_len calculation be done twice ?
next prev parent reply other threads:[~2024-12-18 1:19 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-11 12:06 [PATCH v2] mtd: spi-nor: Fix the spi_nor_read() when config SPI_STACKED_PARALLEL is enabled Venkatesh Yadav Abbarapu
2024-12-12 20:14 ` Jon Humphreys
2024-12-15 23:50 ` Marek Vasut
2024-12-16 4:16 ` Abbarapu, Venkatesh
2024-12-16 10:35 ` Marek Vasut
2024-12-16 13:58 ` Abbarapu, Venkatesh
2024-12-18 1:09 ` Marek Vasut [this message]
2024-12-18 9:22 ` Abbarapu, Venkatesh
2024-12-18 13:58 ` Marek Vasut
2024-12-19 4:21 ` Abbarapu, Venkatesh
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=7f2b69af-ea98-4d22-a831-e484811c9715@denx.de \
--to=marex@denx.de \
--cc=Takahiro.Kuwano@infineon.com \
--cc=caleb.connolly@linaro.org \
--cc=git@amd.com \
--cc=j-humphreys@ti.com \
--cc=jagan@amarulasolutions.com \
--cc=michal.simek@amd.com \
--cc=p-mantena@ti.com \
--cc=quentin.schulz@cherry.de \
--cc=seanga2@gmail.com \
--cc=sjg@chromium.org \
--cc=stefan_b@posteo.net \
--cc=trini@konsulko.com \
--cc=tudor.ambarus@linaro.org \
--cc=u-boot@lists.denx.de \
--cc=u-kumar1@ti.com \
--cc=venkatesh.abbarapu@amd.com \
--cc=vigneshr@ti.com \
--cc=william.zhang@broadcom.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.