|
|
Message-ID: <20110727142040.GA1248@openwall.com>
Date: Wed, 27 Jul 2011 18:20:40 +0400
From: Solar Designer <solar@...nwall.com>
To: crypt-dev@...ts.openwall.com
Subject: Re: Yuri's Status Report - #11 of 15
Hi Yuri -
On Tue, Jul 26, 2011 at 04:37:24PM -0300, Yuri Gonzaga wrote:
> - Accomplishments
> - David has set a remote machine with a M501 board. It is working
> fine!
> - Helloworld example run properly both by "purty" (using ssh -X) and
> "PicoBus128_Helloworld.cpp"
> - Eksblowfish loop verilog was adapted to PicoBus128, including some
> simulation
> - Modification to JtR code to communicate with a single loop core.
Sounds good. I don't know what you mean by "purty", though.
> In this point, I need some help.
> I changed the JtR's Makefile to include the search path
> "$PICOBASE/software/include" in CFLAGS variable.
Do you mean you used the "-I" option to list that include directory?
> Moreover, I run make on folder $PICOBASE/software/pico_drv and copied pico.o
> to JtR's source folder.
> So, I included the pico.o to JOHN_OBJS variable in JtR's Makefile.
> Apparently, it compiled well, but returned the following error message:
>
> > make[1]: *** No rule to make target `BF_std.o', needed by `../run/john'.
> > Stop.
> > make[1]: Leaving directory `/home/yuri/john-1.7.8/src'
> > make: *** [linux-x86-64] Error 2
>
> How is the best way to tell make where to find Pico includes and compiled
> library for PicoDrv?
As David wrote, you need object files built from
$PICOBASE/software/source, not $PICOBASE/software/pico_drv. Yes, you'd
include them in JOHN_OBJS. For the header files, I suggest that rather
than use -I... in CFLAGS, you simply place the directory at a specific
relative path to your JtR tree, then use directives like:
#include "../pico/whateverfile.h"
in your interfacing code in the JtR source tree.
As to the specific build error you mention above, this means that you
made an error in editing the Makefile. I can't guess what exact error
you made. You might want to run "diff -u" on the original and your
edited Makefile and post this "patch" - then I'd be able to comment.
> - Verilog for multiple cores manager (not finished)
> - Priorities
> - Correct JtR's makefile to compile and link properly
> - It will be useful both to one as multiple cores
> - Test JtR's on M501 for single core
> - Finish verilog for Manager of multiple cores
> - Integrate to Alexander's patch for JtR multiple cores
> - Test JtR's on M501 for multiple cores
You really should _start_ by integrating the patch I provided, even when
interfacing to just one core. You'd simply set BF_N to 1 initially, or
you'd interface to your one core from a loop with a higher BF_N - this is
up to you. When you actually have multiple cores, you'd simply make
sure to have BF_N set to higher than 1 and you'd adjust the interfacing
loop accordingly.
With one core, the loop may be like:
for_each_index() {
send_to_fpga(BF_current INDEX, salt, BF_exp_key);
wait_for_fpga();
read_from_fpga(BF_current INDEX);
}
When you revise the code for multiple cores and set BF_N to exactly
match the number of cores, the loop will be split in two:
for_each_index()
send_to_fpga(index, BF_current INDEX, salt, BF_exp_key);
for_each_index() {
wait_for_fpga(index);
read_from_fpga(index, BF_current INDEX);
}
Please don't hesitate to ask if anything is unclear.
Thanks,
Alexander
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.