Skip to content

Commit 15acc66

Browse files
committed
Many bug fixes and improvements (v2.2.1)
- add support for SiFive E21 (4 PMP regs / SiFive CLIC) - increase CLIC max sources to 256 - zone1: add printf.c and strtok.c to reduce code size < 16K - zone1: switch to vectored trap handler to reduce irq latency - fix -Wall and -Wextra warnings - update riscv-gnu-toolchain-20210618 (rv32i|rv32e|rv64i)mac - update manual.pdf and README.md multizone.jar @1b9f31 (v2.2.1) / kernel @6b58e8 (v2.2.1): - major redesign of kernel internal data structures - up to 32/64 clint + 64/128 plic sources - up to 256 clic sources for both rv32 and rv64 - reduce size of most kern vars from REGSIZE to 4-byte - increase trap & emulation i-cache size - add support for SiFive clic (E21) - reintroduce support for rv32e 16-regs - update riscv-gnu-toolchain-20210618 (rv32i|rv32e|rv64i)c
1 parent a657e79 commit 15acc66

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+2020
-211
lines changed

.cproject

+68
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,65 @@
298298
</storageModule>
299299
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
300300
</cconfiguration>
301+
<cconfiguration id="cdt.managedbuild.toolchain.gnu.cross.base.1603369180.590572468.475102828">
302+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.cross.base.1603369180.590572468.475102828" moduleId="org.eclipse.cdt.core.settings" name="E21">
303+
<externalSettings/>
304+
<extensions>
305+
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
306+
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
307+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
308+
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
309+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
310+
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
311+
</extensions>
312+
</storageModule>
313+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
314+
<configuration artifactName="${ProjName}" buildProperties="" description="" errorParsers="org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.CWDLocator" id="cdt.managedbuild.toolchain.gnu.cross.base.1603369180.590572468.475102828" name="E21" parent="org.eclipse.cdt.build.core.emptycfg">
315+
<folderInfo id="cdt.managedbuild.toolchain.gnu.cross.base.1603369180.590572468.475102828." name="/" resourcePath="">
316+
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.base.1490216521" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.base" unusedChildren="cdt.managedbuild.tool.gnu.cross.cpp.compiler;cdt.managedbuild.tool.gnu.cross.cpp.linker">
317+
<option id="cdt.managedbuild.option.gnu.cross.prefix.901870821" name="Prefix" superClass="cdt.managedbuild.option.gnu.cross.prefix" useByScannerDiscovery="false" value="riscv64-unknown-elf-" valueType="string"/>
318+
<option id="cdt.managedbuild.option.gnu.cross.path.1317891309" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path" useByScannerDiscovery="false" value="${RISCV}/bin" valueType="string"/>
319+
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.1659041725" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
320+
<builder id="cdt.managedbuild.builder.gnu.cross.1869718834" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.builder.gnu.cross"/>
321+
<tool id="cdt.managedbuild.tool.gnu.cross.assembler.2057002314" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
322+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.both.asm.option.include.paths.407039684" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
323+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/multizone-sdk}&quot;"/>
324+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/multizone-sdk/bsp/${ConfigName}}&quot;"/>
325+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/multizone-sdk/ext}&quot;"/>
326+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/multizone-sdk/ext/freertos/include}&quot;"/>
327+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/multizone-sdk/ext/freertos/portable/GCC/RISC-V}&quot;"/>
328+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/multizone-sdk/ext/freertos/portable/GCC/RISC-V/chip_specific_extensions/RV32I_CLINT_no_extensions}&quot;"/>
329+
</option>
330+
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1177485063" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
331+
</tool>
332+
<tool id="cdt.managedbuild.tool.gnu.cross.c.linker.282491035" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker">
333+
<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.87247543" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
334+
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
335+
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
336+
</inputType>
337+
</tool>
338+
<tool id="cdt.managedbuild.tool.gnu.cross.archiver.1274848173" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
339+
<tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.1155518640" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
340+
<option id="gnu.c.compiler.option.dialect.std.333431580" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.c.compiler.dialect.default" valueType="enumerated"/>
341+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.902870614" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
342+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/multizone-sdk}&quot;"/>
343+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/multizone-sdk/bsp/${ConfigName}}&quot;"/>
344+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/multizone-sdk/ext}&quot;"/>
345+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/multizone-sdk/ext/freertos/include}&quot;"/>
346+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/multizone-sdk/ext/freertos/portable/GCC/RISC-V}&quot;"/>
347+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/multizone-sdk/ext/freertos/portable/GCC/RISC-V/chip_specific_extensions/RV32I_CLINT_no_extensions}&quot;"/>
348+
</option>
349+
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1773950353" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
350+
</tool>
351+
</toolChain>
352+
</folderInfo>
353+
<sourceEntries>
354+
<entry excluding="ext/freertos/portable/GCC/RISC-V/chip_specific_extensions/Pulpino_Vega_RV32M1RM|ext/freertos/portable/GCC/TriCore_1782|ext/freertos/portable/GCC/STR75x|ext/freertos/portable/GCC/RX700v3_DPFPU|ext/freertos/portable/GCC/RX600v2|ext/freertos/portable/GCC/RX600|ext/freertos/portable/GCC/RX200|ext/freertos/portable/GCC/RX100|ext/freertos/portable/GCC/RL78|ext/freertos/portable/GCC/PPC440_Xilinx|ext/freertos/portable/GCC/PPC405_Xilinx|ext/freertos/portable/GCC/NiosII|ext/freertos/portable/GCC/MSP430F449|ext/freertos/portable/GCC/MicroBlazeV9|ext/freertos/portable/GCC/MicroBlazeV8|ext/freertos/portable/GCC/MicroBlaze|ext/freertos/portable/GCC/MCF5235|ext/freertos/portable/GCC/IA32_flat|ext/freertos/portable/GCC/HCS12|ext/freertos/portable/GCC/H8S2329|ext/freertos/portable/GCC/CORTUS_APS3|ext/freertos/portable/GCC/ColdFire_V2|ext/freertos/portable/GCC/AVR32_UC3|ext/freertos/portable/GCC/AVR_Mega0|ext/freertos/portable/GCC/AVR_AVRDx|ext/freertos/portable/GCC/ATMega323|ext/freertos/portable/GCC/ARM7_LPC23xx|ext/freertos/portable/GCC/ARM7_LPC2000|ext/freertos/portable/GCC/ARM7_AT91SAM7S|ext/freertos/portable/GCC/ARM7_AT91FR40008|ext/freertos/portable/GCC/ARM_CRx_No_GIC|ext/freertos/portable/GCC/ARM_CR5|ext/freertos/portable/GCC/ARM_CM7|ext/freertos/portable/GCC/ARM_CM4F|ext/freertos/portable/GCC/ARM_CM4_MPU|ext/freertos/portable/GCC/ARM_CM33_NTZ|ext/freertos/portable/GCC/ARM_CM33|ext/freertos/portable/GCC/ARM_CM3_MPU|ext/freertos/portable/GCC/ARM_CM3|ext/freertos/portable/GCC/ARM_CM23_NTZ|ext/freertos/portable/GCC/ARM_CM23|ext/freertos/portable/GCC/ARM_CM0|ext/freertos/portable/GCC/ARM_CA9|ext/freertos/portable/GCC/ARM_CA53_64_BIT|ext/freertos/portable/WizC|ext/freertos/portable/ThirdParty|ext/freertos/portable/Tasking|ext/freertos/portable/Softune|ext/freertos/portable/SDCC|ext/freertos/portable/RVDS|ext/freertos/portable/Rowley|ext/freertos/portable/Renesas|ext/freertos/portable/Paradigm|ext/freertos/portable/oWatcom|ext/freertos/portable/MSVC-MingW|ext/freertos/portable/MPLAB|ext/freertos/portable/MikroC|ext/freertos/portable/Keil|ext/freertos/portable/IAR|ext/freertos/portable/Common|ext/freertos/portable/CodeWarrior|ext/freertos/portable/CCS|ext/freertos/portable/BCC|ext/freertos/portable/ARMv8M|ext/freertos/portable/ARMClang" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name=""/>
355+
</sourceEntries>
356+
</configuration>
357+
</storageModule>
358+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
359+
</cconfiguration>
301360
</storageModule>
302361
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
303362
<project id="multizone-sdk.null.984752857" name="multizone-sdk"/>
@@ -310,6 +369,12 @@
310369
<configuration configurationName="X300">
311370
<resource resourceType="PROJECT" workspacePath="/multizone-sdk"/>
312371
</configuration>
372+
<configuration configurationName="Multiple configurations">
373+
<resource resourceType="PROJECT" workspacePath="/multizone-sdk"/>
374+
</configuration>
375+
<configuration configurationName="E21">
376+
<resource resourceType="PROJECT" workspacePath="/multizone-sdk"/>
377+
</configuration>
313378
<configuration configurationName="FE310">
314379
<resource resourceType="PROJECT" workspacePath="/multizone-sdk"/>
315380
</configuration>
@@ -353,6 +418,9 @@
353418
</storageModule>
354419
<storageModule moduleId="scannerConfiguration">
355420
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
421+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.cross.base.1603369180.590572468.475102828;cdt.managedbuild.toolchain.gnu.cross.base.1603369180.590572468.475102828.;cdt.managedbuild.tool.gnu.cross.c.compiler.1155518640;cdt.managedbuild.tool.gnu.c.compiler.input.1773950353">
422+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
423+
</scannerConfigBuildInfo>
356424
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.cross.base.1603369180.590572468;cdt.managedbuild.toolchain.gnu.cross.base.1603369180.590572468.;cdt.managedbuild.tool.gnu.cross.c.compiler.1920180134;cdt.managedbuild.tool.gnu.c.compiler.input.1991248588">
357425
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
358426
</scannerConfigBuildInfo>

.settings/language.settings.xml

+15-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
55
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
66
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
7-
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1354299396477282116" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -march=rv32i -mabi=ilp32 -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
7+
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1356915691844643014" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -march=rv32i -mabi=ilp32 -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
88
<language-scope id="org.eclipse.cdt.core.gcc"/>
99
<language-scope id="org.eclipse.cdt.core.g++"/>
1010
</provider>
@@ -14,7 +14,7 @@
1414
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
1515
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
1616
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
17-
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1349725499485729028" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
17+
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1352341794853089926" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
1818
<language-scope id="org.eclipse.cdt.core.gcc"/>
1919
<language-scope id="org.eclipse.cdt.core.g++"/>
2020
</provider>
@@ -24,7 +24,7 @@
2424
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
2525
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
2626
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
27-
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1354299396477282116" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -march=rv32i -mabi=ilp32 -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true" store-entries-with-project="false">
27+
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1356915691844643014" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -march=rv32i -mabi=ilp32 -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true" store-entries-with-project="false">
2828
<language-scope id="org.eclipse.cdt.core.gcc"/>
2929
<language-scope id="org.eclipse.cdt.core.g++"/>
3030
</provider>
@@ -34,7 +34,7 @@
3434
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
3535
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
3636
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
37-
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1354299396477282116" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -march=rv32i -mabi=ilp32 -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true" store-entries-with-project="false">
37+
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1356915691844643014" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -march=rv32i -mabi=ilp32 -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true" store-entries-with-project="false">
3838
<language-scope id="org.eclipse.cdt.core.gcc"/>
3939
<language-scope id="org.eclipse.cdt.core.g++"/>
4040
</provider>
@@ -44,7 +44,17 @@
4444
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
4545
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
4646
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
47-
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1354299396477282116" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -march=rv32i -mabi=ilp32 -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true" store-entries-with-project="false">
47+
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1356915691844643014" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -march=rv32i -mabi=ilp32 -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true" store-entries-with-project="false">
48+
<language-scope id="org.eclipse.cdt.core.gcc"/>
49+
<language-scope id="org.eclipse.cdt.core.g++"/>
50+
</provider>
51+
</extension>
52+
</configuration>
53+
<configuration id="cdt.managedbuild.toolchain.gnu.cross.base.1603369180.590572468.475102828" name="E21">
54+
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
55+
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
56+
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
57+
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1356915691844643014" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -march=rv32i -mabi=ilp32 -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true" store-entries-with-project="false">
4858
<language-scope id="org.eclipse.cdt.core.gcc"/>
4959
<language-scope id="org.eclipse.cdt.core.g++"/>
5060
</provider>

0 commit comments

Comments
 (0)