public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* reset-loop on Odroid U2: cros-ec communications failure
@ 2023-01-09  9:11 Joost van Zwieten
  2023-01-13 18:00 ` Simon Glass
  0 siblings, 1 reply; 5+ messages in thread
From: Joost van Zwieten @ 2023-01-09  9:11 UTC (permalink / raw)
  To: u-boot

Dear maintainers,

U-Boot on my Odroid U2 fails to initialize as of commit 
e44d7e73fe0d649693d8d0a110cd7632bc919273 (introduced after v2022.10). I 
get the following output:

    U-Boot 2022.10-00565-ge44d7e73fe-dirty (Jan 09 2023 - 01:04:19 
+0100)

    CPU: Exynos4412 @ 1 GHz
    Model: Odroid based on Exynos4412
    Type: u3
    DRAM: 2 GiB
    Core: 101 devices, 12 uclasses, devicetree: separate
    LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling
    LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling
    LDO21@TFLASH_2.8V: set 2800000 uV; enabling
    MMC: SAMSUNG SDHCI: 2, EXYNOS DWMMC: 0
    Loading Environment from MMC... *** Warning - bad CRC, using 
default environment

    cros-ec communications failure -96

    Please reset with Power+Refresh

    Cannot init cros-ec device
    resetting ...

This repeats indefinitely. I'm building U-Boot using the default config 
for board `odroid` and boot the Odroid from an SD card with firmware 
(`bl1`, `bl2` and `tzsw`) from Hardkernel's clone of the u-boot 
repository [1]. There are no peripherals connected apart from the SD 
card and the serial console. Please let me know if you need more 
information.

Best, Joost

[1]: 
https://github.com/hardkernel/u-boot/tree/33e05ffb159141b640571e91470172d83a2a1273/sd_fuse



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: reset-loop on Odroid U2: cros-ec communications failure
  2023-01-09  9:11 reset-loop on Odroid U2: cros-ec communications failure Joost van Zwieten
@ 2023-01-13 18:00 ` Simon Glass
  2023-01-20 22:00   ` Joost van Zwieten
  0 siblings, 1 reply; 5+ messages in thread
From: Simon Glass @ 2023-01-13 18:00 UTC (permalink / raw)
  To: Joost van Zwieten; +Cc: u-boot

Hi Joost,

On Mon, 9 Jan 2023 at 06:31, Joost van Zwieten <joost@diskos.nl> wrote:
>
> Dear maintainers,
>
> U-Boot on my Odroid U2 fails to initialize as of commit
> e44d7e73fe0d649693d8d0a110cd7632bc919273 (introduced after v2022.10). I
> get the following output:
>
>     U-Boot 2022.10-00565-ge44d7e73fe-dirty (Jan 09 2023 - 01:04:19
> +0100)
>
>     CPU: Exynos4412 @ 1 GHz
>     Model: Odroid based on Exynos4412
>     Type: u3
>     DRAM: 2 GiB
>     Core: 101 devices, 12 uclasses, devicetree: separate
>     LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling
>     LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling
>     LDO21@TFLASH_2.8V: set 2800000 uV; enabling
>     MMC: SAMSUNG SDHCI: 2, EXYNOS DWMMC: 0
>     Loading Environment from MMC... *** Warning - bad CRC, using
> default environment
>
>     cros-ec communications failure -96
>
>     Please reset with Power+Refresh
>
>     Cannot init cros-ec device
>     resetting ...
>
> This repeats indefinitely. I'm building U-Boot using the default config
> for board `odroid` and boot the Odroid from an SD card with firmware
> (`bl1`, `bl2` and `tzsw`) from Hardkernel's clone of the u-boot
> repository [1]. There are no peripherals connected apart from the SD
> card and the serial console. Please let me know if you need more
> information.

board_late_init() is presumably enabled with CONFIG_BOARD_LATE_INIT
and the code in board/samsung/common/board.c is being called.

-96 is -EPFNOSUPPORT which means that the CROS_EC uclass is missing.

So either enable CROS_EC so you have the uclass, or disable
BOARD_LATE_INIT so it doesn't matter.

>
> Best, Joost
>
> [1]:
> https://github.com/hardkernel/u-boot/tree/33e05ffb159141b640571e91470172d83a2a1273/sd_fuse
>
>

Regards,
Simon

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: reset-loop on Odroid U2: cros-ec communications failure
  2023-01-13 18:00 ` Simon Glass
@ 2023-01-20 22:00   ` Joost van Zwieten
  2023-01-20 22:11     ` Simon Glass
  0 siblings, 1 reply; 5+ messages in thread
From: Joost van Zwieten @ 2023-01-20 22:00 UTC (permalink / raw)
  To: Simon Glass; +Cc: u-boot



On Fri, Jan 13, 2023 at 11:00, Simon Glass <sjg@chromium.org> wrote:
> Hi Joost,
> 
> On Mon, 9 Jan 2023 at 06:31, Joost van Zwieten <joost@diskos.nl> 
> wrote:
>> 
>>  Dear maintainers,
>> 
>>  U-Boot on my Odroid U2 fails to initialize as of commit
>>  e44d7e73fe0d649693d8d0a110cd7632bc919273 (introduced after 
>> v2022.10). I
>>  get the following output:
>> 
>>      U-Boot 2022.10-00565-ge44d7e73fe-dirty (Jan 09 2023 - 01:04:19
>>  +0100)
>> 
>>      CPU: Exynos4412 @ 1 GHz
>>      Model: Odroid based on Exynos4412
>>      Type: u3
>>      DRAM: 2 GiB
>>      Core: 101 devices, 12 uclasses, devicetree: separate
>>      LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling
>>      LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling
>>      LDO21@TFLASH_2.8V: set 2800000 uV; enabling
>>      MMC: SAMSUNG SDHCI: 2, EXYNOS DWMMC: 0
>>      Loading Environment from MMC... *** Warning - bad CRC, using
>>  default environment
>> 
>>      cros-ec communications failure -96
>> 
>>      Please reset with Power+Refresh
>> 
>>      Cannot init cros-ec device
>>      resetting ...
>> 
>>  This repeats indefinitely. I'm building U-Boot using the default 
>> config
>>  for board `odroid` and boot the Odroid from an SD card with firmware
>>  (`bl1`, `bl2` and `tzsw`) from Hardkernel's clone of the u-boot
>>  repository [1]. There are no peripherals connected apart from the SD
>>  card and the serial console. Please let me know if you need more
>>  information.
> 
> board_late_init() is presumably enabled with CONFIG_BOARD_LATE_INIT
> and the code in board/samsung/common/board.c is being called.
> 
> -96 is -EPFNOSUPPORT which means that the CROS_EC uclass is missing.
> 
> So either enable CROS_EC so you have the uclass, or disable
> BOARD_LATE_INIT so it doesn't matter.
> 
>> 
>>  Best, Joost
>> 
>>  [1]:
>>  
>> https://github.com/hardkernel/u-boot/tree/33e05ffb159141b640571e91470172d83a2a1273/sd_fuse
>> 
>> 
> 
> Regards,
> Simon

Hi Simon,

Thanks. Both solutions work. With `CROS_EC` enabled 
`uclass_first_device_err(UCLASS_CROS_EC, &dev)` returns `ENODEV`. Since 
`board_late_init()` seems to do legitimate work for this board 
(defining the `mmcbootdev` environment variable) I think enabling 
`CROS_EC` is the way to go. Should this be part of the defconfig for 
odroid? If so, I can send a patch.

Best, Joost



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: reset-loop on Odroid U2: cros-ec communications failure
  2023-01-20 22:00   ` Joost van Zwieten
@ 2023-01-20 22:11     ` Simon Glass
  2023-01-21 21:04       ` Joost van Zwieten
  0 siblings, 1 reply; 5+ messages in thread
From: Simon Glass @ 2023-01-20 22:11 UTC (permalink / raw)
  To: Joost van Zwieten; +Cc: u-boot

Hi Joost,

On Fri, 20 Jan 2023 at 15:00, Joost van Zwieten <joost@diskos.nl> wrote:
>
>
>
> On Fri, Jan 13, 2023 at 11:00, Simon Glass <sjg@chromium.org> wrote:
> > Hi Joost,
> >
> > On Mon, 9 Jan 2023 at 06:31, Joost van Zwieten <joost@diskos.nl>
> > wrote:
> >>
> >>  Dear maintainers,
> >>
> >>  U-Boot on my Odroid U2 fails to initialize as of commit
> >>  e44d7e73fe0d649693d8d0a110cd7632bc919273 (introduced after
> >> v2022.10). I
> >>  get the following output:
> >>
> >>      U-Boot 2022.10-00565-ge44d7e73fe-dirty (Jan 09 2023 - 01:04:19
> >>  +0100)
> >>
> >>      CPU: Exynos4412 @ 1 GHz
> >>      Model: Odroid based on Exynos4412
> >>      Type: u3
> >>      DRAM: 2 GiB
> >>      Core: 101 devices, 12 uclasses, devicetree: separate
> >>      LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling
> >>      LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling
> >>      LDO21@TFLASH_2.8V: set 2800000 uV; enabling
> >>      MMC: SAMSUNG SDHCI: 2, EXYNOS DWMMC: 0
> >>      Loading Environment from MMC... *** Warning - bad CRC, using
> >>  default environment
> >>
> >>      cros-ec communications failure -96
> >>
> >>      Please reset with Power+Refresh
> >>
> >>      Cannot init cros-ec device
> >>      resetting ...
> >>
> >>  This repeats indefinitely. I'm building U-Boot using the default
> >> config
> >>  for board `odroid` and boot the Odroid from an SD card with firmware
> >>  (`bl1`, `bl2` and `tzsw`) from Hardkernel's clone of the u-boot
> >>  repository [1]. There are no peripherals connected apart from the SD
> >>  card and the serial console. Please let me know if you need more
> >>  information.
> >
> > board_late_init() is presumably enabled with CONFIG_BOARD_LATE_INIT
> > and the code in board/samsung/common/board.c is being called.
> >
> > -96 is -EPFNOSUPPORT which means that the CROS_EC uclass is missing.
> >
> > So either enable CROS_EC so you have the uclass, or disable
> > BOARD_LATE_INIT so it doesn't matter.
> >
> >>
> >>  Best, Joost
> >>
> >>  [1]:
> >>
> >> https://github.com/hardkernel/u-boot/tree/33e05ffb159141b640571e91470172d83a2a1273/sd_fuse
> >>
> >>
> >
> > Regards,
> > Simon
>
> Hi Simon,
>
> Thanks. Both solutions work. With `CROS_EC` enabled
> `uclass_first_device_err(UCLASS_CROS_EC, &dev)` returns `ENODEV`. Since
> `board_late_init()` seems to do legitimate work for this board
> (defining the `mmcbootdev` environment variable) I think enabling
> `CROS_EC` is the way to go. Should this be part of the defconfig for
> odroid? If so, I can send a patch.

Yes that seems OK to me.

Regards,
Simon

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: reset-loop on Odroid U2: cros-ec communications failure
  2023-01-20 22:11     ` Simon Glass
@ 2023-01-21 21:04       ` Joost van Zwieten
  0 siblings, 0 replies; 5+ messages in thread
From: Joost van Zwieten @ 2023-01-21 21:04 UTC (permalink / raw)
  To: Simon Glass; +Cc: u-boot



On Fri, Jan 20, 2023 at 15:11, Simon Glass <sjg@chromium.org> wrote:
> Hi Joost,
> 
> On Fri, 20 Jan 2023 at 15:00, Joost van Zwieten <joost@diskos.nl> 
> wrote:
>> 
>> 
>> 
>>  On Fri, Jan 13, 2023 at 11:00, Simon Glass <sjg@chromium.org> wrote:
>>  > Hi Joost,
>>  >
>>  > On Mon, 9 Jan 2023 at 06:31, Joost van Zwieten <joost@diskos.nl>
>>  > wrote:
>>  >>
>>  >>  Dear maintainers,
>>  >>
>>  >>  U-Boot on my Odroid U2 fails to initialize as of commit
>>  >>  e44d7e73fe0d649693d8d0a110cd7632bc919273 (introduced after
>>  >> v2022.10). I
>>  >>  get the following output:
>>  >>
>>  >>      U-Boot 2022.10-00565-ge44d7e73fe-dirty (Jan 09 2023 - 
>> 01:04:19
>>  >>  +0100)
>>  >>
>>  >>      CPU: Exynos4412 @ 1 GHz
>>  >>      Model: Odroid based on Exynos4412
>>  >>      Type: u3
>>  >>      DRAM: 2 GiB
>>  >>      Core: 101 devices, 12 uclasses, devicetree: separate
>>  >>      LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling
>>  >>      LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling
>>  >>      LDO21@TFLASH_2.8V: set 2800000 uV; enabling
>>  >>      MMC: SAMSUNG SDHCI: 2, EXYNOS DWMMC: 0
>>  >>      Loading Environment from MMC... *** Warning - bad CRC, using
>>  >>  default environment
>>  >>
>>  >>      cros-ec communications failure -96
>>  >>
>>  >>      Please reset with Power+Refresh
>>  >>
>>  >>      Cannot init cros-ec device
>>  >>      resetting ...
>>  >>
>>  >>  This repeats indefinitely. I'm building U-Boot using the default
>>  >> config
>>  >>  for board `odroid` and boot the Odroid from an SD card with 
>> firmware
>>  >>  (`bl1`, `bl2` and `tzsw`) from Hardkernel's clone of the u-boot
>>  >>  repository [1]. There are no peripherals connected apart from 
>> the SD
>>  >>  card and the serial console. Please let me know if you need more
>>  >>  information.
>>  >
>>  > board_late_init() is presumably enabled with 
>> CONFIG_BOARD_LATE_INIT
>>  > and the code in board/samsung/common/board.c is being called.
>>  >
>>  > -96 is -EPFNOSUPPORT which means that the CROS_EC uclass is 
>> missing.
>>  >
>>  > So either enable CROS_EC so you have the uclass, or disable
>>  > BOARD_LATE_INIT so it doesn't matter.
>>  >
>>  >>
>>  >>  Best, Joost
>>  >>
>>  >>  [1]:
>>  >>
>>  >> 
>> https://github.com/hardkernel/u-boot/tree/33e05ffb159141b640571e91470172d83a2a1273/sd_fuse
>>  >>
>>  >>
>>  >
>>  > Regards,
>>  > Simon
>> 
>>  Hi Simon,
>> 
>>  Thanks. Both solutions work. With `CROS_EC` enabled
>>  `uclass_first_device_err(UCLASS_CROS_EC, &dev)` returns `ENODEV`. 
>> Since
>>  `board_late_init()` seems to do legitimate work for this board
>>  (defining the `mmcbootdev` environment variable) I think enabling
>>  `CROS_EC` is the way to go. Should this be part of the defconfig for
>>  odroid? If so, I can send a patch.
> 
> Yes that seems OK to me.
> 
> Regards,
> Simon

I've send a patch.

I'm still a bit puzzled by this problem, though. Is it correct that 
`uclass_first_device_err(UCLASS_CROS_EC, ...)` always returns 
`-EPFNOSUPPORT` when `CROS_EC` is disabled in the `.config`? If so, I 
don't see how U-Boot is going to function properly on any board that 
hits `board_late_init()` (board/samsung/common/board.c) with 
`BOARD_LATE_INIT=y` and `CROS_EC` undefined and perhaps the best 
solution is to run the CROS_EC related statements only if `CROS_EC` is 
actually defined. I'm not sure about the implications of this proposal 
further down the road, though.

Best, Joost



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-01-21 21:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-09  9:11 reset-loop on Odroid U2: cros-ec communications failure Joost van Zwieten
2023-01-13 18:00 ` Simon Glass
2023-01-20 22:00   ` Joost van Zwieten
2023-01-20 22:11     ` Simon Glass
2023-01-21 21:04       ` Joost van Zwieten

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox