MEGA65 / mega65-core

MEGA65 FPGA core
Other
240 stars 85 forks source link

Open-roms Ophis not cloned on root make #240

Closed rdpeake closed 4 years ago

rdpeake commented 4 years ago

When attempting to run make on a fresh download of the repo, it fails to run the open-roms make file as it does not init/update the submodules in order to pull down Ophis. (manually doing this in the open-roms folder worked to get past that point.

Ben-401 commented 4 years ago

what branch are you using? Please use stable_base branch and not master. Please post the logs if there is an error.

rdpeake commented 4 years ago

was using development as that was what was suggested by the build readme file - will try stable_base now

rdpeake commented 4 years ago

Running on stable_base seemed to work up to vivaldo builds - though with the dependencies i'd already installed having to do it the first time.

Given i'm talking dependencies - i figure i should probably point out i needed to install the following in order to get make to run under windows subsystem for linux, ubuntu 18.04 LTS

make, gcc, libusb-1.0-0-dev, libpng-dev (not sure this is needed), autoconf, gperf, flex, bison, g++, openjdk-11-jre-headless, python-minimal, imagemagick

I also had to make sure the vivaldo i installed was available via /opt/ - as it installed into /tools/ by default.

The issue i have now is DRC: ERROR: [DRC MDRV-1] Multiple Driver Nets: Net machine0/cpu0/reg_math_write has multiple drivers: machine0/cpu0/reg_math_write_reg/Q, and machine0/cpu0/reg_math_write_reg__0/Q.

gardners commented 4 years ago

That'd be a bug in the VHDL. use 138-hdmi-audio27mhz branch for now. That should build.

frehwagen commented 4 years ago

Actually what target are you trying to build? Looks like the Makefile lists unsupported targets with "all:". I'll fix this.

Currently we maintain mega65r2 and megaphoner1, if you want to try another then you need to specify this with you make command.

make bin/nexys4ddr.mcs

For instance.

rdpeake commented 4 years ago

i'm just running make directly with no target - as i was just trying to get it to build to make sure i could use the subsytem rather than needing to use a vm, or seperate computer in advance of getting a dev kit will use the branch gardners suggests

rdpeake commented 4 years ago

unless frehwagen is correct in that i need to specify a different build target the 138-hdmi-audio-27mhz fails to build due to missing vhdl file /ipcore_dir/dotclock100.vhd. i may need to clean, given the change in branch - but last time i used clean make failed to work again

Ben-401 commented 4 years ago

hi, thank you for the information on what dependancies are required for windows-subsystem-linnux. I can use that info as I am updating the build instructions now, see #236

How did you go in building the bitstream(s)?

What version of vivado are you using please? i am just interested, i dont think there is a dependency on what version used...

rdpeake commented 4 years ago

I have tried using make on branches stable-base, and 138-hdmi-audio-27mhz and they both failed during the build of 'mega65r1' for different reasons. based on frehwagen's comment i attempted to use mega65r2.mcs and megaphoner1.mcs on both branches however they all fail for the reason identified before. and as i indicated, development fails to build due to make errors. never tried master and figured it wasn't worth trying. the 'make clear' target may need to be double checked, as i tried to use that at one point and it didn't end well.

As i currently have no hardware to deploy this to, i'm not particularly worried about it not working, as i was mainly doing this to get it setup prior to the dev kit showing up some time later this year, and trying to understand how the code base is set up for potentially porting MISTer cores once i do get the dev kit.

rdpeake commented 4 years ago

And because i forgot to answer - i am using vivado 2020.1

gardners commented 4 years ago

Yes, I have only just updated to 2019.2.1 and don't currently have enough disk space to also install 2020.1 (its also a pain over satellite internet). It's possible that 2020.1 has some extra check that is detecting what it thinks is a multiple diver. If it isn't a big hassle, you could try 2019.2.1 and see if the problems are still there?

rdpeake commented 4 years ago

given i had to symlink 2020.1 in to the opt tool spot - it shouldn't be too hard to do it for 2019.2 will give it a go.

rdpeake commented 4 years ago

using 2019.2 i was able to get to the make file trying to make mega65_ftp before it failed - given the statement above about what targets are maintained - i'm guessing this is a good place to be at and can wait until more details (and improvements are made) as dev kits get closer

Ben-401 commented 4 years ago

yes, we are working on cleaning up the build process. the focus has been on development for a long while. please come back soon and keep an eye out on us.

Ben-401 commented 4 years ago

its worth a mention, that the stable_base branch does in fact clone the Ophis (see lines 30, 32, 42, 118, as shown below. In that regard, I suggest this issue be closed, and the doco updated.


     1  devuser@u16vm:~/dev/mega65$ 
     2  devuser@u16vm:~/dev/mega65$ date
     3  Monday 22 June  11:03:20 ACST 2020
     4  devuser@u16vm:~/dev/mega65$ git clone https://github.com/mega65/mega65-core.git
     5  Cloning into 'mega65-core'...
     6  remote: Enumerating objects: 101, done.
     7  remote: Counting objects: 100% (101/101), done.
     8  remote: Compressing objects: 100% (77/77), done.
     9  remote: Total 45790 (delta 65), reused 49 (delta 24), pack-reused 45689
    10  Receiving objects: 100% (45790/45790), 25.95 MiB | 2.81 MiB/s, done.
    11  Resolving deltas: 100% (34509/34509), done.
    12  Checking connectivity... done.
    13  devuser@u16vm:~/dev/mega65$ cp -r mega65-core/ mega65-core-clean
    14  devuser@u16vm:~/dev/mega65$ cd mega65-core
    15  devuser@u16vm:~/dev/mega65/mega65-core$ git checkout stable_base 
    16  Branch stable_base set up to track remote branch stable_base from origin.
    17  Switched to a new branch 'stable_base'
    18  devuser@u16vm:~/dev/mega65/mega65-core$ git show
    19  commit 4a8842dbedf0eae360092dc603553da03c99bf2b
    20  Merge: a9ccc62 9ef3620
    21  Author: frehwagen <frehwagen@bluewaysw.de>
    22  Date:   Sun Jun 21 11:36:02 2020 +0200
    23  
    24      Merge pull request #235 from Ben-401/stable_base
    25      
    26      update 2x submodules, change implementation of USE_LOCAL_CC65
    27  
    28  devuser@u16vm:~/dev/mega65/mega65-core$ make
    29  Makefile:106: =============================================================
    30  Makefile:106: ~~~~~~~~~~~~~~~~> Making: Ophis/bin/ophis
    31  git submodule init
    32  Submodule 'Ophis' (https://github.com/gardners/Ophis.git) registered for path 'Ophis'
    33  Submodule 'cbmconvert' (https://github.com/sasq64/cbmconvert.git) registered for path 'cbmconvert'
    34  Submodule 'cc65' (https://github.com/cc65/cc65.git) registered for path 'cc65'
    35  Submodule 'ghdl' (https://github.com/ghdl/ghdl.git) registered for path 'ghdl'
    36  Submodule 'iverilog' (https://github.com/steveicarus/iverilog.git) registered for path 'iverilog'
    37  Submodule 'src/mega65-fdisk' (https://github.com/MEGA65/mega65-fdisk.git) registered for path 'src/mega65-fdisk'
    38  Submodule 'src/mega65-freezemenu' (https://github.com/MEGA65/mega65-freezemenu.git) registered for path 'src/mega65-freezemenu'
    39  Submodule 'src/mega65-libc' (https://github.com/MEGA65/mega65-libc.git) registered for path 'src/mega65-libc'
    40  Submodule 'open-roms' (https://github.com/MEGA65/open-roms.git) registered for path 'src/open-roms'
    41  git submodule update
    42  Cloning into 'Ophis'...
    43  remote: Enumerating objects: 31, done.
    44  remote: Counting objects: 100% (31/31), done.
    45  remote: Compressing objects: 100% (19/19), done.
    46  remote: Total 1081 (delta 20), reused 23 (delta 12), pack-reused 1050
    47  Receiving objects: 100% (1081/1081), 3.36 MiB | 1.37 MiB/s, done.
    48  Resolving deltas: 100% (584/584), done.
    49  Checking connectivity... done.
    50  Submodule path 'Ophis': checked out 'e6ae193fb11ade39b9c7750b36f509da5106adc0'
    51  Cloning into 'cbmconvert'...
    52  remote: Enumerating objects: 42, done.
    53  remote: Total 42 (delta 0), reused 0 (delta 0), pack-reused 42
    54  Unpacking objects: 100% (42/42), done.
    55  Checking connectivity... done.
    56  Submodule path 'cbmconvert': checked out '1569e9c38d2873fc81c862d4f79b68cc51d2100f'
    57  Cloning into 'cc65'...
    58  remote: Enumerating objects: 110, done.
    59  remote: Counting objects: 100% (110/110), done.
    60  remote: Compressing objects: 100% (76/76), done.
    61  remote: Total 61702 (delta 54), reused 67 (delta 31), pack-reused 61592
    62  Receiving objects: 100% (61702/61702), 22.60 MiB | 2.49 MiB/s, done.
    63  Resolving deltas: 100% (39006/39006), done.
    64  Checking connectivity... done.
    65  Submodule path 'cc65': checked out '6c320f7d654d9c04482b3486abe063c1ac1735bd'
    66  Cloning into 'ghdl'...
    67  remote: Enumerating objects: 253, done.
    68  remote: Counting objects: 100% (253/253), done.
    69  remote: Compressing objects: 100% (178/178), done.
    70  remote: Total 48345 (delta 118), reused 142 (delta 75), pack-reused 48092
    71  Receiving objects: 100% (48345/48345), 59.20 MiB | 2.81 MiB/s, done.
    72  Resolving deltas: 100% (36832/36832), done.
    73  Checking connectivity... done.
    74  Submodule path 'ghdl': checked out 'c00074985783c13dce54de3814c39e76cf269268'
    75  Cloning into 'iverilog'...
    76  remote: Enumerating objects: 58626, done.
    77  remote: Total 58626 (delta 0), reused 0 (delta 0), pack-reused 58626
    78  Receiving objects: 100% (58626/58626), 23.12 MiB | 2.81 MiB/s, done.
    79  Resolving deltas: 100% (46992/46992), done.
    80  Checking connectivity... done.
    81  Submodule path 'iverilog': checked out '40558160e7e4217eca3fcdf60fa357391e5f2700'
    82  Cloning into 'src/mega65-fdisk'...
    83  remote: Enumerating objects: 26, done.
    84  remote: Counting objects: 100% (26/26), done.
    85  remote: Compressing objects: 100% (21/21), done.
    86  remote: Total 399 (delta 13), reused 17 (delta 5), pack-reused 373
    87  Receiving objects: 100% (399/399), 110.43 KiB | 0 bytes/s, done.
    88  Resolving deltas: 100% (255/255), done.
    89  Checking connectivity... done.
    90  Submodule path 'src/mega65-fdisk': checked out '340914b85ba979e1a8e26a55aee5fc87ff14244b'
    91  Cloning into 'src/mega65-freezemenu'...
    92  remote: Enumerating objects: 35, done.
    93  remote: Counting objects: 100% (35/35), done.
    94  remote: Compressing objects: 100% (19/19), done.
    95  remote: Total 683 (delta 19), reused 31 (delta 16), pack-reused 648
    96  Receiving objects: 100% (683/683), 224.31 KiB | 340.00 KiB/s, done.
    97  Resolving deltas: 100% (445/445), done.
    98  Checking connectivity... done.
    99  Submodule path 'src/mega65-freezemenu': checked out '4af915a900d087662d693c3766aa593d630f2859'
   100  Cloning into 'src/mega65-libc'...
   101  remote: Enumerating objects: 189, done.
   102  remote: Counting objects: 100% (189/189), done.
   103  remote: Compressing objects: 100% (110/110), done.
   104  remote: Total 189 (delta 98), reused 163 (delta 76), pack-reused 0
   105  Receiving objects: 100% (189/189), 30.06 KiB | 0 bytes/s, done.
   106  Resolving deltas: 100% (98/98), done.
   107  Checking connectivity... done.
   108  Submodule path 'src/mega65-libc': checked out '43c6f7484bb3dbe2c8ba50931f9e46c49188b6da'
   109  Cloning into 'src/open-roms'...
   110  remote: Enumerating objects: 11125, done.
   111  remote: Total 11125 (delta 0), reused 0 (delta 0), pack-reused 11125
   112  Receiving objects: 100% (11125/11125), 4.29 MiB | 1.89 MiB/s, done.
   113  Resolving deltas: 100% (7691/7691), done.
   114  Checking connectivity... done.
   115  Submodule path 'src/open-roms': checked out '6deb5a4322fe9dd7c796c28125bc98aff4b2edff'
   116  Makefile:479: =============================================================
   117  Makefile:479: ~~~~~~~~~~~~~~~~> Making: src/utilities/ethertest.prg
   118  Ophis/bin/ophis -4 src/utilities/ethertest.a65 -l src/utilities/ethertest.list -m src/utilities/ethertest.map -o src/utilities/ethertest.prg
   119  src/utilities/ethertest.a65:83: WARNING: branch out of range, replacing with 16-bit relative branch
   120  Assembly complete: 414 bytes output (304 code, 102 data, 8 filler)
   121  Makefile:479: =============================================================
   122  Makefile:479: ~~~~~~~~~~~~~~~~> Making: src/utilities/etherload.prg
   123  Ophis/bin/ophis -4 src/utilities/etherload.a65 -l src/utilities/etherload.list -m src/utilities/etherload.map -o src/utilities/etherload.prg
   124  src/utilities/etherload.a65:219: WARNING: branch out of range, replacing with 16-bit relative branch
   125  src/utilities/etherload.a65:225: WARNING: branch out of range, replacing with 16-bit relative branch
   126  src/utilities/etherload.a65:231: WARNING: branch out of range, replacing with 16-bit relative branch
   127  src/utilities/etherload.a65:234: WARNING: branch out of range, replacing with 16-bit relative branch
   128  src/utilities/etherload.a65:243: WARNING: branch out of range, replacing with 16-bit relative branch
   129  Assembly complete: 276 bytes output (264 code, 12 data, 0 filler)
   130  Makefile:479: =============================================================
   131  Makefile:479: ~~~~~~~~~~~~~~~~> Making: src/utilities/test01prg.prg
   132  Ophis/bin/ophis -4 src/utilities/test01prg.a65 -l src/utilities/test01prg.list -m src/utilities/test01prg.map -o src/utilities/test01prg.prg
   133  Assembly complete: 46 bytes output (14 code, 23 data, 9 filler)
   134  Makefile:479: =============================================================
   135  Makefile:479: ~~~~~~~~~~~~~~~~> Making: src/utilities/c65test02prg.prg
   136  Ophis/bin/ophis -4 src/utilities/c65test02prg.a65 -l src/utilities/c65test02prg.list -m src/utilities/c65test02prg.map -o src/utilities/c65test02prg.prg
   137  Assembly complete: 68 bytes output (34 code, 31 data, 3 filler)
   138  Makefile:479: =============================================================
   139  Makefile:479: ~~~~~~~~~~~~~~~~> Making: src/utilities/c65-rom-910111-fastload-patch.prg
   140  Ophis/bin/ophis -4 src/utilities/c65-rom-910111-fastload-patch.a65 -l src/utilities/c65-rom-910111-fastload-patch.list -m src/utilities/c65-rom-910111-fastload-patch.map -o src/utilities/c65-rom-910111-fastload-patch.prg
   141  Assembly complete: 149 bytes output (149 code, 0 data, 0 filler)
   142  Makefile:479: =============================================================
   143  Makefile:479: ~~~~~~~~~~~~~~~~> Making: src/utilities/hdmitest.prg
   144  Ophis/bin/ophis -4 src/utilities/hdmitest.a65 -l src/utilities/hdmitest.list -m src/utilities/hdmitest.map -o src/utilities/hdmitest.prg
   145  Assembly complete: 927 bytes output (750 code, 169 data, 8 filler)
   146  Makefile:479: =============================================================
   147  Makefile:479: ~~~~~~~~~~~~~~~~> Making: src/utilities/vfpgatest.prg
   148  Ophis/bin/ophis -4 src/utilities/vfpgatest.a65 -l src/utilities/vfpgatest.list -m src/utilities/vfpgatest.map -o src/utilities/vfpgatest.prg
   149  Assembly complete: 2414 bytes output (551 code, 1855 data, 8 filler)
   150  Makefile:479: =============================================================
   151  Makefile:479: ~~~~~~~~~~~~~~~~> Making: src/utilities/sdbitbash.prg
   152  Ophis/bin/ophis -4 src/utilities/sdbitbash.a65 -l src/utilities/sdbitbash.list -m src/utilities/sdbitbash.map -o src/utilities/sdbitbash.prg
   153  Assembly complete: 148 bytes output (116 code, 24 data, 8 filler)
   154  Makefile:95: =============================================================
   155  Makefile:95: ~~~~~~~~~~~~~~~~> Making: cc65/bin/cc65
   156  git submodule init
   157  git submodule update
   158  ( cd cc65 && make -j 8 )
   159  make[1]: Entering directory '/home/devuser/dev/mega65/mega65-core/cc65'
   160  ar65/objdata.c
   161  ar65/error.c
   162  ar65/library.c
   163  ar65/del.c
   164  ar65/fileio.c
   165  ar65/list.c
   166  ar65/exports.c
   167  ar65/extract.c
   168  ar65/main.c
   169  ar65/global.c
   170  ar65/add.c
   171  ar65/objfile.c
   172  common/check.c
   173  common/abend.c
   174  common/shift.c
   175  common/target.c
   176  common/gentype.c
   177  common/searchpath.c
   178  common/intptrstack.c
   179  common/fileid.c
   180  common/strstack.c
   181  common/hashfunc.c
   182  common/coll.c
   183  common/segnames.c
   184  common/alignment.c
   185  common/bitops.c
   186  common/strbuf.c
   187  common/fname.c
   188  common/strpool.c
   189  common/mmodel.c
   190  common/chartype.c
   191  common/debugflag.c
   192  common/cmdline.c
   193  common/fp.c
   194  common/cpu.c
   195  common/matchpat.c
   196  common/filepos.c
   197  common/filetime.c
   198  common/tgttrans.c
   199  common/xsprintf.c
   200  common/xmalloc.c
   201  common/filestat.c
   202  common/filetype.c
   203  common/exprdefs.c
   204  common/strutil.c
   205  ^CMakefile:150: recipe for target '../wrk/common/exprdefs.o' failed
   206  make[2]: *** [../wrk/common/exprdefs.o] Interrupt
   207  Makefile:150: recipe for target '../wrk/common/tgttrans.o' failed
   208  make[2]: *** [../wrk/common/tgttrans.o] Interrupt
   209  Makefile:150: recipe for target '../wrk/common/xsprintf.o' failed
   210  make[2]: *** [../wrk/common/xsprintf.o] Interrupt
   211  Makefile:150: recipe for target '../wrk/common/xmalloc.o' failed
   212  make[2]: *** [../wrk/common/xmalloc.o] Interrupt
   213  Makefile:150: recipe for target '../wrk/common/filestat.o' failed
   214  make[2]: *** [../wrk/common/filestat.o] Interrupt
   215  Makefile:150: recipe for target '../wrk/common/filetype.o' failed
   216  make[2]: *** [../wrk/common/filetype.o] Interrupt
   217  make[2]: *** Deleting file '../wrk/common/cmdline.o'
   218  make[2]: *** wait: No child processes.  Stop.
   219  make[2]: *** Waiting for unfinished jobs....
   220  make[2]: *** wait: No child processes.  Stop.
   221  Makefile:150: recipe for target '../wrk/common/strutil.o' failed
   222  make[2]: *** [../wrk/common/strutil.o] Error 2
   223  make[2]: *** wait: No child processes.  Stop.
   224  make[2]: *** Waiting for unfinished jobs....
   225  make[2]: *** wait: No child processes.  Stop.
   226  Makefile:150: recipe for target '../wrk/common/hashtab.o' failed
   227  make[2]: *** [../wrk/common/hashtab.o] Error 2
   228  Makefile:6: recipe for target 'all' failed
   229  make[1]: *** [all] Interrupt
   230  Makefile:95: recipe for target 'cc65/bin/cc65' failed
   231  make: *** [cc65/bin/cc65] Interrupt
   232  
   233  devuser@u16vm:~/dev/mega65/mega65-core$ 
   234  
devuser@u16vm:~/dev/ben-401/mega65-core$ 
rdpeake commented 4 years ago

yes, the original issue was resolved once the correct branch to build was given - also able to build supported targets using 2019.2.1 of vivado and the listed dependencies on WSL.