All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH V2 1/7] test/py: Implement pytest infrastructure
Date: Wed, 16 Dec 2015 11:41:10 -0700	[thread overview]
Message-ID: <5671B046.1050307@wwwdotorg.org> (raw)
In-Reply-To: <CAHTX3dL0k03Sho3EnCnpRgPzEYHQhMxxOWhBxidFq0iU5mv6Og@mail.gmail.com>

On 12/16/2015 11:32 AM, Michal Simek wrote:
>
>
> 2015-12-16 19:09 GMT+01:00 Stephen Warren <swarren@wwwdotorg.org
> <mailto:swarren@wwwdotorg.org>>:
>
>     On 12/16/2015 10:43 AM, Michal Simek wrote:
>
>         Hi Stephen,
>
>         2015-12-16 17:27 GMT+01:00 Stephen Warren <swarren@wwwdotorg.org
>         <mailto:swarren@wwwdotorg.org>
>         <mailto:swarren at wwwdotorg.org <mailto:swarren@wwwdotorg.org>>>:
>
>
>              On 12/16/2015 08:11 AM, Michal Simek wrote:
>
>                  On 9.12.2015 17:32, Stephen Warren wrote:
>
>                      On 12/02/2015 03:18 PM, Stephen Warren wrote:
>
>                          This tool aims to test U-Boot by executing
>         U-Boot shell
>                          commands using
>                          the
>                          console interface. A single top-level script
>         exists to
>                          execute or attach
>                          to the U-Boot console, run the entire script of
>         tests
>                          against it, and
>                          summarize the results. Advantages of this
>         approach are:
>
>                          - Testing is performed in the same way a user
>         or script
>                          would interact
>                               with U-Boot; there can be no disconnect.
>                          - There is no need to write or embed
>         test-related code
>                          into U-Boot
>                          itself.
>                               It is asserted that writing test-related
>         code in
>                          Python is simpler and
>                               more flexible that writing it all in C.
>                          - It is reasonably simple to interact with
>         U-Boot in
>                          this way.
>
>                          A few simple tests are provided as examples.
>         Soon, we
>                          should convert as
>                          many as possible of the other tests in test/* and
>                          test/cmd_ut.c too.
>
>                          In the future, I hope to publish (out-of-tree)
>         the hook
>                          scripts, relay
>                          control utilities, and udev rules I will use
>         for my own
>                          HW setup.
>
>
>                      I finally got permission to publish these. Examples
>         are at:
>         https://github.com/swarren/uboot-test-hooks
>
>
>                  Interesting. What's the normal setup which you have for
>         the board?
>                  I see from your description that you use numato usb
>         relay - I
>                  expect one
>                  with more channels for reset.
>                  Then you are able to control boot mode. Is it also via
>         the same
>                  relay?
>                  How do you power up the board?
>
>
>              In my current setup I leave the board on all the time (or
>         rather,
>              manually turn on the power when I'm about to run the tests).
>              Automating control of the power source is a step I'll take
>         later.
>
>
>         ok.
>
>
>              For Tegra, there are two important signals: reset and
>         "force recovery".
>
>
>
>         Do you mean that these both signals are just connected out of chip?
>
>
>     Yes. Reset is typically driven into the PMIC, and the signal to
>     request force recovery is driven into Tegra itself.
>
>     Typically there are push-buttons on development boards to control
>     those two signals. I've simply wired my relays across those buttons
>     to simulate the button press.
>
>
> ok I see.
>
>
>              Each of these has a separate relay, so the system currently
>         uses 2
>              relays per target board. The numato relay board I own has 8
>         relays,
>              although there are a number of different models.
>
>
>         ok
>
>
>              On Tegra, when reset is pulsed:
>
>              - If force-recovery is connected, the SoC enters USB
>         recovery mode.
>              In this state, SW can be downloaded over USB into RAM and
>         executed.
>
>
>         Is this bootrom feature?
>
>
>     Yes.
>
>         For xilinx boards there is all the time jtag available. It means
>         download can be done via jtag instead.
>
>
>     That sounds plausible. The only issue might be general system state;
>     can you reset everything to POR defaults via JTAG before the download?
>
>
>
> There is cpu reset, Soc reset on the board which can be used but I have
> IP power switch. It means I can handle power which ensure correct state.
>
>     If not, perhaps e.g. the eMMC controller was partially initialized
>     by previous code, which might interfere with assumptions made by the
>     new code that's downloaded?
>
>
> I think my power switch solves this without any problem.
>
>
>              - If force-recovery is not connected, the SoC boots
>         normally, from
>              SW stored in flash (eMMC, SPI, ...)
>
>
>              The example scripts always use recovery mode to download
>         U-Boot into
>              RAM rather than writing it to flash first and then
>         resetting. This
>              saves wear cycles on the flash, but does mean the download
>         happens
>              in the "reset" rather than "flash" script, which may make the
>              examples a bit different than for some other SoCs.
>
>
>         Are you testing all boot modes? Because I expect these needs to be
>         tested too. Do you use SPL? If yes, are you going to test it in
>         this way?
>
>
>     With those example scripts, cold boot isn't being tested. However,
>     (a) I could define a new board ID (or pick up environment variables)
>     to cause that to be tested sometimes (b) I don't recall having seen
>     any differences between cold boot and recovery mode boot in the
>     past; we get a lot of quicker/lower-wear test coverage this way
>     without too much additional risk.
>
>
> ok.
>
>
>     SPL is in use. However, SPL on Tegra has a bit of a different job
>     than it has on some other chips. The boot ROM always initializes
>     SDRAM, and SPL actually runs on a different CPU and primarily has
>     the job of booting the main CPU where the main U-Boot binary runs.
>     For more information, see:
>
>     ftp://download.nvidia.com/tegra-public-appnotes/index.html
>
>
> Interesting.
>
>
>              Finally, the example scripts support two boards; my
>         home/laptop dev
>              setup that uses a Numato relay board to control the signals
>         to the
>              board I use there, and my work desktop dev setup that uses our
>              "PM342" debug board to controll the signals. The latter works
>              logically the same as the numato relay board, except it
>         contains
>              electronic switches driven by an FTDI chip.
>
>         I expect this is FTDI chip on the target right?
>
>
>     It's actually a separate common debug board. Most/all of our
>     development boards (and perhaps some production boards) have a
>     standardized connector into which the common debug board plugs.
>
>
>
> ok.
> I think my setup is not that far from what you are using and I expect
> that others SoCs will be very similar.
> Do you have any other testcases which you are running and you haven't sent?

Not at present.

As an FYI, I typically publish my local work-in-progress branch at:
git://github.com/swarren/u-boot.git tegra_dev

  reply	other threads:[~2015-12-16 18:41 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-02 22:18 [U-Boot] [PATCH V2 1/7] test/py: Implement pytest infrastructure Stephen Warren
2015-12-02 22:18 ` [U-Boot] [PATCH V2 2/7] test/py: test that sandbox exits when asked Stephen Warren
2015-12-19 22:24   ` Simon Glass
2015-12-02 22:18 ` [U-Boot] [PATCH V2 3/7] test/py: add test of setenv/printenv/echo Stephen Warren
2015-12-18 13:50   ` Michal Simek
2015-12-18 18:09     ` Stephen Warren
2016-01-04  8:36       ` Michal Simek
2015-12-19 22:24   ` Simon Glass
2015-12-02 22:18 ` [U-Boot] [PATCH V2 4/7] test/py: test the md/mw commands Stephen Warren
2015-12-18 13:51   ` Michal Simek
2015-12-18 18:15     ` Stephen Warren
2015-12-19 22:24   ` Simon Glass
2015-12-02 22:18 ` [U-Boot] [PATCH V2 5/7] test/py: add test of basic shell functionality Stephen Warren
2015-12-19 22:24   ` Simon Glass
2015-12-02 22:18 ` [U-Boot] [PATCH V2 6/7] test/py: test the shell if command Stephen Warren
2015-12-19 22:24   ` Simon Glass
2016-01-04 21:18     ` Stephen Warren
2015-12-02 22:18 ` [U-Boot] [PATCH V2 7/7] test/py: test the ums command Stephen Warren
2015-12-19 22:24   ` Simon Glass
2016-01-04 21:19     ` Stephen Warren
2015-12-03  6:47 ` [U-Boot] [PATCH V2 1/7] test/py: Implement pytest infrastructure Heiko Schocher
2015-12-07 21:51   ` Stephen Warren
2015-12-08  5:42     ` Heiko Schocher
2015-12-09 16:32 ` Stephen Warren
2015-12-16 15:11   ` Michal Simek
2015-12-16 16:27     ` Stephen Warren
2015-12-16 17:43       ` Michal Simek
2015-12-16 18:09         ` Stephen Warren
2015-12-16 18:32           ` Michal Simek
2015-12-16 18:41             ` Stephen Warren [this message]
2015-12-18 14:50               ` Michal Simek
2015-12-18 18:33                 ` Stephen Warren
2015-12-18 22:36                   ` Stephen Warren
2016-01-04  8:50                     ` Michal Simek
2016-01-04 12:41                   ` Michal Simek
2016-01-04 20:34                     ` Stephen Warren
2015-12-17  5:45       ` Heiko Schocher
2016-01-14 23:12         ` Simon Glass
2016-01-16  6:29           ` [U-Boot] U-Boot: using tbot for U-Boot tests was: " Heiko Schocher
2016-01-19  3:42             ` Simon Glass
2016-01-19 11:42               ` Heiko Schocher
2015-12-19 22:24 ` [U-Boot] " Simon Glass
2016-01-04 21:16   ` Stephen Warren
2016-01-04 22:23   ` Stephen Warren

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=5671B046.1050307@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --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.