|
|
Message-ID: <20150727000334.GB1518@openwall.com>
Date: Mon, 27 Jul 2015 03:03:34 +0300
From: Aleksey Cherepanov <lyosha@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: Re: ztex 1.15y boards, pre-development
On Mon, Jul 27, 2015 at 02:54:14AM +0300, Aleksey Cherepanov wrote:
> On Sun, Jul 26, 2015 at 11:58:47PM +0300, Aleksey Cherepanov wrote:
> > On Sun, Jul 26, 2015 at 08:51:42PM +0200, Katja Malvoni wrote:
> > > On 26 July 2015 at 20:12, Aleksey Cherepanov <lyosha@...nwall.com> wrote:
> > > >
> > > > But for me, it segfaulted first several runs and then it fails on every
> > > > run:
> > > >
> > > > S[0][0] = 0xd1310ba6 0xd131f12c <<< failure
> > > > S[0][1] = 0x98dfb5ac 0x98dfb5ac ok
> > > > S[0][2] = 0x2ffd72db 0x2ffd72db ok
> > > > S[0][3] = 0xd01adfb7 0xd01adfb7 ok
> > > > S[0][4] = 0xb8e1afed 0xb8e1afed ok
> > > > S[0][5] = 0x6a267e96 0x6a267e96 ok
> > > > S[0][6] = 0xba7c9045 0xba7c9045 ok
> > > > S[0][7] = 0xf12c7f99 0xf12c7f99 ok
> > > >
> > >
> > > Hm... this looks like first word written by FPGA is the last one from the
> > > previous read/write cycle (0xf12c). And it's not the same problem as I get
> > > on my board :(
>
> It seems I solved this problem: s/512/1024/ for reading
> // read string back from ucecho device
> - i = usb_bulk_read(handle, 2, (char *)(received), 512, 1000);
> + i = usb_bulk_read(handle, 2, (char *)(received), 1024, 1000);
>
> I guess you need a buffer of respective size, not just 8 uints.
>
> - unsigned int received[8] = {0};
> + unsigned int received[0x100] = {0};
>
> 1024 is quite strange for me: we need 8*4 bytes of data, why do we
> need to read 1024 bytes to get them?
Actually it reads 34 bytes back. I can't reproduce relation between
512 vs 1024 and good vs bad behaviour.
> BTW if I upload bitstream before firmware, I get
> Error sending data: No error
>
> > I think I can reproduce your problem too: I changed integers
> >
> > sent[2] += 9;
> >
> > I tried various timings, including pause between write and read: it
> > takes 5 runs to get new value back. (It does not affect the first
> > word.)
> >
> > So first 4 runs of 5 give:
> >
> > S[0][0] = 0xd1310ba6 0xd131f12c <<< failure
> > S[0][1] = 0x98dfb5ac 0x98dfb5ac ok
> > S[0][2] = 0x2ffd72e3 0x2ffd72e4 <<< failure
> > S[0][3] = 0xd01adfb7 0xd01adfb7 ok
> > [...]
> >
> > then there is only the first failure.
>
> 4 runs lag remains.
I think, I got how to bypass it: read 5 times and skip results from
first 4 times. Also there is a difference: with wrong data I got 32
bytes back, while good data come in 34 bytes "packet".
I tried up to 20 reads, only fifth seem to be right.
Thanks!
--
Regards,
Aleksey Cherepanov
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.