All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rogier Stam <rogier@unrailed.org>
To: "Pali Rohár" <pali@kernel.org>, "Stefan Roese" <sr@denx.de>
Cc: Simon Glass <sjg@chromium.org>, u-boot@lists.denx.de
Subject: Re: [PATCH 2/2] Add SCSI scan for ENV in EXT4 or FAT
Date: Wed, 11 May 2022 23:02:04 +0200	[thread overview]
Message-ID: <0fa9eee8-1580-1eef-54fe-f66bdff67e39@unrailed.org> (raw)
In-Reply-To: <20220421105756.2gti5gohn2nlvmeh@pali>

Hi,

Sorry for the late reply. Not much time lately, also had some trouble 
figuring the world build out. That said I have a fix. Not sure on the 
usual process, but I will repost it on the mailing list in a moment. 
Pali was quite close on the solution. I went a slightly different route 
as I did not want to deviate from style in fat.c, also from reading the 
recommended CONFIG_IS_ENABLED macro I got the impression you'd have to 
define separate vars for TPL and SPL which would deviate from normal 
usage for storing env in fat.

Effectively it amounts to:

+#ifndef CONFIG_SPL_BUILD
+#if defined(CONFIG_AHCI) || defined(CONFIG_SCSI)
+       if (!strcmp(CONFIG_ENV_FAT_INTERFACE, "scsi"))
+               scsi_scan(true);
+#endif
+#endif

Anyway, let me know if you disagree.

Thanks and regards

Rogier

On 21-04-2022 12:57, Pali Rohár wrote:
> On Thursday 21 April 2022 12:34:30 Stefan Roese wrote:
>> Hi Rogier,
>>
>> On 2/28/22 08:13, Pali Rohár wrote:
>>> + Simon, could you review this change? It would be nice to have this fix in upcoming U-Boot release.
>>>
>>> On Wednesday 09 February 2022 00:27:01 Rogier Stam wrote:
>>>> When having environment stored in EXT4 or FAT
>>>> and using an AHCI or SCSI device / partition
>>>> the scan would not be performed early enough
>>>> and hence the device would not be recognized.
>>>> This change adds the scan when the interface
>>>> is "scsi" in a similar way to mmc_initialize.
>>>>
>>>> Signed-off-by: Rogier Stam <rogier@unrailed.org>
>>> Reviewed-by: Pali Rohár <pali@kernel.org>
>> While running some CI tests, this error occurs with this patch:
>>
>> $ make dra7xx_hs_evm_usb_defconfig
>> ...
>> $ make -s -j20
>> ...
>> /opt/kernel.org/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-ld.bfd:
>> env/fat.o: in function `env_fat_load':
>> /home/stefan/git/u-boot/u-boot-marvell/env/fat.c:134: undefined reference to
>> `scsi_scan'
>> make[1]: *** [scripts/Makefile.spl:512: spl/u-boot-spl] Error 1
>> make: *** [Makefile:2101: spl/u-boot-spl] Error 2
> This is failing while building SPL...
>
>> Could you please take a look? And send a fixed version which also
>> passed a "world build" for all supported targets?
>>
>> Thanks,
>> Stefan
>>
>>
>>>> ---
>>>>    env/ext4.c | 5 +++++
>>>>    env/fat.c  | 5 +++++
>>>>    2 files changed, 10 insertions(+)
>>>>
>>>> diff --git a/env/ext4.c b/env/ext4.c
>>>> index 9f65afb..47e05a4 100644
>>>> --- a/env/ext4.c
>>>> +++ b/env/ext4.c
>>>> @@ -31,6 +31,7 @@
>>>>    #include <errno.h>
>>>>    #include <ext4fs.h>
>>>>    #include <mmc.h>
>>>> +#include <scsi.h>
>>>>    #include <asm/global_data.h>
>>>>    DECLARE_GLOBAL_DATA_PTR;
>>>> @@ -146,6 +147,10 @@ static int env_ext4_load(void)
>>>>    	if (!strcmp(ifname, "mmc"))
>>>>    		mmc_initialize(NULL);
>>>>    #endif
>>>> +#if defined(CONFIG_AHCI) || defined(CONFIG_SCSI)
>>>> +	if (!strcmp(ifname, "scsi"))
>>>> +		scsi_scan(true);
>>>> +#endif
>>>>    	part = blk_get_device_part_str(ifname, dev_and_part,
>>>>    				       &dev_desc, &info, 1);
>>>> diff --git a/env/fat.c b/env/fat.c
>>>> index fdccd6c..dbd6a13 100644
>>>> --- a/env/fat.c
>>>> +++ b/env/fat.c
>>>> @@ -17,6 +17,7 @@
>>>>    #include <errno.h>
>>>>    #include <fat.h>
>>>>    #include <mmc.h>
>>>> +#include <scsi.h>
>>>>    #include <asm/cache.h>
>>>>    #include <asm/global_data.h>
>>>>    #include <linux/stddef.h>
>>>> @@ -122,6 +123,10 @@ static int env_fat_load(void)
>>>>    	if (!strcmp(CONFIG_ENV_FAT_INTERFACE, "mmc"))
>>>>    		mmc_initialize(NULL);
>>>>    #endif
>>>> +#if defined(CONFIG_AHCI) || defined(CONFIG_SCSI)
> ... I guess that you should use CONFIG_IS_ENABLED(AHCI) instead of
> defined(CONFIG_AHCI) for proper SPL support.
>
>>>> +	if (!strcmp(CONFIG_ENV_FAT_INTERFACE, "scsi"))
>>>> +		scsi_scan(true);
>>>> +#endif
>>>>    	part = blk_get_device_part_str(CONFIG_ENV_FAT_INTERFACE,
>>>>    					env_fat_device_and_part(),
>>>> -- 
>>>> 2.7.4
>>>>
>> Viele Grüße,
>> Stefan Roese
>>
>> -- 
>> 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@denx.de

      reply	other threads:[~2022-05-11 21:02 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-08 23:26 [PATCH 0/2] U-Boot ENV in EXT4 support for Expressobin (revised) Rogier Stam
2022-02-08 23:27 ` [PATCH 1/2] Fix Espressobin build for configs where ENV is not in SPI Rogier Stam
2022-02-28  7:10   ` Pali Rohár
2022-04-21 13:55     ` Stefan Roese
2022-02-08 23:27 ` [PATCH 2/2] Add SCSI scan for ENV in EXT4 or FAT Rogier Stam
2022-02-28  7:13   ` Pali Rohár
2022-04-21 10:34     ` Stefan Roese
2022-04-21 10:57       ` Pali Rohár
2022-05-11 21:02         ` Rogier Stam [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=0fa9eee8-1580-1eef-54fe-f66bdff67e39@unrailed.org \
    --to=rogier@unrailed.org \
    --cc=pali@kernel.org \
    --cc=sjg@chromium.org \
    --cc=sr@denx.de \
    --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.