Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wally on Nexys A7? #1281

Open
juanschroeder opened this issue Feb 16, 2025 · 2 comments
Open

wally on Nexys A7? #1281

juanschroeder opened this issue Feb 16, 2025 · 2 comments

Comments

@juanschroeder
Copy link

Hi,

I would like to try 'wally' on a Nexys A7-100T FPGA board, which is the board I happen to have. It has the same FPGA as the Arty A7 but with 128MB of DDR2.

I have seen the open ticket for the Genesys 2 (1086) and I was wondering if running wally on a Nexys A7 would need similar steps:

  1. Device tree customisations
  2. pin mappings for the specific board (e.g. fpga/constraints/constraints-NexysA7.xdc)
  3. Script to generate Xilinx IP memory controller (e.g. fpga/generator/ddr2-NexysA7.tcl), in this case for DDR2, plus this .prj MIG file generated in Vivado for the specific board/DDR (e.g.: fpga/generator/xlnx_ddr2-nexysa7-mig.prj).

Thank you.

@rosethompson
Copy link
Contributor

Yes you've basically got the exact steps. The memory controller will almost be identical because xilinx uses the same IP for ddr2 and ddr3. You can copy the existing one and modify the parameters. The only difference in the device tree will be the size of memory as the clock speed should be identical to the Arty a7.

One challenge you'll have is the 128MB memory is a bit small so the default OS won't quite fit so you'll have to remove some of the supported features from buildroot and remake Linux. Don't buildroot as normally. Instead go to cvw/linux and run

make clean download
Then run
make Image
you can add after Image -j <number of cpus to make it compile faster but this uses more memory and could crash your computer. 4 for 16GB, 8 for 32GB, 16 for 64GB are safe>
Then
cd buildroot
make menuconfig
This brings up a menu of options of programs and features to enable or disable. You should disable c++ and fortran support. I think this will give you enough free space. You can also remove some of the benchmarks such as coremark, whetstone, and ramspeed.

Then you'll need to clean the directory and rebuild buildroot again. They may be a better faster way.
make clean
make -j 8 # this does the same things as make Image in the directory higher.
Once done go back one directory and run
make disassemble
make install # This one you will probably need to run a root.

@jordancarlin
Copy link
Member

jordancarlin commented Feb 17, 2025

Alternatively, for disabling features in buildroot you should be able to edit linux/br2-external-tree/configs/wally_defconfig and then just run make clean and make in the linux directory as normal.

The wally_defconfig file is fairly short and readable because it only incudes any changes from the buildroot defaults. To disable c++ and fortran just change these two lines:

BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_FORTRAN=y

The BR2_PACKAGE_* lines will let you remove the benchmarks mentioned above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants