On Tue, Dec 22, 2015 at 12:04 PM, Bin Meng <bmeng...@gmail.com> wrote: > Hi Joe, > > On Tue, Dec 22, 2015 at 11:08 AM, Joe Hershberger > <joe.hershber...@gmail.com> wrote: >> Hi Bin, >> >> On Mon, Dec 21, 2015 at 9:00 PM, Bin Meng <bmeng...@gmail.com> wrote: >>> Hi Joe, >>> >>> On Tue, Dec 22, 2015 at 10:39 AM, Joe Hershberger >>> <joe.hershber...@gmail.com> wrote: >>>> On Mon, Dec 21, 2015 at 8:36 PM, Bin Meng <bmeng...@gmail.com> wrote: >>>>> Hi Joe, >>>>> >>>>> On Tue, Dec 22, 2015 at 10:32 AM, Joe Hershberger >>>>> <joe.hershber...@gmail.com> wrote: >>>>>> Hi Bin, >>>>>> >>>>>> On Mon, Dec 21, 2015 at 8:12 PM, Bin Meng <bmeng...@gmail.com> wrote: >>>>>>> Hi Joe, Simon, >>>>>>> >>>>>>> On Tue, Dec 22, 2015 at 6:46 AM, Joe Hershberger >>>>>>> <joe.hershber...@gmail.com> wrote: >>>>>>>> Hi Simon and Bin >>>>>>>> >>>>>>>> On Thu, Dec 10, 2015 at 8:05 PM, Simon Glass <s...@chromium.org> wrote: >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> The following three commits causes breakages in the driver model >>>>>>>>> tests: >>>>>>>>> >>>>>>>>> 4efad20a sf: Update status reg check in spi_flash_cmd_wait_ready >>>>>>>>> 45b47734 net/arp: account for ARP delay, avoid duplicate packets >>>>>>>>> on timeout >>>>>>>>> 9961a0b6 sandbox: add a sandbox timer and basic test >>>>>>>>> >>>>>>>>> Can you please take a look? You can run them with ./test/dm/test-dm.sh >>>>>>>> >>>>>>>> It appears that ac1d313 (net: eth: Check return value in various >>>>>>>> places) breaks the eth_rotate test. >>>>>>>> >>>>>>>> Looking into it. Bin, do you have any ideas? >>>>>>> >>>>>>> I will look into this. >>>>>>> >>>>>>> BTW: I applied the following two patches [1][2] to the tree based on >>>>>>> dm/master, and got a segmentation fault: >>>>>>> >>>>>>> Test: dm_test_usb_keyb >>>>>>> ./test/dm/test-dm.sh: line 14: 24902 Segmentation fault >>>>>>> ./sandbox/u-boot -d ./sandbox/arch/sandbox/dts/test.dtb -c "ut dm" >>>>>>> >>>>>>> [1] http://patchwork.ozlabs.org/patch/555597/ >>>>>>> [2] http://patchwork.ozlabs.org/patch/559783/ >>>>>> >>>>>> Interesting. I haven't tested on top of dm/master, but I tested it >>>>>> based on origin/master and the issue is resolved. >>>>>> >>>>> >>>>> Which issue is resolved? I just tested on top of origin/master with >>>>> the above two patches, still the same segmentation fault. >>>> >>>> The net_retry dm test hang that Simon reported. >>>> >>> >>> The segmentation fault happens after "Test: dm_test_usb_keyb". It >>> seems to be a new issue. >> >> I agree it's a new issue that was masked by the net_retry hang. >> >>> I am looking into _dm_test_eth_rotate1 failure, but I don't understand >>> the comments here. >>> >>> /* If ethrotate is no, then we should fail on a bad MAC */ >>> setenv("ethact", "eth@10004000"); >>> setenv("ethrotate", "no"); >>> ut_asserteq(-EINVAL, net_loop(PING)); >>> ut_asserteq_str("eth@10004000", getenv("ethact")); >>> >>> Does 'bad MAC' mean no MAC address? For eth@10004000, it does have a >>> MAC address defined in the env variable in sandbox.h. >> >> I think if you look at dm_test_eth_rotate(), the eth1addr is deleted >> before the test. Later, ethaddr is deleted before the second part of >> the test. >> >>> I also tested manually with the same test sequence from U-Boot shell, >>> it can pass. I am still looking into it. >> >> It's not as though it hangs or something, but it now fails to return >> the error code that it used to before your patch. >> >> Test: dm_test_eth_rotate >> ../test/dm/eth.c:160, _dm_test_eth_rotate1(): -EINVAL == >> net_loop(PING): Expected -22, got 0 >> > > During debug I've noticed another strange issue: > > Sometimes the sandbox's setenv() does not successfully set the > environment variable to the expected value. This occurs from time to > time, even with the same u-boot image. Do you have any idea about > this? >
I may have been dazed that I looked the wrong message line. The issue is complicated. My commit just exposed an existing issue that have been in the dm eth codes from the beginning, that the eth_set_dev() logic is not controlled by the env variable "ethrotate". If the "ethact" is set to an eth device which cannot be probed (eg: no valid ethaddr) and "ethrotate" is set to "no" (like in this test case), the "ethact" will still point to the first probable eth device, in this sandbox case, eth@10002000. I am still figuring out where to fix. Joe, you might want to have a look? Regards, Bin _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot