sifive / block-pio-sifive Goto Github PK
View Code? Open in Web Editor NEWAn example of on-boarding a PIO block in with duh and wake
License: Apache License 2.0
An example of on-boarding a PIO block in with duh and wake
License: Apache License 2.0
The pdf of onboarding documentation when exported with asciidoctor-pdf has text missing in the block diagram:
The issues at first seemed to be of prawn-svg so I filed the issue here.
The issue in actual seems to be use of a recommended approach in generating the svg file as described in this comment.
I am not sure what's the significance of baseAddress
defined in pio.json5
.
Going through the scripts of duh-export-scala
, I realize baseAddress
has no role to play. The scala generated as a result don't have the mention of any baseAddress
for the memory map.
However, the duh-export-regmap
makes use of baseAddress
and it reflects in the output of this script.
My query is twofold:
Is there any significance of baseAddress
when I define my register map. If yes, where do I see the difference baseAddress
makes? If no, at what memory location does the registers rest?
What is the use case of duh-export-regmap
. Is it a must in order to access and configure registers using let's say apb bus
?
The build exits with following error:
src/watchdog.c: In function 'metal_watchdog_get_device':
src/watchdog.c:22:15: error: '__METAL_DT_MAX_WDOGS' undeclared (first use in this function)
22 | if (index > __METAL_DT_MAX_WDOGS) {
| ^~~~~~~~~~~~~~~~~~~~
src/watchdog.c:22:15: note: each undeclared identifier is reported only once for each function it appears in
src/watchdog.c:26:36: error: '__metal_wdog_table' undeclared (first use in this function); did you mean '__metal_spi_table'?
26 | return (struct metal_watchdog *) __metal_wdog_table[index];
| ^~~~~~~~~~~~~~~~~~
| __metal_spi_table
PANIC: Error "gcc: could not find output file: build/api-generator-sifive/pioDUT/programs/demo/demo.elf" Nil
Requirement !panic_called failed at src/exception.cpp:64
There are no functions named __METAL_DT_MAX_WDOGS
& __metal_wdog-table
when you grep it in the workspace. I checked in the master repo of freedom-metal
but these functions are missing their too. How do I get past this?
Hi,
while running wake runSim pioDUT
. It throws the following error
PANIC: Error "gcc: could not find output file: build/api-generator-sifive/pioDUT/programs/demo/demo.elf" Nil Requirement !panic_called failed at src/exception.cpp:69 ishita@DESKTOP-B4D4E03:~/workspace$
How do I fix this?
In the tutorial of preonboarded branch, during the creation of Onboarding document, we have entered this command : wake makeOnboardingDocument pioDUT
and it fires the following error:
shraddha@terminal:~/workspace$ wake makeOnboardingDocument pioDUT <ivycache> ivycache /bin/cp scribble/Pipfile.lock build/scribble/Pipfile.lock /bin/cp scribble/Pipfile build/scribble/Pipfile protoc --java_out=build/firrtl/proto firrtl/src/main/proto/firrtl.proto /usr/bin/java -cp ivycache/https/repo1.maven.org/maven2/com/ibm/icu/icu4j/61.1/icu4j-61.1.jar:ivycache/https/repo1.maven.org/maven2/org/abego/treelayout/org.abego.treelayout.core/1.0.3/org.abego.treelayout.core-1.0.3.jar:ivycache/https/repo1.maven.org/maven2/org/antlr/ST4/4.1/ST4-4.1.jar:ivycache/https/repo1.maven.org/maven2/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar:ivycache/https/repo1.maven.org/maven2/org/antlr/antlr4-runtime/4.7.2/antlr4-runtime-4.7.2.jar:ivycache/https/repo1.maven.org/maven2/org/antlr/antlr4/4.7.2/antlr4-4.7.2.jar:ivycache/https/repo1.maven.org/maven2/org/glassfish/javax.json/1.0.4/javax.json-1.0.4.jar org.antlr.v4.Tool -o build/firrtl/antlr -visitor -no-listener -package firrtl.antlr firrtl/src/main/antlr4/FIRRTL.g4 api-languages-sifive/install-python-pipenv build/scribble/Pipfile build/scribble/Pipfile.lock build/scribble/.venv api-scala-sifive/bloop_wake -t build/api-scala-sifive/bloop/rocketchipMacros.json.template -c build/api-scala-sifive/bloop/rocketchipMacros.json -b scala --coursier-cache ivycache --bloop-args compile -c build/api-scala-sifive/bloop rocketchipMacros --jar build/rocketchipMacros/scala-2.12/jar/rocketchipMacros.jar api-scala-sifive/bloop_wake -t build/api-scala-sifive/bloop/chisel3Macros.json.template -c build/api-scala-sifive/bloop/chisel3Macros.json -b scala --coursier-cache ivycache --bloop-args compile -c build/api-scala-sifive/bloop chisel3Macros --jar build/chisel3Macros/scala-2.12/jar/chisel3Macros.jar api-scala-sifive/bloop_wake -t build/api-scala-sifive/bloop/firrtl.json.template -c build/api-scala-sifive/bloop/firrtl.json -b scala --coursier-cache ivycache --bloop-args compile -c build/api-scala-sifive/bloop firrtl --jar build/firrtl/scala-2.12/jar/firrtl.jar Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead. You can set PIPENV_VERBOSITY=-1 to suppress this warning. PANIC: Hash mismatch for build/scribble/.venv/bin/activate (6c509b20b5a3b06d3b229188917b5ced81251f90284f0e117998926dfd165fbc != 04b632bec64f7157715b61581bdfbe051f4e6b22416c2f79c49e3b8446acd3b2); remove it Requirement !panic_called failed at src/exception.cpp:64 shraddha@terminal:~/workspace$
So how can I resolve this?
I've been trying to run the block-pio example for a while now. As instructed in the Readme, firing the command wake 'runSim pioDUT'
fails with following errors:
<ivycache> ivycache
protoc --java_out=build/firrtl/proto firrtl/src/main/proto/firrtl.proto
execve protoc: No such file or directory
WARNING: Could not parse DTS JSON: _root_.sifive.skeleton.DefaultConfig_sifive.skeleton.WithSimUART_sifive.skeleton.WithTestFinisher_sifive.blocks.pio.WithpioTop.json file not found
PANIC: Error "File not found" Nil
Requirement !panic_called failed at src/exception.cpp:64
Google look up suggest Missing protobuf but reinstalling protobuf doesn't help. Warning persists.
It appears to me as if the build.wake
in soc-testsocket-sifive
fails to import the WithpioTop..json
file or the file is missing.
Help?
UPDATE:
Tried resolving the execve protoc: No such file or directory
by reinstalling the latest protocbuf via here. That error was resolved but process stuck at this now:
<ivycache> ivycache
api-scala-sifive/bloop_wake -t build/api-scala-sifive/bloop/firrtl.json.template -c build/api-scala-sifive/bloop/firrtl.json -b scala --coursier-cache ivycache --bloop-args compile -c build/api-scala-sifive/bloop firrtl --jar build/firrtl/scala-2.12/jar/firrtl.jar
[ # ] api-scala-sifive/bloop_wake -t build/api-scala-sifive/bloop/firrtl.json.template -c build/api-scala-sifive/bloo ... ycache --bloop-args compile -c build/api-scala-sifive/bloop firrtl --jar build/firrtl/scala-2.12/jar/firrtl.jar
[E] [E10] ../firrtl/proto/firrtl/FirrtlProtos.java:5497:55
[E] type InternalOneOfEnum is not a member of com.google.protobuf.AbstractMessage
[E] L5497: com.google.protobuf.AbstractMessage.InternalOneOfEnum {
[E] ^
[E] [E9] ../firrtl/proto/firrtl/FirrtlProtos.java:38372:51
[E] type InternalOneOfEnum is not a member of com.google.protobuf.AbstractMessage
[E] L38372: com.google.protobuf.AbstractMessage.InternalOneOfEnum {
[E] ^
[E] [E8] ../firrtl/proto/firrtl/FirrtlProtos.java:28022:51
[E] type InternalOneOfEnum is not a member of com.google.protobuf.AbstractMessage
[E] L28022: com.google.protobuf.AbstractMessage.InternalOneOfEnum {
[E] ^
[E] [E7] ../firrtl/proto/firrtl/FirrtlProtos.java:13297:53
[E] type InternalOneOfEnum is not a member of com.google.protobuf.AbstractMessage
[E] L13297: com.google.protobuf.AbstractMessage.InternalOneOfEnum {
[E] ^
[E] [E6] ../firrtl/proto/firrtl/FirrtlProtos.java:16040:53
[E] type InternalOneOfEnum is not a member of com.google.protobuf.AbstractMessage
[E] L16040: com.google.protobuf.AbstractMessage.InternalOneOfEnum {
[E] ^
[E] [E5] ../firrtl/proto/firrtl/FirrtlProtos.java:52425:51
[E] type InternalOneOfEnum is not a member of com.google.protobuf.AbstractMessage
[E] L52425: com.google.protobuf.AbstractMessage.InternalOneOfEnum {
[E] ^
[E] [E4] ../firrtl/proto/firrtl/FirrtlProtos.java:1758:51
[E] type InternalOneOfEnum is not a member of com.google.protobuf.AbstractMessage
[E] L1758: com.google.protobuf.AbstractMessage.InternalOneOfEnum {
[E] ^
[E] ../../firrtl/src/main/scala/firrtl/RenameMap.scala: L76 [E1], L77 [E2], L78 [E3]
[E] ../firrtl/proto/firrtl/FirrtlProtos.java: L1758 [E4], L5497 [E10], L13297 [E7], L16040 [E6], L28022 [E8], L38372 [E9], L52425 [E5]
[E] 'firrtl' failed to compile.
Scala compilation failed for 'api-scala-sifive/bloop_wake -t build/api-scala-sifive/bloop/firrtl.json.template -c build/api-scala-sifive/bloop/firrtl.json -b scala --coursier-cache ivycache --bloop-args "compile -c build/api-scala-sifive/bloop firrtl" --jar build/firrtl/scala-2.12/jar/firrtl.jar'
WARNING: Could not parse DTS JSON: _root_.sifive.skeleton.DefaultConfig_sifive.skeleton.WithSimUART_sifive.skeleton.WithTestFinisher_sifive.blocks.pio.WithpioTop.json file not found
PANIC: Error "File not found" Nil
Requirement !panic_called failed at src/exception.cpp:64
Reffering the issue here. The suggestion to use v3.6.1
failed for me. I downgraded from the latest protoc v3.11
to v3.6.1
.
Error Message:
src/drivers/riscv_cpu.c: Assembler messages:
src/drivers/riscv_cpu.c:144: Error: unknown CSR `mtvt'
src/drivers/riscv_cpu.c:166: Error: unknown CSR `mtvt'
src/drivers/riscv_cpu.c:170: Error: unknown CSR `mtvt'
make[1]: *** [src/drivers/libriscv__mmachine__pioDUT_a-riscv_cpu.o] Error 1
make: *** [all] Error 2
When I grep
mtvt in the workspace, /rocket-chip/src/main/scala/rocket/Instructions.scala:795:
has the definition val mtvt = 0x307
already defined.
Hello, command mentioned in the subject is giving an error and compilation log with error for that is following:
compilation_log.log
It depends on soc-freedom-sifive
which is pulling in block-inclusivecache-sifive
. This seems like overkill. Is there something in soc-freedom-sifive
we need that should just be in api-generator-sifive
or rocket-chip
?
workspace$ wit inspect --tree
block-pio-sifive::550bf22
├─soc-testsocket-sifive::466b3f18
│ ├─api-generator-sifive::6043751a->43b6fa2
│ ├─sifive-blocks::4374e58f
│ │ └─rocket-chip::50de8a34
│ │ ├─berkeley-hardfloat::70c1e1dd
│ │ ├─api-chisel3-sifive::258e0bd4
│ │ │ ├─chisel3::9a0ce227->e1aa5f3f
│ │ │ └─api-firrtl-sifive::9fbfcf19
│ │ │ ├─firrtl::2272044c->228c9a4b
│ │ │ └─api-scala-sifive::0fafb118->1c38068
│ │ ├─chisel3::e1aa5f3f
│ │ └─firrtl::228c9a4b
│ ├─chisel3::e1aa5f3f
│ ├─firrtl::228c9a4b
│ └─soc-freedom-sifive::4656fa1d
│ ├─api-generator-sifive::40dbdf23->43b6fa2
│ ├─fpga-shells::2caf8a94
│ │ ├─api-generator-sifive::50b9d6ff->43b6fa2
│ │ ├─sifive-blocks::4374e58f
│ │ ├─rocket-chip::e44e22be->50de8a34
│ │ ├─chisel3::e1aa5f3f
│ │ ├─firrtl::228c9a4b
│ │ └─api-scala-sifive::9c4bcd00->1c38068
│ ├─sifive-blocks::4374e58f
│ ├─rocket-chip::50de8a34
│ ├─block-inclusivecache-sifive::7d3f8809
│ │ └─rocket-chip::50de8a34
│ └─api-scala-sifive::1c38068e
│ └─wit::5a466386
├─api-generator-sifive::43b6fa2f
│ ├─freedom-metal::feee9ff0
│ ├─freedom-devicetree-tools::89e427e1
│ ├─rocket-chip::50de8a34
│ ├─api-languages-sifive::96cdaf23
│ └─scribble-testsocket-sifive::c9d454d6
│ └─scribble::a1b23124
│ └─api-languages-sifive::96cdaf23
└─api-scala-sifive::1c38068e
I've been trying to get going with block-pio project. Firing the command wake 'runSim {dut plan}'
as specified in Readme throws following error:
Was expecting an (OPERATOR/LAMBDA/ID/LITERAL/PRIM/POPEN), got a BOPEN at <command-line>:1:9
Was expecting a END, but got a BOPEN at <command-line>:1:9
Type error; function <command-line>:1:[1-8] expected argument 'argument' of type:
RocketChipDUTPlan
but was supplied argument src/parser.cpp:400:1 of type:
String
>>> Aborting without execution <<<
The runSim
executes the file ./api-generator-sifive/top.wake
script.
How do I fix this?
Hello,
At the beginning , during the initializing the workspace with the command : wit init workspace1 -a [email protected]:sifive/block-pio-sifive.git::preonboarded
is giving an error like following:
Creating new workspace [/home/pvips-shraddha/workspace1] Cloning block-pio-sifive... [ERROR] Bad remote for 'block-pio-sifive': [email protected]:sifive/block-pio-sifive.git
so, how can I resolve this?
See #40 (comment).
There have been a number of users who have been confused by the command examples in the README, since we are using an uncommon style for describing arguments that should be substituted with real arguments by the user.
One problem that we've run into with having the tutorial on the preonboarded
branch is that we don't really have a good way of versioning the tutorial itself. Although the master branch points at the preonboarded
branch, following the instructions on the preonboarded
branch may not always produce the same results, as we change parts of the onboarding workflow. Although we try to keep the tutorial up to date, we have the other related problem of not being able to track specific versions of the tutorial, since we just merge updates directly to the preonboarded
branch.
My proposal is the following:
master
branch, and that way tagged versions of the repo will have the corresponding version of the tutorial saved with it.wit-manifest.json
from the preonboarded
branch, resulting in the only files on that branch being the raw Verilog files.preonboarded
branch), we may want to add a README to the preonboarded
branch that links to an older commit of the preonboarded
branch that still had the tutorial.I've been trying to get through with the pio-block example.
Firing the command wake 'runSimWith pioDUT Verilator'
fails with a lot of warnings. I don't think putting everything up here would make sense. Uploading the config.log
from workspace/build/freedom-metal/pioDUT/
. config.log
I see a couple of fatal errors
from line 70.
How can I zero in on the actual problem? Any more logs to help me in debugging? The simulation did mention two files std.err & std.out
but I fail to find them.
How do I fix this?
UPDATE:
I am not sure if Verilator is been selected. Why is +perl +incdir+api-generator-sifive/vsrc
vcs being selected over here?
We should provide example of connecting structured bundles. I think pio
external interface is a good example. Here is the plan:
pio
external interface in DUH documentloopback
external interface in DUH documentpio
to loopback
by connecting bundlesI started with the preonboarded branch for the block-pio-sifive tutorial.
Firing the wake makeOnboardingDocument pioDUT
results in the error in this log
log_2.txt.
Updated log File:
log_1153_updated.txt
Kindly refer to the updated log file. Squashed some errors.
To summarise: The script doesn't find variables dataWidth
, addrWidth
, writeStrobeWidth
etc. in pio-base.scala
. I compared the generated pio-base.scala
with the pio-base.scala
in the master repo. The parameters seem to be totally different. Like for WSTRB
parameter in this generated scala is writeStrobeWidth
while in the master repo it is datawidth/8
.
As this scala is generated from duh-export-scala
I am unable to debug the errors generated.
Should I go ahead and change the parameters manually or something that I might be missing while running duh tool?
UPDATE:
I was trying to figure out the other errors: not found: type loopbackBlackBoxIO
, not found: value NloopbackTop
etc. I compared loopback.json5 in master repo and the one I created. The library
param of component
is vip
in master repo while block
in the json5 created by me. I changed block
to vip
and the errors were terminated. Can you confirm this to be the correct approach?
UPDATE 2
Regarding error for memRegion
i.e. value getOMMemoryRegions is not a member of sifive.blocks.pio.NpioTopBase
:
The step to override the method getOMMemoryRegions
as explained here fails because base class in pio-base.scala
doesn't exist. However the pio-base.scala
in master
repo does have this method. Comparing pio.json5
in both repo doesn't give much insight into why the method is missing as both json5
files are almost same.
How do I produce getOMMemoryRegions
in pio-base.scala?
UPDATE 3
Fixed the issues by installing duh-export-scala
packages explicitly from it's repo. The scala files are error free and are converted to respective *.jars. I'm stuck right now with the following issue:
File "/home/saurabh/workspace_preonboarded/.build/9410/scribble-testsocket-sifive/docs/scribble/components/Component/RegisterList.jinja2", line 7, in top-level template code
64 {{ registers.table(title="{} Register Map".format(scope._type)) }}
65 TypeError: table() got an unexpected keyword argument 'title'
Entire log here!
scribble_error.log
hi,
When I run the command wake runSim pioDUT
It throws the following error
[E] [E5] ../../firrtl/src/main/scala/firrtl/proto/FromProto.scala:308:22 [E] value hasExternalModule is not a member of firrtl.FirrtlProtos.Firrtl.Module [E] L308: require(module.hasExternalModule, "Module must have Module or ExtModule") [E] ^ [E] [E4] ../../firrtl/src/main/scala/firrtl/proto/FromProto.scala:306:16 [E] value hasUserModule is not a member of firrtl.FirrtlProtos.Firrtl.Module [E] L306: if (module.hasUserModule) convert(module.getUserModule) [E] ^ [E] ../../firrtl/src/main/scala/firrtl/RenameMap.scala: L76 [E1], L77 [E2], L78 [E3] [E] ../../firrtl/src/main/scala/firrtl/proto/FromProto.scala: L306 [E4], L308 [E5] [E] 'firrtl' failed to compile. Scala compilation failed for 'api-scala-sifive/bloop_wake -t build/api-scala-sifive/bloop/firrtl.json.template -c build/api-scala-sifive/bloop/firrtl.json -b scala --coursier-cache ivycache --bloop-args "compile -c build/api-scala-sifive/bloop firrtl" --jar build/firrtl/scala-2.12/jar/firrtl.jar'
How can I resolve this?
Please just put an complete example and run through.
I've been trying to run/build the entire block-pio project example. I've followed the steps prescribed in readme and the following error occurs while executing the run command < wake 'runSim ${dut plan}' >
Error Message:
Variable reference 'makeStatePath' is unbound at api-scala-sifive/scala.wake:19:[16-28]
Type error; function <command-line>:1:[1-8] expected argument 'argument' of type:
RocketChipDUTPlan
but was supplied argument src/parser.cpp:389:1 of type:
String
>>> Aborting without execution <<<
Wake tool's tutorial describes cause of this error as follows:
"Wake processes all versioned wake files (*.wake) which are in the workspace. A very common mistake is to create a new wake file and run wake without first adding that file to version control. In that case, the file will not be read, and you will likely get an error like Variable reference xyz is unbound."
How do I fix this?
I have been trying to execute pio-block-sifive in its preonboarded state exactly as mentioned in the README tutorial here but have encountered some problems espeically when running the command wake -x 'runSim pioDUT'
.
Below mentioned is the list of steps taken.
The following versions of each program were used:
Resource | Version |
---|---|
NodeJs | 8.10.0 |
npm | 3.5.2 |
DUH | 1.17.10 |
wit | 0.14.0 |
wake | 0.19.1 |
Small Bugs
block-pio-sifive/build-rules/wake/pio.wake
isn't present by default.block-pio-sifive/tests/c/demo/main.c
isnt present be default.Main Bug
When "making and publishing a test" running the command wake -x 'runSim pioDUT'
generates the following error log.
Error Log
Was expecting an (OPERATOR/ID/POPEN), got a PACKAGE at 'package' (apifirrtl-sifive/build.wake:16:[7-13])
Was expecting an (OPERATOR/LAMBDA/ID/LITERAL/PRIM/POPEN), got a PACKAGE at 'package' (api-firrtl-sifive/build.wake:18:[80-86])
Was expecting a EOL, but got a PACKAGE at 'package' (api-firrtlsifive/build.wake:18:[80-86])
Was expecting an (OPERATOR/LAMBDA/ID/LITERAL/PRIM/POPEN), got a PACKAGE at 'package' (api-firrtl-sifive/build.wake:18:[80-86])
Was expecting a DEDENT, but got a PACKAGE at 'package' (api-firrtlsifive/build.wake:18:[80-86])
Was expecting a EOL, but got a PACKAGE at 'package' (api-firrtlsifive/build.wake:18:[80-86])
Was expecting an ID argument, but got a OPERATOR at ',' (api-firrtlsifive/build.wake:18:87)
Was expecting a EOL, but got a POPEN at '(' (api-firrtlsifive/build.wake:18:89)
Was expecting a END, but got a POPEN at '(' (api-firrtlsifive/build.wake:18:89)
Was expecting an (OPERATOR/ID/POPEN), got a BINARY at 'binary' (apigenerator-sifive/program/freedom-metal-program.wake:229:[9-14])
Was expecting a DEDENT, but got a BINARY at 'binary' (api-generatorsifive/program/freedom-metal-program.wake:236:[17-22])
Was expecting a EOL, but got a BINARY at 'binary' (api-generatorsifive/program/freedom-metal-program.wake:236:[17-22])
Was expecting an (OPERATOR/LAMBDA/ID/LITERAL/PRIM/POPEN), got a BINARY at 'binary' (api-generator-sifive/program/freedom-metal-program.wake:236:[17-22])
Was expecting a DEDENT, but got a BINARY at 'binary' (api-generatorsifive/program/freedom-metal-program.wake:236:[17-22])
Was expecting a EOL, but got a BINARY at 'binary' (api-generatorsifive/program/freedom-metal-program.wake:236:[17-22])
Was expecting a END, but got a BINARY at 'binary' (api-generatorsifive/program/freedom-metal-program.wake:236:[17-22])
Was expecting a EQUALS, but got a BINARY at 'binary' (api-generatorsifive/program/program.wake:132:[24-29])
Was expecting an (OPERATOR/LAMBDA/ID/LITERAL/PRIM/POPEN), got a EQUALS at '=' (api-generator-sifive/program/program.wake:132:31)
Was expecting a EOL, but got a EQUALS at '=' (api-generatorsifive/program/program.wake:132:31)
Was expecting a END, but got a EQUALS at '=' (api-generatorsifive/program/program.wake:132:31)
Was expecting an (OPERATOR/ID/POPEN), got a BINARY at 'binary' (apigenerator-sifive/sim/verilator.wake:104:[7-12])
Was expecting a DEDENT, but got a BINARY at 'binary' (api-generatorsifive/sim/verilator.wake:111:[64-69])
Was expecting a EOL, but got a BINARY at 'binary' (api-generatorsifive/sim/verilator.wake:111:[64-69])
Was expecting a END, but got a BINARY at 'binary' (api-generatorsifive/sim/verilator.wake:111:[64-69])
Was expecting an (OPERATOR/ID/POPEN), got a TYPE at 'type' (block-piosifive/build-rules/wake/pio.wake:78:[7-10])
Was expecting a DEDENT, but got a TYPE at 'type' (block-pio-sifive/buildrules/wake/pio.wake:86:[24-27])
Was expecting a EOL, but got a TYPE at 'type' (block-pio-sifive/buildrules/wake/pio.wake:86:[24-27])
Was expecting a END, but got a TYPE at 'type' (block-pio-sifive/buildrules/wake/pio.wake:86:[24-27])
Publish to 'preinstall' is to a non-existent topic at api-generatorsifive/program/generate-base-headers.wake:51:[9-18]
Type signature 'SimulationOutput' refers to a non-existent type apigenerator-sifive/sim/dut-simulator.wake:53:[107-122]
Type signature 'SimulationOutput' refers to a non-existent type apigenerator-sifive/sim/dut-simulator.wake:23:[110-125]
Subscribe of 'dutSimulators' is to a non-existent topic at api-generatorsifive/sim/dut-simulator.wake:80:[20-42]
Subscribe of 'vcsDUTSimCompileOptionsHooks' is to a non-existent topic at api-generator-sifive/sim/vcs-sim.wake:87:[33-72]
Subscribe of 'vcsDUTSimExecuteOptionsHooks' is to a non-existent topic at api-generator-sifive/sim/vcs-sim.wake:99:[33-72]
Publish to 'dutSimulators' is to a non-existent topic at api-generatorsifive/sim/vcs-sim.wake:185:[9-21]
Subscribe of 'verilatorDUTSimCompileOptionsHooks' is to a non-existent topic at api-generator-sifive/sim/verilator-sim.wake:110:[33-78]
Subscribe of 'verilatorDUTSimExecuteOptionsHooks' is to a non-existent topic at api-generator-sifive/sim/verilator-sim.wake:122:[33-78]
Subscribe of 'verilatorDUTSimCompileOptionsHooks' is to a non-existent topic at api-generator-sifive/sim/verilator-sim.wake:142:[31-76]
Publish to 'dutSimulators' is to a non-existent topic at api-generatorsifive/sim/verilator-sim.wake:226:[9-21]
Subscribe of 'xceliumDUTSimCompileOptionsHooks' is to a non-existent topic at api-generator-sifive/sim/xcelium-sim.wake:95:[33-76]
Subscribe of 'xceliumDUTSimExecuteOptionsHooks' is to a non-existent topic at api-generator-sifive/sim/xcelium-sim.wake:107:[33-76]
Publish to 'dutSimulators' is to a non-existent topic at api-generatorsifive/sim/xcelium-sim.wake:184:[9-21]
Type signature 'SimBootloader' refers to a non-existent type api-generatorsifive/test/test.wake:39:[22-34]
Subscribe of 'vivadoVsrcHooks' is to a non-existent topic at api-generatorsifive/top.wake:29:[5-29]
Subscribe of 'dutTests' is to a non-existent topic at api-generatorsifive/top.wake:51:[18-35]
Subscribe of 'preinstall' is to a non-existent topic at api-languagessifive/command.wake:87:[19-40]
Subscribe of 'driverImplementations' is to a non-existent topic at apigenerator-sifive/dut/drivers.wake:30:[3-33]
Publish to 'dutTests' is to a non-existent topic at block-pio-sifive/buildrules/wake/pio.wake:74:[9-16]
Publish to 'driverImplementations' is to a non-existent topic at block-pio-sifive/build-rules/wake/pio.wake:61:[9-29]
Publish to 'dutSimCompileOptionsHooks' is to a non-existent topic at block-pio-sifive/build-rules/wake/pio.wake:29:[9-33]
Publish to 'scribbleDirectories' is to a non-existent topic at scribbletestsocket-sifive/build-rules/wake/onboarding.wake:17:[9-27]
Subscribe of 'scribbleDirectories' is to a non-existent topic at scribble/build-rules/wake/scribble.wake:64:[29-57]
Publish to 'preinstall' is to a non-existent topic at scribble/buildrules/wake/scribble.wake:111:[9-18]
Publish to 'scribbleDirectories' is to a non-existent topic at scribble/build-rules/wake/scribble.wake:40:[9-27]
Publish to 'vivadoVsrcHooks' is to a non-existent topic at soc-testsocketsifive/build.wake:118:[9-23]
Subscribe of 'dutSimCompileOptionsHooks' is to a non-existent topic at apigenerator-sifive/dut/rocket-chip-dut.wake:208:[27-63]
Subscribe of 'dutSimExecuteOptionsHooks' is to a non-existent topic at apigenerator-sifive/dut/rocket-chip-dut.wake:212:[27-63]
Publish to 'dutSimCompileOptionsHooks' is to a non-existent topic at apigenerator-sifive/dut/rocket-chip-dut.wake:197:[9-33]
Publish to 'rocketChipDUTrogramCompilers' is to a non-existent topic at api-generator-sifive/program/freedom-metal-program.wake:179:[9-36]
>>> Aborting without execution <<<
These errors occur because a lot of variables weren't mentioned properly including "_package" , "binary_" in their respective wake files: As for the publishing and subscribe errors their global topics aren't defined in the respective wake files. Most of the errors have been removed by comparing the individual wake files of the preonboarded and master branch however:
The following ERROR LOG still persists:
Type signature 'SimulationOutput' refers to a non-existent type apigenerator-sifive/sim/dut-simulator.wake:53:[107-122]
Type signature 'SimulationOutput' refers to a non-existent type apigenerator-sifive/sim/dut-simulator.wake:23:[110-125]
Publish to 'scribbleDirectories' is to a non-existent topic at scribbletestsocket-sifive/build-rules/wake/onboarding.wake:17:[9-27]
Subscribe of 'scribbleDirectories' is to a non-existent topic at scribble/build-rules/wake/scribble.wake:64:[29-57]
Publish to 'scribbleDirectories' is to a non-existent topic at scribble/build-rules/wake/scribble.wake:40:[9-27]
>>> Aborting without execution <<<
Topic SimulationOutput
is mentioned exactly same in both preonboarded and master branch.
Topic scribbleDirectories
doesnt exist in master branch since the folder scribble isnt present.
Any help regarding how to solve the issue would be highly appreciated.
I am experiencing a rather strange deadlock between versions of ruby to create the preonboarding document.
Installed Ruby using apt-get install ruby
. The wake makeOnboardingDocument pioDUT
finishes but asciidoctor-pdf
to convert .adoc to .pdf fails for following reason.
Error: allow-uri read is not enabled. See here
Effect: The svg file is printed directly and is not converted to image in the final document.
Fix: To install 'asciidoctor-pdf' using git repo. See here
The readme of above repo mentions to use RVM
to install and manage Ruby. You can find installation steps here & here.
Ruby is succesfully installed and set up. Now the wake makeOnboardingDocument pioDUT
fails with error:
gem install bundler -v '>=2' --install-dir build/scribble/.gem
execve gem: No such file or directory
Fail (Error "Scribble failed to produce output file build/api-generator-sifive/pioDUT/documents/pioDUT.adoc" Nil)
I've tried with ruby v2.3.7(the minimum required), v2.5.7(this version same as when installed using
apt-get install ruby and v2.6.3 (the latest version)
& gem v2.7.7
& v3.0.3
but of no use. Also tried adding path in env.json as done with protoc, verilator & riscv gnu-toolchain but of no use.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.