mbox series

[v2,0/6] android_ab: introduce bcb ab_dump command and provide several bcb fixes

Message ID 20240911214945.15873-1-ddrokosov@salutedevices.com
Headers show
Series android_ab: introduce bcb ab_dump command and provide several bcb fixes | expand

Message

Dmitry Rokosov Sept. 11, 2024, 9:49 p.m. UTC
The patch series include changes:
    - move ab_select_slot() documentation to @ notation
    - move ab_select command to bcb subcommands
    - introduce the ab_dump command to print the content of the BCB
      block; it's useful for debugging A/B logic on supported boards
    - fix the slot suffix format in the ABC block to align with official
      Android BCB specifications
    - add a test for the ab_dump command to verify the accuracy of each
      field within the ABC data displayed, it's also useful for testing
      slot_suffix problem code paths

Changes v2 since v1 at [1]:
    - move ab_select_slot() documentation to @ notation
    - move ab_select command to bcb subcommands per Simon and Mattijs
      suggestions
    - redesign ab_dump as bcb subcommand
    - use spaces instead of tabs in the ab_dump command output
    - print hex values in the lowercase
    - add RvB tags

Links:
    [1] https://lore.kernel.org/all/20240725194716.32232-1-ddrokosov@salutedevices.com/

Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>

Dmitry Rokosov (6):
  include/android_ab: move ab_select_slot() documentation to @ notation
  treewide: bcb: move ab_select command to bcb subcommands
  cmd: bcb: change strcmp() usage style in the do_bcb_ab_select()
  cmd: bcb: introduce 'ab_dump' command to print BCB block content
  common: android_ab: fix slot suffix for abc block
  test/py: introduce test for ab_dump command

 MAINTAINERS                               |   1 -
 boot/android_ab.c                         | 116 ++++++++++++++++++----
 cmd/Kconfig                               |  15 +--
 cmd/Makefile                              |   1 -
 cmd/ab_select.c                           |  66 ------------
 cmd/bcb.c                                 | 108 ++++++++++++++++++--
 configs/am57xx_hs_evm_usb_defconfig       |   1 -
 configs/khadas-vim3_android_ab_defconfig  |   1 -
 configs/khadas-vim3l_android_ab_defconfig |   1 -
 configs/sandbox64_defconfig               |   4 +-
 configs/sandbox_defconfig                 |   4 +-
 doc/android/ab.rst                        |  12 +--
 include/android_ab.h                      |  17 +++-
 include/configs/khadas-vim3_android.h     |   2 +-
 include/configs/khadas-vim3l_android.h    |   2 +-
 include/configs/meson64_android.h         |   4 +-
 include/configs/ti_omap5_common.h         |   4 +-
 test/py/tests/test_android/test_ab.py     |  31 +++++-
 18 files changed, 251 insertions(+), 139 deletions(-)
 delete mode 100644 cmd/ab_select.c

Comments

Dmitry Rokosov Sept. 12, 2024, 7:10 a.m. UTC | #1
There are Pipeline results. One test was failed. I suppose it's not
related to my patch series:

https://github.com/u-boot/u-boot/pull/625/checks?check_run_id=30029925059

=================================== FAILURES ===================================
_______________________ test_ut[ut_dm_dm_test_rtc_dual] ________________________
test/py/tests/test_ut.py:590: in test_ut
    assert output.endswith('Failures: 0')
E   AssertionError: assert False
E    +  where False = <built-in method endswith of str object at 0x7fb0835c50d0>('Failures: 0')
E    +    where <built-in method endswith of str object at 0x7fb0835c50d0> = 'Test: dm_test_rtc_dual: rtc.c\r\r\nTest: dm_test_rtc_dual: rtc.c (flat tree)\r\r\ntest/dm/rtc.c:307, dm_test_rtc_dual...&now1, &cmp, false): Expected 0xffffffea (-22), got 0x0 (0)\r\r\nTest dm_test_rtc_dual failed 1 times\r\r\nFailures: 1'.endswith
----------------------------- Captured stdout call -----------------------------
=> ut dm dm_test_rtc_dual

Test: dm_test_rtc_dual: rtc.c

Test: dm_test_rtc_dual: rtc.c (flat tree)

test/dm/rtc.c:307, dm_test_rtc_dual(): -EINVAL == cmp_times(&now1, &cmp, false): Expected 0xffffffea (-22), got 0x0 (0)

Test dm_test_rtc_dual failed 1 times

Failures: 1

=> 
=================================== FAILURES ===================================

On Thu, Sep 12, 2024 at 12:49:08AM +0300, Dmitry Rokosov wrote:
> The patch series include changes:
>     - move ab_select_slot() documentation to @ notation
>     - move ab_select command to bcb subcommands
>     - introduce the ab_dump command to print the content of the BCB
>       block; it's useful for debugging A/B logic on supported boards
>     - fix the slot suffix format in the ABC block to align with official
>       Android BCB specifications
>     - add a test for the ab_dump command to verify the accuracy of each
>       field within the ABC data displayed, it's also useful for testing
>       slot_suffix problem code paths
> 
> Changes v2 since v1 at [1]:
>     - move ab_select_slot() documentation to @ notation
>     - move ab_select command to bcb subcommands per Simon and Mattijs
>       suggestions
>     - redesign ab_dump as bcb subcommand
>     - use spaces instead of tabs in the ab_dump command output
>     - print hex values in the lowercase
>     - add RvB tags
> 
> Links:
>     [1] https://lore.kernel.org/all/20240725194716.32232-1-ddrokosov@salutedevices.com/
> 
> Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
> 
> Dmitry Rokosov (6):
>   include/android_ab: move ab_select_slot() documentation to @ notation
>   treewide: bcb: move ab_select command to bcb subcommands
>   cmd: bcb: change strcmp() usage style in the do_bcb_ab_select()
>   cmd: bcb: introduce 'ab_dump' command to print BCB block content
>   common: android_ab: fix slot suffix for abc block
>   test/py: introduce test for ab_dump command
> 
>  MAINTAINERS                               |   1 -
>  boot/android_ab.c                         | 116 ++++++++++++++++++----
>  cmd/Kconfig                               |  15 +--
>  cmd/Makefile                              |   1 -
>  cmd/ab_select.c                           |  66 ------------
>  cmd/bcb.c                                 | 108 ++++++++++++++++++--
>  configs/am57xx_hs_evm_usb_defconfig       |   1 -
>  configs/khadas-vim3_android_ab_defconfig  |   1 -
>  configs/khadas-vim3l_android_ab_defconfig |   1 -
>  configs/sandbox64_defconfig               |   4 +-
>  configs/sandbox_defconfig                 |   4 +-
>  doc/android/ab.rst                        |  12 +--
>  include/android_ab.h                      |  17 +++-
>  include/configs/khadas-vim3_android.h     |   2 +-
>  include/configs/khadas-vim3l_android.h    |   2 +-
>  include/configs/meson64_android.h         |   4 +-
>  include/configs/ti_omap5_common.h         |   4 +-
>  test/py/tests/test_android/test_ab.py     |  31 +++++-
>  18 files changed, 251 insertions(+), 139 deletions(-)
>  delete mode 100644 cmd/ab_select.c
> 
> -- 
> 2.43.0
>
Tom Rini Sept. 12, 2024, 5:45 p.m. UTC | #2
On Thu, Sep 12, 2024 at 10:10:53AM +0300, Dmitry Rokosov wrote:
> There are Pipeline results. One test was failed. I suppose it's not
> related to my patch series:
> 
> https://github.com/u-boot/u-boot/pull/625/checks?check_run_id=30029925059
> 
> =================================== FAILURES ===================================
> _______________________ test_ut[ut_dm_dm_test_rtc_dual] ________________________
> test/py/tests/test_ut.py:590: in test_ut
>     assert output.endswith('Failures: 0')
> E   AssertionError: assert False
> E    +  where False = <built-in method endswith of str object at 0x7fb0835c50d0>('Failures: 0')
> E    +    where <built-in method endswith of str object at 0x7fb0835c50d0> = 'Test: dm_test_rtc_dual: rtc.c\r\r\nTest: dm_test_rtc_dual: rtc.c (flat tree)\r\r\ntest/dm/rtc.c:307, dm_test_rtc_dual...&now1, &cmp, false): Expected 0xffffffea (-22), got 0x0 (0)\r\r\nTest dm_test_rtc_dual failed 1 times\r\r\nFailures: 1'.endswith
> ----------------------------- Captured stdout call -----------------------------
> => ut dm dm_test_rtc_dual
> 
> Test: dm_test_rtc_dual: rtc.c
> 
> Test: dm_test_rtc_dual: rtc.c (flat tree)
> 
> test/dm/rtc.c:307, dm_test_rtc_dual(): -EINVAL == cmp_times(&now1, &cmp, false): Expected 0xffffffea (-22), got 0x0 (0)
> 
> Test dm_test_rtc_dual failed 1 times
> 
> Failures: 1
> 
> => 
> =================================== FAILURES ===================================

Yes, sometimes that just fails due to the underlying hardware (even with
retries). Please tell it to try again so that the world build tests run.
Sorry for the noise here.
Dmitry Rokosov Sept. 13, 2024, 8:37 a.m. UTC | #3
Hello Tom,

On Thu, Sep 12, 2024 at 11:45:01AM -0600, Tom Rini wrote:
> On Thu, Sep 12, 2024 at 10:10:53AM +0300, Dmitry Rokosov wrote:
> > There are Pipeline results. One test was failed. I suppose it's not
> > related to my patch series:
> > 
> > https://github.com/u-boot/u-boot/pull/625/checks?check_run_id=30029925059
> > 
> > =================================== FAILURES ===================================
> > _______________________ test_ut[ut_dm_dm_test_rtc_dual] ________________________
> > test/py/tests/test_ut.py:590: in test_ut
> >     assert output.endswith('Failures: 0')
> > E   AssertionError: assert False
> > E    +  where False = <built-in method endswith of str object at 0x7fb0835c50d0>('Failures: 0')
> > E    +    where <built-in method endswith of str object at 0x7fb0835c50d0> = 'Test: dm_test_rtc_dual: rtc.c\r\r\nTest: dm_test_rtc_dual: rtc.c (flat tree)\r\r\ntest/dm/rtc.c:307, dm_test_rtc_dual...&now1, &cmp, false): Expected 0xffffffea (-22), got 0x0 (0)\r\r\nTest dm_test_rtc_dual failed 1 times\r\r\nFailures: 1'.endswith
> > ----------------------------- Captured stdout call -----------------------------
> > => ut dm dm_test_rtc_dual
> > 
> > Test: dm_test_rtc_dual: rtc.c
> > 
> > Test: dm_test_rtc_dual: rtc.c (flat tree)
> > 
> > test/dm/rtc.c:307, dm_test_rtc_dual(): -EINVAL == cmp_times(&now1, &cmp, false): Expected 0xffffffea (-22), got 0x0 (0)
> > 
> > Test dm_test_rtc_dual failed 1 times
> > 
> > Failures: 1
> > 
> > => 
> > =================================== FAILURES ===================================
> 
> Yes, sometimes that just fails due to the underlying hardware (even with
> retries). Please tell it to try again so that the world build tests run.
> Sorry for the noise here.

Thank you for the comments. I have re-run the pipeline. Once it is
finished, I will provide the results here.
Dmitry Rokosov Sept. 13, 2024, 4:27 p.m. UTC | #4
On Thu, Sep 12, 2024 at 10:10:53AM +0300, Dmitry Rokosov wrote:
> There are Pipeline results. One test was failed. I suppose it's not
> related to my patch series:
> 
> https://github.com/u-boot/u-boot/pull/625/checks?check_run_id=30029925059
> 
> =================================== FAILURES ===================================
> _______________________ test_ut[ut_dm_dm_test_rtc_dual] ________________________
> test/py/tests/test_ut.py:590: in test_ut
>     assert output.endswith('Failures: 0')
> E   AssertionError: assert False
> E    +  where False = <built-in method endswith of str object at 0x7fb0835c50d0>('Failures: 0')
> E    +    where <built-in method endswith of str object at 0x7fb0835c50d0> = 'Test: dm_test_rtc_dual: rtc.c\r\r\nTest: dm_test_rtc_dual: rtc.c (flat tree)\r\r\ntest/dm/rtc.c:307, dm_test_rtc_dual...&now1, &cmp, false): Expected 0xffffffea (-22), got 0x0 (0)\r\r\nTest dm_test_rtc_dual failed 1 times\r\r\nFailures: 1'.endswith
> ----------------------------- Captured stdout call -----------------------------
> => ut dm dm_test_rtc_dual
> 
> Test: dm_test_rtc_dual: rtc.c
> 
> Test: dm_test_rtc_dual: rtc.c (flat tree)
> 
> test/dm/rtc.c:307, dm_test_rtc_dual(): -EINVAL == cmp_times(&now1, &cmp, false): Expected 0xffffffea (-22), got 0x0 (0)
> 
> Test dm_test_rtc_dual failed 1 times
> 
> Failures: 1
> 
> => 
> =================================== FAILURES ===================================
> 

I've re-run the pipeline. This time it was finished successfully.

https://github.com/u-boot/u-boot/pull/625/checks
Tom Rini Sept. 13, 2024, 8:04 p.m. UTC | #5
On Fri, Sep 13, 2024 at 07:27:38PM +0300, Dmitry Rokosov wrote:
> On Thu, Sep 12, 2024 at 10:10:53AM +0300, Dmitry Rokosov wrote:
> > There are Pipeline results. One test was failed. I suppose it's not
> > related to my patch series:
> > 
> > https://github.com/u-boot/u-boot/pull/625/checks?check_run_id=30029925059
> > 
> > =================================== FAILURES ===================================
> > _______________________ test_ut[ut_dm_dm_test_rtc_dual] ________________________
> > test/py/tests/test_ut.py:590: in test_ut
> >     assert output.endswith('Failures: 0')
> > E   AssertionError: assert False
> > E    +  where False = <built-in method endswith of str object at 0x7fb0835c50d0>('Failures: 0')
> > E    +    where <built-in method endswith of str object at 0x7fb0835c50d0> = 'Test: dm_test_rtc_dual: rtc.c\r\r\nTest: dm_test_rtc_dual: rtc.c (flat tree)\r\r\ntest/dm/rtc.c:307, dm_test_rtc_dual...&now1, &cmp, false): Expected 0xffffffea (-22), got 0x0 (0)\r\r\nTest dm_test_rtc_dual failed 1 times\r\r\nFailures: 1'.endswith
> > ----------------------------- Captured stdout call -----------------------------
> > => ut dm dm_test_rtc_dual
> > 
> > Test: dm_test_rtc_dual: rtc.c
> > 
> > Test: dm_test_rtc_dual: rtc.c (flat tree)
> > 
> > test/dm/rtc.c:307, dm_test_rtc_dual(): -EINVAL == cmp_times(&now1, &cmp, false): Expected 0xffffffea (-22), got 0x0 (0)
> > 
> > Test dm_test_rtc_dual failed 1 times
> > 
> > Failures: 1
> > 
> > => 
> > =================================== FAILURES ===================================
> > 
> 
> I've re-run the pipeline. This time it was finished successfully.
> 
> https://github.com/u-boot/u-boot/pull/625/checks

Thanks!