From 065e5e98c9f2ec406d661b1ce544e967d5324603 Mon Sep 17 00:00:00 2001 From: Ross Thompson Date: Mon, 24 Jul 2023 10:46:49 -0500 Subject: [PATCH 01/59] Improved timing constraints for arty a7 to push clock speed to 20Mhz. --- fpga/constraints/constraints-ArtyA7.xdc | 16 ++++++++-------- fpga/generator/xlnx_mmcm.tcl | 2 +- linux/devicetree/wally-artya7.dts | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/fpga/constraints/constraints-ArtyA7.xdc b/fpga/constraints/constraints-ArtyA7.xdc index 292fd9f5e..3d152de58 100644 --- a/fpga/constraints/constraints-ArtyA7.xdc +++ b/fpga/constraints/constraints-ArtyA7.xdc @@ -20,7 +20,7 @@ set_property IOSTANDARD LVCMOS33 [get_ports {GPI[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {GPI[0]}] set_input_delay -clock [get_clocks clk_out3_xlnx_mmcm] -min -add_delay 0.000 [get_ports {GPI[*]}] set_input_delay -clock [get_clocks clk_out3_xlnx_mmcm] -max -add_delay 0.000 [get_ports {GPI[*]}] -set_max_delay -from [get_ports {GPI[*]}] 10.000 +set_max_delay -from [get_ports {GPI[*]}] 20.000 ##### GPO #### set_property PACKAGE_PIN G6 [get_ports {GPO[0]}] @@ -33,17 +33,17 @@ set_property IOSTANDARD LVCMOS33 [get_ports {GPO[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {GPO[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {GPO[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {GPO[0]}] -set_max_delay -to [get_ports {GPO[*]}] 10.000 -set_output_delay -clock [get_clocks clk_out3_xlnx_mmcm] -min -add_delay -5.000 [get_ports {GPO[*]}] -set_output_delay -clock [get_clocks clk_out3_xlnx_mmcm] -max -add_delay -5.000 [get_ports {GPO[*]}] +set_max_delay -to [get_ports {GPO[*]}] 20.000 +set_output_delay -clock [get_clocks clk_out3_xlnx_mmcm] -min -add_delay 0.000 [get_ports {GPO[*]}] +set_output_delay -clock [get_clocks clk_out3_xlnx_mmcm] -max -add_delay 0.000 [get_ports {GPO[*]}] ##### UART ##### # *** IOSTANDARD is probably wrong set_property PACKAGE_PIN A9 [get_ports UARTSin] set_property PACKAGE_PIN D10 [get_ports UARTSout] -set_max_delay -from [get_ports UARTSin] 14.000 -set_max_delay -to [get_ports UARTSout] 14.000 +set_max_delay -from [get_ports UARTSin] 20.000 +set_max_delay -to [get_ports UARTSout] 20.000 set_property IOSTANDARD LVCMOS33 [get_ports UARTSin] set_property IOSTANDARD LVCMOS33 [get_ports UARTSout] set_property DRIVE 4 [get_ports UARTSout] @@ -57,7 +57,7 @@ set_output_delay -clock [get_clocks clk_out3_xlnx_mmcm] -max -add_delay 0.000 [g #************** reset is inverted set_input_delay -clock [get_clocks clk_out3_xlnx_mmcm] -min -add_delay 2.000 [get_ports resetn] set_input_delay -clock [get_clocks clk_out3_xlnx_mmcm] -max -add_delay 2.000 [get_ports resetn] -set_max_delay -from [get_ports resetn] 15.000 +set_max_delay -from [get_ports resetn] 20.000 set_false_path -from [get_ports resetn] set_property PACKAGE_PIN C2 [get_ports {resetn}] set_property IOSTANDARD LVCMOS33 [get_ports {resetn}] @@ -65,7 +65,7 @@ set_property IOSTANDARD LVCMOS33 [get_ports {resetn}] set_input_delay -clock [get_clocks clk_out3_xlnx_mmcm] -min -add_delay 2.000 [get_ports south_reset] set_input_delay -clock [get_clocks clk_out3_xlnx_mmcm] -max -add_delay 2.000 [get_ports south_reset] -set_max_delay -from [get_ports south_reset] 15.000 +set_max_delay -from [get_ports south_reset] 20.000 set_false_path -from [get_ports south_reset] set_property PACKAGE_PIN D9 [get_ports {south_reset}] set_property IOSTANDARD LVCMOS33 [get_ports {south_reset}] diff --git a/fpga/generator/xlnx_mmcm.tcl b/fpga/generator/xlnx_mmcm.tcl index 66958c954..2f003e7a5 100644 --- a/fpga/generator/xlnx_mmcm.tcl +++ b/fpga/generator/xlnx_mmcm.tcl @@ -15,7 +15,7 @@ set_property -dict [list CONFIG.PRIM_IN_FREQ {100.000} \ CONFIG.CLKOUT4_USED {false} \ CONFIG.CLKOUT1_REQUESTED_OUT_FREQ {166.66667} \ CONFIG.CLKOUT2_REQUESTED_OUT_FREQ {200} \ - CONFIG.CLKOUT3_REQUESTED_OUT_FREQ {17} \ + CONFIG.CLKOUT3_REQUESTED_OUT_FREQ {20} \ CONFIG.CLKIN1_JITTER_PS {10.0} \ ] [get_ips $ipName] diff --git a/linux/devicetree/wally-artya7.dts b/linux/devicetree/wally-artya7.dts index f2d0b3359..73c5a5196 100644 --- a/linux/devicetree/wally-artya7.dts +++ b/linux/devicetree/wally-artya7.dts @@ -21,8 +21,8 @@ cpus { #address-cells = <0x01>; #size-cells = <0x00>; - clock-frequency = <0x1036640>; - timebase-frequency = <0x1036640>; + clock-frequency = <0x1312D00>; + timebase-frequency = <0x1312D00>; cpu@0 { phandle = <0x01>; @@ -51,7 +51,7 @@ uart@10000000 { interrupts = <0x0a>; interrupt-parent = <0x03>; - clock-frequency = <0x1036640>; + clock-frequency = <0x1312D00>; reg = <0x00 0x10000000 0x00 0x100>; compatible = "ns16550a"; }; From e99c6e5e1dc08b80510926f015d8567500e30ce1 Mon Sep 17 00:00:00 2001 From: Ross Thompson Date: Mon, 24 Jul 2023 11:50:00 -0500 Subject: [PATCH 02/59] Updated arty a7 device clock speed for 20Mhz. --- linux/devicetree/wally-artya7.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/devicetree/wally-artya7.dts b/linux/devicetree/wally-artya7.dts index cb74551e4..6c812f0f9 100644 --- a/linux/devicetree/wally-artya7.dts +++ b/linux/devicetree/wally-artya7.dts @@ -74,7 +74,7 @@ fifo-depth = <256>; bus-width = <4>; interrupt-parent = <0x03>; - clock = <0x1036640>; + clock = <0x1312D00>; max-frequency = <0xA7D8C0>; cap-sd-highspeed; cap-mmc-highspeed; From 208e1e480337dcaed9771309ea6bba53aedfcc5c Mon Sep 17 00:00:00 2001 From: David Harris Date: Mon, 24 Jul 2023 11:32:46 -0700 Subject: [PATCH 03/59] Fixed synthesis Makefile to match new configuration --- synthDC/Makefile | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/synthDC/Makefile b/synthDC/Makefile index d29c11332..5a723d4c3 100755 --- a/synthDC/Makefile +++ b/synthDC/Makefile @@ -44,7 +44,7 @@ DIRS = $(DIRS32) $(DIRS64) # bpred: # @$(foreach kval, $(k), rm -rf $(CONFIGDIR)/rv64gc_bpred_$(kval);) # @$(foreach kval, $(k), cp -r $(CONFIGDIR)/rv64gc $(CONFIGDIR)/rv64gc_bpred_$(kval);) -# @$(foreach kval, $(k), sed -i 's/BPRED_SIZE.*/BPRED_SIZE $(kval)/g' $(CONFIGDIR)/rv64gc_bpred_$(kval)/wally-config.vh;) +# @$(foreach kval, $(k), sed -i 's/BPRED_SIZE.*/BPRED_SIZE $(kval)/g' $(CONFIGDIR)/rv64gc_bpred_$(kval)/config.vh;) # @$(foreach kval, $(k), make synth DESIGN=wallypipelinedcore CONFIG=rv64gc_bpred_$(kval) TECH=sky90 FREQ=500 MAXCORES=4 --jobs;) configs: $(CONFIG) @@ -55,11 +55,11 @@ $(CONFIG): # adjust DTIM and IROM to reasonable values depending on config ifneq ($(filter $(CONFIG), $(DIRS32)),) - sed -i "s/DTIM_RANGE.*/DTIM_RANGE 34\'h01FF/g" $(CONFIGDIR)/wally-config.vh - sed -i "s/IROM_RANGE.*/IROM_RANGE 34\'h01FF/g" $(CONFIGDIR)/wally-config.vh + sed -i "s/DTIM_RANGE.*/DTIM_RANGE 34\'h01FF/g" $(CONFIGDIR)/config.vh + sed -i "s/IROM_RANGE.*/IROM_RANGE 34\'h01FF/g" $(CONFIGDIR)/config.vh else ifneq ($(filter $(CONFIG), $(DIRS64)),) - sed -i "s/DTIM_RANGE.*/DTIM_RANGE 56\'h01FF/g" $(CONFIGDIR)/wally-config.vh - sed -i "s/IROM_RANGE.*/IROM_RANGE 56\'h01FF/g" $(CONFIGDIR)/wally-config.vh + sed -i "s/DTIM_RANGE.*/DTIM_RANGE 56\'h01FF/g" $(CONFIGDIR)/config.vh + sed -i "s/IROM_RANGE.*/IROM_RANGE 56\'h01FF/g" $(CONFIGDIR)/config.vh else $(info $(CONFIG) does not exist in $(DIRS32) or $(DIRS64)) @echo "Config not in list, RAM_RANGE will be unmodified" @@ -67,18 +67,18 @@ endif # if USESRAM = 1, set that in the config file, otherwise reduce sizes ifeq ($(USESRAM), 1) - sed -i 's/USE_SRAM.*/USE_SRAM 1/g' $(CONFIGDIR)/wally-config.vh + sed -i 's/USE_SRAM.*/USE_SRAM 1/g' $(CONFIGDIR)/config.vh else - sed -i 's/WAYSIZEINBYTES.*/WAYSIZEINBYTES 512/g' $(CONFIGDIR)/wally-config.vh - sed -i 's/NUMWAYS.*/NUMWAYS 1/g' $(CONFIGDIR)/wally-config.vh - sed -i 's/BPRED_SIZE.*/BPRED_SIZE 5/g' $(CONFIGDIR)/wally-config.vh - sed -i 's/BTB_SIZE.*/BTB_SIZE 5/g' $(CONFIGDIR)/wally-config.vh + sed -i 's/WAYSIZEINBYTES.*/WAYSIZEINBYTES 512/g' $(CONFIGDIR)/config.vh + sed -i 's/NUMWAYS.*/NUMWAYS 1/g' $(CONFIGDIR)/config.vh + sed -i 's/BPRED_SIZE.*/BPRED_SIZE 5/g' $(CONFIGDIR)/config.vh + sed -i 's/BTB_SIZE.*/BTB_SIZE 5/g' $(CONFIGDIR)/config.vh ifneq ($(filter $(CONFIG), $(DIRS32)),) - sed -i "s/BOOTROM_RANGE.*/BOOTROM_RANGE 34\'h01FF/g" $(CONFIGDIR)/wally-config.vh - sed -i "s/UNCORE_RAM_RANGE.*/UNCORE_RAM_RANGE 34\'h01FF/g" $(CONFIGDIR)/wally-config.vh + sed -i "s/BOOTROM_RANGE.*/BOOTROM_RANGE 34\'h01FF/g" $(CONFIGDIR)/config.vh + sed -i "s/UNCORE_RAM_RANGE.*/UNCORE_RAM_RANGE 34\'h01FF/g" $(CONFIGDIR)/config.vh else ifneq ($(filter $(CONFIG), $(DIRS64)),) - sed -i "s/BOOTROM_RANGE.*/BOOTROM_RANGE 56\'h01FF/g" $(CONFIGDIR)/wally-config.vh - sed -i "s/UNCORE_RAM_RANGE.*/UNCORE_RAM_RANGE 56\'h01FF/g" $(CONFIGDIR)/wally-config.vh + sed -i "s/BOOTROM_RANGE.*/BOOTROM_RANGE 56\'h01FF/g" $(CONFIGDIR)/config.vh + sed -i "s/UNCORE_RAM_RANGE.*/UNCORE_RAM_RANGE 56\'h01FF/g" $(CONFIGDIR)/config.vh endif endif @@ -94,20 +94,20 @@ endif ifneq ($(MOD), orig) # PMP 0 - sed -i 's/PMP_ENTRIES \(64\|16\|0\)/PMP_ENTRIES 0/' $(CONFIGDIR)/wally-config.vh + sed -i 's/PMP_ENTRIES \(64\|16\|0\)/PMP_ENTRIES 0/' $(CONFIGDIR)/config.vh ifneq ($(MOD), PMP0) # no priv - sed -i 's/ZICSR_SUPPORTED *1/ZICSR_SUPPORTED 0/' $(CONFIGDIR)/wally-config.vh + sed -i 's/ZICSR_SUPPORTED *1/ZICSR_SUPPORTED 0/' $(CONFIGDIR)/config.vh ifneq ($(MOD), noPriv) # turn off FPU - sed -i 's/1 *<< *3/0 << 3/' $(CONFIGDIR)/wally-config.vh - sed -i 's/1 *<< *5/0 << 5/' $(CONFIGDIR)/wally-config.vh + sed -i 's/1 *<< *3/0 << 3/' $(CONFIGDIR)/config.vh + sed -i 's/1 *<< *5/0 << 5/' $(CONFIGDIR)/config.vh ifneq ($(MOD), noFPU) # no muldiv - sed -i 's/1 *<< *12/0 << 12/' $(CONFIGDIR)/wally-config.vh + sed -i 's/1 *<< *12/0 << 12/' $(CONFIGDIR)/config.vh ifneq ($(MOD), noMulDiv) # no atomic - sed -i 's/1 *<< *0/0 << 0/' $(CONFIGDIR)/wally-config.vh + sed -i 's/1 *<< *0/0 << 0/' $(CONFIGDIR)/config.vh endif endif endif From b1f7a5768fb30225498e91fdd6d31b163c2149e0 Mon Sep 17 00:00:00 2001 From: Ross Thompson Date: Mon, 24 Jul 2023 15:45:57 -0500 Subject: [PATCH 04/59] Removed all old references to the old flash card controller. Added git submodule for the flash card in addins. Replicated flash card top level for our changes into the fpga/src directory. --- .gitmodules | 3 + addins/vivado-risc-v | 1 + config/fpga/config.vh | 11 +- config/shared/parameter-defs.vh | 3 - fpga/generator/wally.tcl | 9 +- .../newsdc => fpga/src}/axi_sdc_controller.v | 0 pipelined/src/uncore/newsdc/license.txt | 502 ------------------ pipelined/src/uncore/newsdc/sd_cmd_master.v | 152 ------ .../src/uncore/newsdc/sd_cmd_serial_host.v | 263 --------- pipelined/src/uncore/newsdc/sd_data_master.v | 150 ------ .../src/uncore/newsdc/sd_data_serial_host.v | 311 ----------- pipelined/src/uncore/newsdc/sd_defines.h | 91 ---- src/cvw.sv | 3 - src/mmu/adrdecs.sv | 7 +- src/mmu/pmachecker.sv | 2 +- src/uncore/uncore.sv | 22 +- 16 files changed, 25 insertions(+), 1505 deletions(-) create mode 160000 addins/vivado-risc-v rename {pipelined/src/uncore/newsdc => fpga/src}/axi_sdc_controller.v (100%) delete mode 100644 pipelined/src/uncore/newsdc/license.txt delete mode 100644 pipelined/src/uncore/newsdc/sd_cmd_master.v delete mode 100644 pipelined/src/uncore/newsdc/sd_cmd_serial_host.v delete mode 100644 pipelined/src/uncore/newsdc/sd_data_master.v delete mode 100644 pipelined/src/uncore/newsdc/sd_data_serial_host.v delete mode 100644 pipelined/src/uncore/newsdc/sd_defines.h diff --git a/.gitmodules b/.gitmodules index 76e0736f1..9a4c7fbb8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -30,3 +30,6 @@ [submodule "addins/vivado-boards"] path = addins/vivado-boards url = https://github.com/Digilent/vivado-boards/ +[submodule "addins/vivado-risc-v"] + path = addins/vivado-risc-v + url = https://github.com/eugene-tarassov/vivado-risc-v.git diff --git a/addins/vivado-risc-v b/addins/vivado-risc-v new file mode 160000 index 000000000..c76a8613a --- /dev/null +++ b/addins/vivado-risc-v @@ -0,0 +1 @@ +Subproject commit c76a8613a177b3a04face2cb8e15dd07a8d2fc40 diff --git a/config/fpga/config.vh b/config/fpga/config.vh index bd78ec397..86b88a3d6 100644 --- a/config/fpga/config.vh +++ b/config/fpga/config.vh @@ -130,14 +130,9 @@ localparam PLIC_SUPPORTED = 1'b1; localparam logic [63:0] PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; -localparam SDC_SUPPORTED = 1'b0; -localparam logic [63:0] SDC_BASE = 64'h00012100; -localparam logic [63:0] SDC_RANGE = 64'h0000001F; - -// Temporary Boot Process Stuff -localparam SDC2_SUPPORTED = 1'b1; -localparam logic [63:0] SDC2_BASE = 64'h00013000; -localparam logic [63:0] SDC2_RANGE = 64'h0000007F; +localparam SDC_SUPPORTED = 1'b1; +localparam logic [63:0] SDC_BASE = 64'h00013000; +localparam logic [63:0] SDC_RANGE = 64'h0000007F; // Test modes diff --git a/config/shared/parameter-defs.vh b/config/shared/parameter-defs.vh index 8a50483a8..6e01aabb4 100644 --- a/config/shared/parameter-defs.vh +++ b/config/shared/parameter-defs.vh @@ -72,9 +72,6 @@ parameter cvw_t P = '{ SDC_SUPPORTED : SDC_SUPPORTED, SDC_BASE : SDC_BASE, SDC_RANGE : SDC_RANGE, - SDC2_SUPPORTED : SDC2_SUPPORTED, - SDC2_BASE : SDC2_BASE, - SDC2_RANGE : SDC2_RANGE, GPIO_LOOPBACK_TEST : GPIO_LOOPBACK_TEST, UART_PRESCALE : UART_PRESCALE , PLIC_NUM_SRC : PLIC_NUM_SRC, diff --git a/fpga/generator/wally.tcl b/fpga/generator/wally.tcl index 6d8017e7c..d4e3dc2df 100644 --- a/fpga/generator/wally.tcl +++ b/fpga/generator/wally.tcl @@ -41,9 +41,14 @@ if {$board=="ArtyA7"} { # read in all other rtl read_verilog -sv [glob -type f ../src/CopiedFiles_do_not_add_to_repo/*/*.sv ../src/CopiedFiles_do_not_add_to_repo/*/*/*.sv] -read_verilog [glob -type f ../../pipelined/src/uncore/newsdc/*.v] +# *** Once the sdc is updated to use ahb changes these to system verilog. +read_verilog [glob -type f ../src/axi_sdc_controller.v] +read_verilog [glob -type f ../../addins/vivado-risc-v/sdc/sd_cmd_master.v] +read_verilog [glob -type f ../../addins/vivado-risc-v/sdc/sd_cmd_serial_host.v] +read_verilog [glob -type f ../../addins/vivado-risc-v/sdc/sd_data_master.v] +read_verilog [glob -type f ../../addins/vivado-risc-v/sdc/sd_data_serial_host.v] -set_property include_dirs {../../config/fpga ../../config/shared} [current_fileset] +set_property include_dirs {../../config/fpga ../../config/shared ../../addins/vivado-risc-v/sdc} [current_fileset] if {$board=="ArtyA7"} { add_files -fileset constrs_1 -norecurse ../constraints/constraints-$board.xdc diff --git a/pipelined/src/uncore/newsdc/axi_sdc_controller.v b/fpga/src/axi_sdc_controller.v similarity index 100% rename from pipelined/src/uncore/newsdc/axi_sdc_controller.v rename to fpga/src/axi_sdc_controller.v diff --git a/pipelined/src/uncore/newsdc/license.txt b/pipelined/src/uncore/newsdc/license.txt deleted file mode 100644 index 4362b4915..000000000 --- a/pipelined/src/uncore/newsdc/license.txt +++ /dev/null @@ -1,502 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! diff --git a/pipelined/src/uncore/newsdc/sd_cmd_master.v b/pipelined/src/uncore/newsdc/sd_cmd_master.v deleted file mode 100644 index 6b46c786d..000000000 --- a/pipelined/src/uncore/newsdc/sd_cmd_master.v +++ /dev/null @@ -1,152 +0,0 @@ -////////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2013-2022 Authors //// -//// //// -//// Based on original work by //// -//// Adam Edvardsson (adam.edvardsson@orsoc.se) //// -//// //// -//// Copyright (C) 2009 Authors //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer. //// -//// //// -//// This source file is free software; you can redistribute it //// -//// and/or modify it under the terms of the GNU Lesser General //// -//// Public License as published by the Free Software Foundation; //// -//// either version 2.1 of the License, or (at your option) any //// -//// later version. //// -//// //// -//// This source is distributed in the hope that it will be //// -//// useful, but WITHOUT ANY WARRANTY; without even the implied //// -//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// -//// PURPOSE. See the GNU Lesser General Public License for more //// -//// details. //// -//// //// -//// You should have received a copy of the GNU Lesser General //// -//// Public License along with this source; if not, download it //// -//// from https://www.gnu.org/licenses/ //// -//// //// -////////////////////////////////////////////////////////////////////// -`include "sd_defines.h" - -module sd_cmd_master( - input clock, - input clock_posedge, - input reset, - input start, - input int_status_rst, - output [1:0] setting, - output reg start_xfr, - output reg go_idle, - output reg [39:0] cmd, - input [119:0] response, - input crc_error, - input index_ok, - input finish, - input busy, // direct signal from data sd data input (data[0]) - //input card_detect, - input [31:0] argument, - input [`CMD_REG_SIZE-1:0] command, - input [`CMD_TIMEOUT_W-1:0] timeout, - output [`INT_CMD_SIZE-1:0] int_status, - output reg [31:0] response_0, - output reg [31:0] response_1, - output reg [31:0] response_2, - output reg [31:0] response_3 -); - -reg expect_response; -reg long_response; -reg [`INT_CMD_SIZE-1:0] int_status_reg; -reg [`CMD_TIMEOUT_W-1:0] watchdog; -reg watchdog_enable; - -reg [2:0] state; -parameter IDLE = 3'b001; -parameter EXECUTE = 3'b010; -parameter BUSY_CHECK = 3'b100; - -assign setting[1:0] = {long_response, expect_response}; -assign int_status = state == IDLE ? int_status_reg : 5'h0; - -always @(posedge clock) begin - if (reset) begin - response_0 <= 0; - response_1 <= 0; - response_2 <= 0; - response_3 <= 0; - int_status_reg <= 0; - expect_response <= 0; - long_response <= 0; - cmd <= 0; - start_xfr <= 0; - watchdog <= 0; - watchdog_enable <= 0; - go_idle <= 0; - state <= IDLE; - end else if (clock_posedge) begin - case (state) - IDLE: begin - go_idle <= 0; - if (command[`CMD_RESPONSE_CHECK] == 2'b10 || command[`CMD_RESPONSE_CHECK] == 2'b11) begin - expect_response <= 1; - long_response <= 1; - end else if (command[`CMD_RESPONSE_CHECK] == 2'b01) begin - expect_response <= 1; - long_response <= 0; - end else begin - expect_response <= 0; - long_response <= 0; - end - cmd[39:38] <= 2'b01; - cmd[37:32] <= command[`CMD_INDEX]; - cmd[31:0] <= argument; - watchdog <= 0; - watchdog_enable <= timeout != 0; - if (start) begin - start_xfr <= 1; - int_status_reg <= 0; - state <= EXECUTE; - end - end - EXECUTE: begin - start_xfr <= 0; - if (watchdog_enable && watchdog >= timeout) begin - int_status_reg[`INT_CMD_CTE] <= 1; - int_status_reg[`INT_CMD_EI] <= 1; - go_idle <= 1; - state <= IDLE; - end else if (finish) begin - if (command[`CMD_CRC_CHECK] && crc_error) begin - int_status_reg[`INT_CMD_CCRCE] <= 1; - int_status_reg[`INT_CMD_EI] <= 1; - end - if (command[`CMD_IDX_CHECK] && !index_ok) begin - int_status_reg[`INT_CMD_CIE] <= 1; - int_status_reg[`INT_CMD_EI] <= 1; - end - int_status_reg[`INT_CMD_CC] <= 1; - if (expect_response) begin - response_0 <= response[119:88]; - response_1 <= response[87:56]; - response_2 <= response[55:24]; - response_3 <= {response[23:0], 8'h00}; - end - if (command[`CMD_BUSY_CHECK]) state <= BUSY_CHECK; - else state <= IDLE; - end else if (watchdog_enable) begin - watchdog <= watchdog + 1; - end - end - BUSY_CHECK: begin - if (!busy) state <= IDLE; - end - endcase - if (int_status_rst) - int_status_reg <= 0; - end -end - -endmodule diff --git a/pipelined/src/uncore/newsdc/sd_cmd_serial_host.v b/pipelined/src/uncore/newsdc/sd_cmd_serial_host.v deleted file mode 100644 index 0cebb4f2e..000000000 --- a/pipelined/src/uncore/newsdc/sd_cmd_serial_host.v +++ /dev/null @@ -1,263 +0,0 @@ -////////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2013-2022 Authors //// -//// //// -//// Based on original work by //// -//// Adam Edvardsson (adam.edvardsson@orsoc.se) //// -//// //// -//// Copyright (C) 2009 Authors //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer. //// -//// //// -//// This source file is free software; you can redistribute it //// -//// and/or modify it under the terms of the GNU Lesser General //// -//// Public License as published by the Free Software Foundation; //// -//// either version 2.1 of the License, or (at your option) any //// -//// later version. //// -//// //// -//// This source is distributed in the hope that it will be //// -//// useful, but WITHOUT ANY WARRANTY; without even the implied //// -//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// -//// PURPOSE. See the GNU Lesser General Public License for more //// -//// details. //// -//// //// -//// You should have received a copy of the GNU Lesser General //// -//// Public License along with this source; if not, download it //// -//// from https://www.gnu.org/licenses/ //// -//// //// -////////////////////////////////////////////////////////////////////// - -module sd_cmd_serial_host ( - //---------------Input ports--------------- - input clock, - input clock_posedge, - input clock_data_in, - input reset, - input [1:0] setting, - input [39:0] cmd, - input start, - input cmd_i, - //---------------Output ports--------------- - output reg [119:0] response, - output reg finish, - output reg crc_ok, - output reg index_ok, - output reg cmd_oe, - output reg cmd_o -); - -//-------------Internal Constant------------- -parameter INIT_DELAY = 4; -parameter BITS_TO_SEND = 48; -parameter CMD_SIZE = 40; -parameter RESP_SIZE = 128; - -//---------------Internal variable----------- -reg cmd_dat_reg; -integer resp_len; -reg with_response; -reg [CMD_SIZE-1:0] cmd_buff; -reg [RESP_SIZE-1:0] resp_buff; -integer resp_idx; -//CRC -reg crc_rst; -reg [6:0]crc_in; -wire [6:0] crc_val; -reg crc_enable; -reg crc_bit; -reg crc_match; -//-Internal Counterns -integer counter; -//-State Machine -parameter - STATE_SIZE = 8, - INIT = 8'b00000001, - IDLE = 8'b00000010, - SETUP_CRC = 8'b00000100, - WRITE = 8'b00001000, - READ_WAIT = 8'b00010000, - READ = 8'b00100000, - FINISH_WR = 8'b01000000, - FINISH_WO = 8'b10000000; -reg [STATE_SIZE-1:0] state; - -//Misc -`define cmd_idx (CMD_SIZE-1-counter) - -//sd cmd input pad register -always @(posedge clock) begin - if (clock_data_in) cmd_dat_reg <= cmd_i; -end - -//------------------------------------------ -sd_crc_7 CRC_7( - crc_bit, - crc_enable & clock_posedge, - clock, - crc_rst, - crc_val); - -//------------------------------------------ - -always @(posedge clock) begin - if (reset) begin - resp_len <= 0; - with_response <= 0; - cmd_buff <= 0; - crc_enable <= 0; - resp_idx <= 0; - cmd_oe <= 1; - cmd_o <= 1; - resp_buff <= 0; - finish <= 0; - crc_rst <= 1; - crc_bit <= 0; - crc_in <= 0; - response <= 0; - index_ok <= 0; - crc_ok <= 0; - crc_match <= 0; - counter <= 0; - state <= INIT; - end else if (clock_posedge) begin - case (state) - INIT: begin - counter <= counter+1; - // Pull cmd line up - cmd_oe <= 1; - cmd_o <= 1; - if (counter >= INIT_DELAY) state <= IDLE; - end - IDLE: begin - cmd_oe <= 0; - counter <= 0; - crc_rst <= 1; - crc_enable <= 0; - response <= 0; - resp_idx <= 0; - crc_ok <= 0; - index_ok <= 0; - finish <= 0; - if (start) begin - resp_len <= setting[1] ? 127 : 39; - with_response <= setting[0]; - cmd_buff <= cmd; - state <= SETUP_CRC; - end - end - SETUP_CRC: begin - crc_rst <= 0; - crc_enable <= 1; - crc_bit <= cmd_buff[`cmd_idx]; - state <= WRITE; - end - WRITE: begin - if (counter < BITS_TO_SEND-8) begin // 1->40 CMD, (41 >= CNT && CNT <=47) CRC, 48 stop_bit - cmd_oe <= 1; - cmd_o <= cmd_buff[`cmd_idx]; - if (counter < BITS_TO_SEND-9) begin //1 step ahead - crc_bit <= cmd_buff[`cmd_idx-1]; - end else begin - crc_enable <= 0; - end - end else if (counter < BITS_TO_SEND-1) begin - cmd_oe <= 1; - crc_enable <= 0; - cmd_o <= crc_val[BITS_TO_SEND-counter-2]; - end else if (counter == BITS_TO_SEND-1) begin - cmd_oe <= 1; - cmd_o <= 1'b1; - end else begin - cmd_oe <= 0; - cmd_o <= 1'b1; - end - counter <= counter + 1; - if (counter >= BITS_TO_SEND && with_response) state <= READ_WAIT; - else if (counter >= BITS_TO_SEND) state <= FINISH_WO; - end - READ_WAIT: begin - crc_enable <= 0; - crc_rst <= 1; - counter <= 1; - cmd_oe <= 0; - resp_buff[RESP_SIZE-1] <= cmd_dat_reg; - if (!cmd_dat_reg) state <= READ; - end - FINISH_WO: begin - finish <= 1; - crc_enable <= 0; - crc_rst <= 1; - counter <= 0; - cmd_oe <= 0; - state <= IDLE; - end - READ: begin - crc_rst <= 0; - crc_enable <= (resp_len != RESP_SIZE-1 || counter > 7); - cmd_oe <= 0; - if (counter <= resp_len) begin - if (counter < 8) //1+1+6 (S,T,Index) - resp_buff[RESP_SIZE-1-counter] <= cmd_dat_reg; - else begin - resp_idx <= resp_idx + 1; - resp_buff[RESP_SIZE-9-resp_idx] <= cmd_dat_reg; - end - crc_bit <= cmd_dat_reg; - end else if (counter-resp_len <= 7) begin - crc_in[(resp_len+7)-(counter)] <= cmd_dat_reg; - crc_enable <= 0; - end else begin - crc_enable <= 0; - crc_match <= crc_in == crc_val; - end - counter <= counter + 1; - if (counter >= resp_len+8) state <= FINISH_WR; - end - FINISH_WR: begin - index_ok <= cmd_buff[37:32] == resp_buff[125:120]; - crc_ok <= crc_match; - finish <= 1; - crc_enable <= 0; - crc_rst <= 1; - counter <= 0; - cmd_oe <= 0; - response <= resp_buff[119:0]; - state <= IDLE; - end - default: - state <= INIT; - endcase - end -end - -endmodule - -module sd_crc_7( - input BITVAL, // Next input bit - input ENABLE, // Enable calculation - input BITSTRB, // Current bit valid (Clock) - input CLEAR, // Init CRC value - output reg [6:0] CRC // Current output CRC value -); - -wire inv; -assign inv = BITVAL ^ CRC[6]; - -always @(posedge BITSTRB or posedge CLEAR) begin - if (CLEAR) begin - CRC <= 0; - end else if (ENABLE == 1) begin - CRC[6] <= CRC[5]; - CRC[5] <= CRC[4]; - CRC[4] <= CRC[3]; - CRC[3] <= CRC[2] ^ inv; - CRC[2] <= CRC[1]; - CRC[1] <= CRC[0]; - CRC[0] <= inv; - end -end - -endmodule diff --git a/pipelined/src/uncore/newsdc/sd_data_master.v b/pipelined/src/uncore/newsdc/sd_data_master.v deleted file mode 100644 index 1fecea418..000000000 --- a/pipelined/src/uncore/newsdc/sd_data_master.v +++ /dev/null @@ -1,150 +0,0 @@ -////////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2013-2022 Authors //// -//// //// -//// Based on original work by //// -//// Adam Edvardsson (adam.edvardsson@orsoc.se) //// -//// //// -//// Copyright (C) 2009 Authors //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer. //// -//// //// -//// This source file is free software; you can redistribute it //// -//// and/or modify it under the terms of the GNU Lesser General //// -//// Public License as published by the Free Software Foundation; //// -//// either version 2.1 of the License, or (at your option) any //// -//// later version. //// -//// //// -//// This source is distributed in the hope that it will be //// -//// useful, but WITHOUT ANY WARRANTY; without even the implied //// -//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// -//// PURPOSE. See the GNU Lesser General Public License for more //// -//// details. //// -//// //// -//// You should have received a copy of the GNU Lesser General //// -//// Public License along with this source; if not, download it //// -//// from https://www.gnu.org/licenses/ //// -//// //// -////////////////////////////////////////////////////////////////////// -`include "sd_defines.h" - -module sd_data_master ( - input clock, - input clock_posedge, - input reset, - input start_tx, - input start_rx, - input [`DATA_TIMEOUT_W-1:0] timeout, - // Output to SD-Host Reg - output reg d_write, - output reg d_read, - // To fifo filler - (* mark_debug = "true" *) output reg en_tx_fifo, - output reg en_rx_fifo, - (* mark_debug = "true" *) input fifo_empty, - input fifo_ready, - input fifo_full, - (* mark_debug = "true" *) input bus_cycle, - // SD-DATA_Host - input xfr_complete, - input crc_error, - input bus_error, - // status output - output reg [`INT_DATA_SIZE-1:0] int_status, - input int_status_rst -); - -reg [3:0] state; -localparam IDLE = 4'b0001; -localparam START_TX_FIFO = 4'b0010; -localparam START_RX_FIFO = 4'b0100; -localparam DATA_TRANSFER = 4'b1000; - -(* mark_debug = "true" *) reg [`DATA_TIMEOUT_W-1:0] watchdog; -reg watchdog_enable; - -always @(posedge clock) begin - if (reset) begin - en_tx_fifo <= 0; - en_rx_fifo <= 0; - d_write <= 0; - d_read <= 0; - int_status <= 0; - watchdog <= 0; - watchdog_enable <= 0; - state <= IDLE; - end else if (clock_posedge) begin - case (state) - IDLE: begin - en_tx_fifo <= 0; - en_rx_fifo <= 0; - d_write <= 0; - d_read <= 0; - watchdog <= 0; - watchdog_enable <= timeout != 0; - if (start_tx) state <= START_TX_FIFO; - else if (start_rx) state <= START_RX_FIFO; - end - START_RX_FIFO: begin - en_rx_fifo <= 1; - en_tx_fifo <= 0; - d_read <= 1; - if (!xfr_complete) state <= DATA_TRANSFER; - end - START_TX_FIFO: begin - en_rx_fifo <= 0; - en_tx_fifo <= 1; - if (fifo_ready) begin - d_write <= 1; - if (!xfr_complete) state <= DATA_TRANSFER; - end - end - DATA_TRANSFER: begin - d_read <= 0; - d_write <= 0; - if (en_tx_fifo && fifo_empty) begin - int_status[`INT_DATA_CFE] <= 1; - int_status[`INT_DATA_EI] <= 1; - state <= IDLE; - // stop sd_data_serial_host - d_write <= 1; - d_read <= 1; - end else if (en_rx_fifo && fifo_full) begin - int_status[`INT_DATA_CFE] <= 1; - int_status[`INT_DATA_EI] <= 1; - state <= IDLE; - // stop sd_data_serial_host - d_write <= 1; - d_read <= 1; - end else if (watchdog_enable && watchdog >= timeout) begin - int_status[`INT_DATA_CTE] <= 1; - int_status[`INT_DATA_EI] <= 1; - state <= IDLE; - // stop sd_data_serial_host - d_write <= 1; - d_read <= 1; - end else if (xfr_complete && !bus_cycle && (en_tx_fifo || fifo_empty)) begin - state <= IDLE; - if (crc_error) begin - int_status[`INT_DATA_CCRCE] <= 1; - int_status[`INT_DATA_EI] <= 1; - end - if (bus_error) begin - int_status[`INT_DATA_CBE] <= 1; - int_status[`INT_DATA_EI] <= 1; - end - int_status[`INT_DATA_CC] <= 1; - end else if (watchdog_enable) begin - watchdog <= watchdog + 1; - end - end - endcase - if (int_status_rst) - int_status <= 0; - end -end - -endmodule diff --git a/pipelined/src/uncore/newsdc/sd_data_serial_host.v b/pipelined/src/uncore/newsdc/sd_data_serial_host.v deleted file mode 100644 index 62891d8b8..000000000 --- a/pipelined/src/uncore/newsdc/sd_data_serial_host.v +++ /dev/null @@ -1,311 +0,0 @@ -////////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2013-2022 Authors //// -//// //// -//// Based on original work by //// -//// Adam Edvardsson (adam.edvardsson@orsoc.se) //// -//// //// -//// Copyright (C) 2009 Authors //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer. //// -//// //// -//// This source file is free software; you can redistribute it //// -//// and/or modify it under the terms of the GNU Lesser General //// -//// Public License as published by the Free Software Foundation; //// -//// either version 2.1 of the License, or (at your option) any //// -//// later version. //// -//// //// -//// This source is distributed in the hope that it will be //// -//// useful, but WITHOUT ANY WARRANTY; without even the implied //// -//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// -//// PURPOSE. See the GNU Lesser General Public License for more //// -//// details. //// -//// //// -//// You should have received a copy of the GNU Lesser General //// -//// Public License along with this source; if not, download it //// -//// from https://www.gnu.org/licenses/ //// -//// //// -////////////////////////////////////////////////////////////////////// -`include "sd_defines.h" - -module sd_data_serial_host( - input clock, - input clock_posedge, - input clock_data_in, - input reset, - // Tx Fifo - input [31:0] data_in, - output reg rd, - // Rx Fifo - output reg [31:0] data_out, - output reg we, - // tristate data - output reg dat_oe, - output reg[3:0] dat_o, - input [3:0] dat_i, - // Controll signals - input [`BLKSIZE_W-1:0] blksize, - input bus_4bit, - input [`BLKCNT_W-1:0] blkcnt, - input [1:0] start, - input [1:0] byte_alignment, - output sd_data_busy, - output busy, - output reg crc_ok -); - -reg [3:0] DAT_dat_reg; -reg bus_4bit_reg; -reg crc_en; -reg crc_rst; -wire [15:0] crc_out [3:0]; -reg [`BLKSIZE_W+4-1:0] data_cycles; -reg [`BLKSIZE_W+4-1:0] transf_cnt; -reg [3:0] drt_bit; -reg [3:0] drt_reg; -(* mark_debug = "true" *) reg [`BLKCNT_W-1:0] blkcnt_reg; -reg [1:0] byte_alignment_reg; -reg [3:0] crc_bit; -reg [3:0] last_din; -reg [4:0] data_index; - -reg [6:0] state; -parameter IDLE = 7'b0000001; -parameter WRITE_DAT = 7'b0000010; -parameter WRITE_WAIT = 7'b0000100; -parameter WRITE_DRT = 7'b0001000; -parameter WRITE_BUSY = 7'b0010000; -parameter READ_WAIT = 7'b0100000; -parameter READ_DAT = 7'b1000000; - -// sd data input pad register -always @(posedge clock) begin - if (clock_data_in) DAT_dat_reg <= dat_i; -end - -genvar i; -generate - for (i=0; i<4; i=i+1) begin: CRC_16_gen - sd_crc_16 CRC_16_i (last_din[i], crc_en & clock_posedge, clock, crc_rst, crc_out[i]); - end -endgenerate - -assign busy = (state != IDLE); -assign sd_data_busy = !DAT_dat_reg[0]; - -always @(posedge clock) begin - if (reset) begin - state <= IDLE; - dat_oe <= 0; - crc_en <= 0; - crc_rst <= 1; - transf_cnt <= 0; - rd <= 0; - last_din <= 0; - crc_bit <= 0; - dat_o <= 4'b1111; - drt_bit <= 0; - drt_reg <= 0; - we <= 0; - data_out <= 0; - crc_ok <= 0; - data_index <= 0; - blkcnt_reg <= 0; - byte_alignment_reg <= 0; - data_cycles <= 0; - bus_4bit_reg <= 0; - end else if (clock_posedge) begin - case (state) - IDLE: begin - dat_oe <= 0; - dat_o <= 4'b1111; - transf_cnt <= 0; - crc_en <= 0; - crc_rst <= 1; - crc_bit <= 15; - we <= 0; - rd <= 0; - data_index <= 0; - blkcnt_reg <= blkcnt; - byte_alignment_reg <= byte_alignment; - data_cycles <= (bus_4bit ? {3'b000, blksize, 1'b0} + 2 : {1'b0, blksize, 3'b000} + 8); - bus_4bit_reg <= bus_4bit; - if (start == 2'b01) state <= WRITE_DAT; - else if (start == 2'b10) state <= READ_WAIT; - end - WRITE_DAT: begin - rd <= 0; - transf_cnt <= transf_cnt + 16'h1; - if (transf_cnt == 0) begin - crc_ok <= 0; - crc_bit <= 15; - end else if (transf_cnt == 1) begin - crc_rst <= 0; - crc_en <= 1; - if (bus_4bit_reg) begin - last_din <= { - data_in[31-(byte_alignment_reg << 3)], - data_in[30-(byte_alignment_reg << 3)], - data_in[29-(byte_alignment_reg << 3)], - data_in[28-(byte_alignment_reg << 3)] - }; - end else begin - last_din <= {3'h7, data_in[31-(byte_alignment_reg << 3)]}; - end - dat_oe <= 1; - dat_o <= bus_4bit_reg ? 4'h0 : 4'he; - data_index <= bus_4bit_reg ? {2'b00, byte_alignment_reg, 1'b1} : {byte_alignment_reg, 3'b001}; - end else if (transf_cnt <= data_cycles+1) begin - if (bus_4bit_reg) begin - last_din <= { - data_in[31-(data_index[2:0]<<2)], - data_in[30-(data_index[2:0]<<2)], - data_in[29-(data_index[2:0]<<2)], - data_in[28-(data_index[2:0]<<2)] - }; - if (data_index[2:0] == 3'h6 && transf_cnt <= data_cycles-1) rd <= 1; - end else begin - last_din <= {3'h7, data_in[31-data_index]}; - if (data_index == 30) rd <= 1; - end - data_index <= data_index + 5'h1; - dat_o <= last_din; - if (transf_cnt == data_cycles+1) crc_en <= 0; - end else if (transf_cnt <= data_cycles+17) begin - crc_en <= 0; - dat_o[0] <= crc_out[0][crc_bit]; - if (bus_4bit_reg) - dat_o[3:1] <= {crc_out[3][crc_bit], crc_out[2][crc_bit], crc_out[1][crc_bit]}; - crc_bit <= crc_bit - 1; - end else if (transf_cnt == data_cycles+18) begin - dat_o <= 4'hf; - end else if (transf_cnt == data_cycles+19) begin - dat_oe <= 0; - end else begin - state <= WRITE_WAIT; - end - end - WRITE_WAIT: begin - drt_bit <= 0; - if (!DAT_dat_reg[0]) state <= WRITE_DRT; - end - WRITE_DRT: begin - // See 7.3.3.1 Data Response Token - if (drt_bit <= 3) begin - drt_reg[drt_bit] <= DAT_dat_reg[0]; - end else if (drt_bit == 15) begin - crc_ok <= drt_reg[3:0] == 4'b1010; - state <= WRITE_BUSY; - end - drt_bit <= drt_bit + 1; - end - WRITE_BUSY: begin - if (DAT_dat_reg[0]) begin - if (blkcnt_reg != 0 && crc_ok) begin - transf_cnt <= 0; - blkcnt_reg <= blkcnt_reg - 1; - byte_alignment_reg <= byte_alignment_reg + blksize[1:0] + 2'b1; - crc_rst <= 1; - state <= WRITE_DAT; - end else begin - state <= IDLE; - end - end - end - READ_WAIT: begin - dat_oe <= 0; - crc_bit <= 15; - last_din <= 0; - transf_cnt <= 0; - data_index <= bus_4bit_reg ? (byte_alignment_reg << 1) : (byte_alignment_reg << 3); - if (!DAT_dat_reg[0]) begin - crc_rst <= 0; - crc_en <= 1; - state <= READ_DAT; - end - end - READ_DAT: begin - last_din <= DAT_dat_reg; - transf_cnt <= transf_cnt + 16'h1; - if (transf_cnt < data_cycles) begin - if (bus_4bit_reg) begin - we <= (data_index[2:0] == 7 || (transf_cnt == data_cycles-1 && !blkcnt_reg)); - data_out[31-(data_index[2:0]<<2)] <= DAT_dat_reg[3]; - data_out[30-(data_index[2:0]<<2)] <= DAT_dat_reg[2]; - data_out[29-(data_index[2:0]<<2)] <= DAT_dat_reg[1]; - data_out[28-(data_index[2:0]<<2)] <= DAT_dat_reg[0]; - end else begin - we <= (data_index == 31 || (transf_cnt == data_cycles-1 && !blkcnt_reg)); - data_out[31-data_index] <= DAT_dat_reg[0]; - end - data_index <= data_index + 5'h1; - crc_ok <= 1; - end else if (transf_cnt == data_cycles) begin - crc_en <= 0; - we <= 0; - end else if (transf_cnt <= data_cycles+16) begin - if (crc_out[0][crc_bit] != last_din[0]) crc_ok <= 0; - if (bus_4bit_reg) begin - if (crc_out[1][crc_bit] != last_din[1]) crc_ok <= 0; - if (crc_out[2][crc_bit] != last_din[2]) crc_ok <= 0; - if (crc_out[3][crc_bit] != last_din[3]) crc_ok <= 0; - end - if (crc_bit == 0) begin - byte_alignment_reg <= byte_alignment_reg + blksize[1:0] + 2'b1; - crc_rst <= 1; - end else begin - crc_bit <= crc_bit - 1; - end - end else if (blkcnt_reg != 0 && crc_ok) begin - blkcnt_reg <= blkcnt_reg - 1; - state <= READ_WAIT; - end else begin - state <= IDLE; - end - end - default: - state <= IDLE; - endcase - if (start == 2'b11) state <= IDLE; // Abort - end -end - -endmodule - -module sd_crc_16( - input BITVAL, // Next input bit - input ENABLE, // Enable calculation - input BITSTRB, // Current bit valid (Clock) - input CLEAR, // Init CRC value - output reg [15:0] CRC // Current output CRC value -); - -assign inv = BITVAL ^ CRC[15]; - -always @(posedge BITSTRB) begin - if (CLEAR) begin - CRC <= 0; - end else if (ENABLE == 1) begin - CRC[15] <= CRC[14]; - CRC[14] <= CRC[13]; - CRC[13] <= CRC[12]; - CRC[12] <= CRC[11] ^ inv; - CRC[11] <= CRC[10]; - CRC[10] <= CRC[9]; - CRC[9] <= CRC[8]; - CRC[8] <= CRC[7]; - CRC[7] <= CRC[6]; - CRC[6] <= CRC[5]; - CRC[5] <= CRC[4] ^ inv; - CRC[4] <= CRC[3]; - CRC[3] <= CRC[2]; - CRC[2] <= CRC[1]; - CRC[1] <= CRC[0]; - CRC[0] <= inv; - end -end - -endmodule diff --git a/pipelined/src/uncore/newsdc/sd_defines.h b/pipelined/src/uncore/newsdc/sd_defines.h deleted file mode 100644 index 9afbde475..000000000 --- a/pipelined/src/uncore/newsdc/sd_defines.h +++ /dev/null @@ -1,91 +0,0 @@ -////////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2013-2022 Authors //// -//// //// -//// Based on original work by //// -//// Adam Edvardsson (adam.edvardsson@orsoc.se) //// -//// //// -//// Copyright (C) 2009 Authors //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer. //// -//// //// -//// This source file is free software; you can redistribute it //// -//// and/or modify it under the terms of the GNU Lesser General //// -//// Public License as published by the Free Software Foundation; //// -//// either version 2.1 of the License, or (at your option) any //// -//// later version. //// -//// //// -//// This source is distributed in the hope that it will be //// -//// useful, but WITHOUT ANY WARRANTY; without even the implied //// -//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// -//// PURPOSE. See the GNU Lesser General Public License for more //// -//// details. //// -//// //// -//// You should have received a copy of the GNU Lesser General //// -//// Public License along with this source; if not, download it //// -//// from https://www.gnu.org/licenses/ //// -//// //// -////////////////////////////////////////////////////////////////////// - -// global defines -`define BLKSIZE_W 12 -`define BLKCNT_W 16 -`define CMD_TIMEOUT_W 25 -`define DATA_TIMEOUT_W 28 - -// cmd module interrupts -`define INT_CMD_SIZE 5 -`define INT_CMD_CC 0 -`define INT_CMD_EI 1 -`define INT_CMD_CTE 2 -`define INT_CMD_CCRCE 3 -`define INT_CMD_CIE 4 - -// data module interrupts -`define INT_DATA_SIZE 6 -`define INT_DATA_CC 0 -`define INT_DATA_EI 1 -`define INT_DATA_CTE 2 // Timeout -`define INT_DATA_CCRCE 3 // CRC error -`define INT_DATA_CFE 4 // FIFO error -`define INT_DATA_CBE 5 // Bus error - -// command register defines -`define CMD_REG_SIZE 14 -`define CMD_RESPONSE_CHECK 1:0 -`define CMD_BUSY_CHECK 2 -`define CMD_CRC_CHECK 3 -`define CMD_IDX_CHECK 4 -`define CMD_WITH_DATA 6:5 -`define CMD_INDEX 13:8 - -// register addreses -`define argument 8'h00 -`define command 8'h04 -`define resp0 8'h08 -`define resp1 8'h0c -`define resp2 8'h10 -`define resp3 8'h14 -`define data_timeout 8'h18 -`define controller 8'h1c -`define cmd_timeout 8'h20 -`define clock_d 8'h24 -`define reset 8'h28 -`define voltage 8'h2c -`define capa 8'h30 -`define cmd_isr 8'h34 -`define cmd_iser 8'h38 -`define data_isr 8'h3c -`define data_iser 8'h40 -`define blksize 8'h44 -`define blkcnt 8'h48 -`define card_detect 8'h4c -`define dst_src_addr 8'h60 -`define dst_src_addr_high 8'h64 - -// register contents -`define RESET_BLOCK_SIZE 12'd511 -`define RESET_CLOCK_DIV 124 diff --git a/src/cvw.sv b/src/cvw.sv index ca552dbef..818773087 100644 --- a/src/cvw.sv +++ b/src/cvw.sv @@ -127,9 +127,6 @@ typedef struct packed { logic SDC_SUPPORTED; logic [63:0] SDC_BASE; logic [63:0] SDC_RANGE; - logic SDC2_SUPPORTED; - logic [63:0] SDC2_BASE; - logic [63:0] SDC2_RANGE; // Test modes diff --git a/src/mmu/adrdecs.sv b/src/mmu/adrdecs.sv index 2db96e746..f3017ec54 100644 --- a/src/mmu/adrdecs.sv +++ b/src/mmu/adrdecs.sv @@ -32,7 +32,7 @@ module adrdecs import cvw::*; #(parameter cvw_t P) ( input logic [P.PA_BITS-1:0] PhysicalAddress, input logic AccessRW, AccessRX, AccessRWX, input logic [1:0] Size, - output logic [11:0] SelRegions + output logic [10:0] SelRegions ); localparam logic [3:0] SUPPORTED_SIZE = (P.LLEN == 32 ? 4'b0111 : 4'b1111); @@ -46,10 +46,9 @@ module adrdecs import cvw::*; #(parameter cvw_t P) ( adrdec #(P.PA_BITS) gpiodec(PhysicalAddress, P.GPIO_BASE[P.PA_BITS-1:0], P.GPIO_RANGE[P.PA_BITS-1:0], P.GPIO_SUPPORTED, AccessRW, Size, 4'b0100, SelRegions[4]); adrdec #(P.PA_BITS) uartdec(PhysicalAddress, P.UART_BASE[P.PA_BITS-1:0], P.UART_RANGE[P.PA_BITS-1:0], P.UART_SUPPORTED, AccessRW, Size, 4'b0001, SelRegions[3]); adrdec #(P.PA_BITS) plicdec(PhysicalAddress, P.PLIC_BASE[P.PA_BITS-1:0], P.PLIC_RANGE[P.PA_BITS-1:0], P.PLIC_SUPPORTED, AccessRW, Size, 4'b0100, SelRegions[2]); - adrdec #(P.PA_BITS) sdcdec(PhysicalAddress, P.SDC_BASE[P.PA_BITS-1:0], P.SDC_RANGE[P.PA_BITS-1:0], P.SDC_SUPPORTED, AccessRW, Size, SUPPORTED_SIZE & 4'b1100, SelRegions[1]); - adrdec #(P.PA_BITS) newsdc(PhysicalAddress, P.SDC2_BASE[P.PA_BITS-1:0], P.SDC2_RANGE[P.PA_BITS-1:0], P.SDC2_SUPPORTED, AccessRW, Size, SUPPORTED_SIZE, SelRegions[11]); + adrdec #(P.PA_BITS) sdcdec(PhysicalAddress, P.SDC_BASE[P.PA_BITS-1:0], P.SDC_RANGE[P.PA_BITS-1:0], P.SDC_SUPPORTED, AccessRW, Size, SUPPORTED_SIZE, SelRegions[1]); - assign SelRegions[0] = ~|(SelRegions[11:1]); // none of the regions are selected + assign SelRegions[0] = ~|(SelRegions[10:1]); // none of the regions are selected endmodule // verilator lint_on UNOPTFLAT diff --git a/src/mmu/pmachecker.sv b/src/mmu/pmachecker.sv index 6dc59572f..41d8f9b74 100644 --- a/src/mmu/pmachecker.sv +++ b/src/mmu/pmachecker.sv @@ -43,7 +43,7 @@ module pmachecker import cvw::*; #(parameter cvw_t P) ( logic PMAAccessFault; logic AccessRW, AccessRWX, AccessRX; - logic [11:0] SelRegions; + logic [10:0] SelRegions; logic AtomicAllowed; // Determine what type of access is being made diff --git a/src/uncore/uncore.sv b/src/uncore/uncore.sv index 1c2ad0189..d5822c914 100644 --- a/src/uncore/uncore.sv +++ b/src/uncore/uncore.sv @@ -59,9 +59,9 @@ module uncore import cvw::*; #(parameter cvw_t P)( logic [P.XLEN-1:0] HREADRam, HREADSDC; - logic [11:0] HSELRegions; + logic [10:0] HSELRegions; logic HSELDTIM, HSELIROM, HSELRam, HSELCLINT, HSELPLIC, HSELGPIO, HSELUART, HSELSDC; - logic HSELDTIMD, HSELIROMD, HSELEXTD, HSELRamD, HSELCLINTD, HSELPLICD, HSELGPIOD, HSELUARTD, HSELSDCD; + logic HSELDTIMD, HSELIROMD, HSELEXTD, HSELRamD, HSELCLINTD, HSELPLICD, HSELGPIOD, HSELUARTD; logic HRESPRam, HRESPSDC; logic HREADYRam, HRESPSDCD; logic [P.XLEN-1:0] HREADBootRom; @@ -88,7 +88,7 @@ module uncore import cvw::*; #(parameter cvw_t P)( adrdecs #(P) adrdecs(HADDR, 1'b1, 1'b1, 1'b1, HSIZE[1:0], HSELRegions); // unswizzle HSEL signals - assign {HSELEXTSDC, HSELDTIM, HSELIROM, HSELEXT, HSELBootRom, HSELRam, HSELCLINT, HSELGPIO, HSELUART, HSELPLIC, HSELSDC} = HSELRegions[11:1]; + assign {HSELDTIM, HSELIROM, HSELEXT, HSELBootRom, HSELRam, HSELCLINT, HSELGPIO, HSELUART, HSELPLIC, HSELEXTSDC} = HSELRegions[10:1]; // AHB -> APB bridge ahbapbbridge #(P, 4) ahbapbbridge ( @@ -146,29 +146,21 @@ module uncore import cvw::*; #(parameter cvw_t P)( assign UARTSout = 0; assign UARTIntr = 0; end - // eventually remove - assign HREADSDC = '0; - assign HREADYSDC = '1; - assign HRESPSDC = '0; - // AHB Read Multiplexer assign HRDATA = ({P.XLEN{HSELRamD}} & HREADRam) | ({P.XLEN{HSELEXTD | HSELEXTSDCD}} & HRDATAEXT) | ({P.XLEN{HSELBRIDGED}} & HREADBRIDGE) | - ({P.XLEN{HSELBootRomD}} & HREADBootRom) | - ({P.XLEN{HSELSDCD}} & HREADSDC); + ({P.XLEN{HSELBootRomD}} & HREADBootRom); assign HRESP = HSELRamD & HRESPRam | (HSELEXTD | HSELEXTSDCD) & HRESPEXT | HSELBRIDGE & HRESPBRIDGE | - HSELBootRomD & HRESPBootRom | - HSELSDC & HRESPSDC; - + HSELBootRomD & HRESPBootRom; + assign HREADY = HSELRamD & HREADYRam | (HSELEXTD | HSELEXTSDCD) & HREADYEXT | HSELBRIDGED & HREADYBRIDGE | HSELBootRomD & HREADYBootRom | - HSELSDCD & HREADYSDC | HSELNoneD; // don't lock up the bus if no region is being accessed // Address Decoder Delay (figure 4-2 in spec) @@ -176,6 +168,6 @@ module uncore import cvw::*; #(parameter cvw_t P)( // takes more than 1 cycle to repsond it needs to hold on to the old select until the // device is ready. Hense this register must be selectively enabled by HREADY. // However on reset None must be seleted. - flopenl #(12) hseldelayreg(HCLK, ~HRESETn, HREADY, HSELRegions[11:0], 12'b1, {HSELEXTSDCD, HSELDTIMD, HSELIROMD, HSELEXTD, HSELBootRomD, HSELRamD, HSELCLINTD, HSELGPIOD, HSELUARTD, HSELPLICD, HSELSDCD, HSELNoneD}); + flopenl #(11) hseldelayreg(HCLK, ~HRESETn, HREADY, HSELRegions, 11'b1, {HSELDTIMD, HSELIROMD, HSELEXTD, HSELBootRomD, HSELRamD, HSELCLINTD, HSELGPIOD, HSELUARTD, HSELPLICD, HSELEXTSDCD, HSELNoneD}); flopenr #(1) hselbridgedelayreg(HCLK, ~HRESETn, HREADY, HSELBRIDGE, HSELBRIDGED); endmodule From 0ae9e8bfdeb2cec48d02eba4590be1024e84eaca Mon Sep 17 00:00:00 2001 From: Ross Thompson Date: Mon, 24 Jul 2023 15:55:22 -0500 Subject: [PATCH 05/59] Removed old sdc from all configs. --- config/buildroot/config.vh | 9 +++------ config/rv32e/config.vh | 9 +++------ config/rv32gc/config.vh | 9 +++------ config/rv32i/config.vh | 9 +++------ config/rv32imc/config.vh | 9 +++------ config/rv64fpquad/config.vh | 9 +++------ config/rv64gc/config.vh | 9 +++------ config/rv64i/config.vh | 7 ++----- 8 files changed, 23 insertions(+), 47 deletions(-) diff --git a/config/buildroot/config.vh b/config/buildroot/config.vh index 8c2c1a2f2..35264cd13 100644 --- a/config/buildroot/config.vh +++ b/config/buildroot/config.vh @@ -114,12 +114,9 @@ localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b1; localparam logic [63:0] PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; -localparam SDC_SUPPORTED = 1'b0; -localparam logic [63:0] SDC_BASE = 64'h00012100; -localparam logic [63:0] SDC_RANGE = 64'h0000001F; -localparam SDC2_SUPPORTED = 1'b0; -localparam logic [63:0] SDC2_BASE = 64'h00013000; -localparam logic [63:0] SDC2_RANGE = 64'h0000007F; +localparam SDC_SUPPORTED = 1'b0; +localparam logic [63:0] SDC_BASE = 64'h00013000; +localparam logic [63:0] SDC_RANGE = 64'h0000007F; // Bus Interface width localparam AHBW = 32'd64; diff --git a/config/rv32e/config.vh b/config/rv32e/config.vh index ac9476a63..762e962fe 100644 --- a/config/rv32e/config.vh +++ b/config/rv32e/config.vh @@ -115,12 +115,9 @@ localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b0; localparam logic [63:0] PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; -localparam SDC_SUPPORTED = 1'b0; -localparam logic [63:0] SDC_BASE = 64'h00012100; -localparam logic [63:0] SDC_RANGE = 64'h0000001F; -localparam SDC2_SUPPORTED = 1'b0; -localparam logic [63:0] SDC2_BASE = 64'h00013000; -localparam logic [63:0] SDC2_RANGE = 64'h0000007F; +localparam SDC_SUPPORTED = 1'b0; +localparam logic [63:0] SDC_BASE = 64'h00013000; +localparam logic [63:0] SDC_RANGE = 64'h0000007F; // Bus Interface width localparam AHBW = 32'd32; diff --git a/config/rv32gc/config.vh b/config/rv32gc/config.vh index f6a2ebbc3..ad03c2956 100644 --- a/config/rv32gc/config.vh +++ b/config/rv32gc/config.vh @@ -116,12 +116,9 @@ localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b1; localparam logic [63:0] PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; -localparam SDC_SUPPORTED = 1'b0; -localparam logic [63:0] SDC_BASE = 64'h00012100; -localparam logic [63:0] SDC_RANGE = 64'h0000001F; -localparam SDC2_SUPPORTED = 1'b0; -localparam logic [63:0] SDC2_BASE = 64'h00013000; -localparam logic [63:0] SDC2_RANGE = 64'h0000007F; +localparam SDC_SUPPORTED = 1'b0; +localparam logic [63:0] SDC_BASE = 64'h00013000; +localparam logic [63:0] SDC_RANGE = 64'h0000007F; // Bus Interface width localparam AHBW = 32'd32; diff --git a/config/rv32i/config.vh b/config/rv32i/config.vh index cd4c5db54..9ceaec1f8 100644 --- a/config/rv32i/config.vh +++ b/config/rv32i/config.vh @@ -115,12 +115,9 @@ localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b0; localparam logic [63:0] PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; -localparam SDC_SUPPORTED = 1'b0; -localparam logic [63:0] SDC_BASE = 64'h00012100; -localparam logic [63:0] SDC_RANGE = 64'h0000001F; -localparam SDC2_SUPPORTED = 1'b0; -localparam logic [63:0] SDC2_BASE = 64'h00013000; -localparam logic [63:0] SDC2_RANGE = 64'h0000007F; +localparam SDC_SUPPORTED = 1'b0; +localparam logic [63:0] SDC_BASE = 64'h00013000; +localparam logic [63:0] SDC_RANGE = 64'h0000007F; // Bus Interface width localparam AHBW = 32'd32; diff --git a/config/rv32imc/config.vh b/config/rv32imc/config.vh index e2e2f7ca2..fd0e28b65 100644 --- a/config/rv32imc/config.vh +++ b/config/rv32imc/config.vh @@ -114,12 +114,9 @@ localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b1; localparam logic [63:0] PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; -localparam SDC_SUPPORTED = 1'b0; -localparam logic [63:0] SDC_BASE = 64'h00012100; -localparam logic [63:0] SDC_RANGE = 64'h0000001F; -localparam SDC2_SUPPORTED = 1'b0; -localparam logic [63:0] SDC2_BASE = 64'h00013000; -localparam logic [63:0] SDC2_RANGE = 64'h0000007F; +localparam SDC_SUPPORTED = 1'b0; +localparam logic [63:0] SDC_BASE = 64'h00013000; +localparam logic [63:0] SDC_RANGE = 64'h0000007F; // Bus Interface width localparam AHBW = 32'd32; diff --git a/config/rv64fpquad/config.vh b/config/rv64fpquad/config.vh index 6b1b4717d..ba74da9a3 100644 --- a/config/rv64fpquad/config.vh +++ b/config/rv64fpquad/config.vh @@ -120,12 +120,9 @@ localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b1; localparam logic [63:0] PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; -localparam SDC_SUPPORTED = 1'b0; -localparam logic [63:0] SDC_BASE = 64'h00012100; -localparam logic [63:0] SDC_RANGE = 64'h0000001F; -localparam SDC2_SUPPORTED = 1'b0; -localparam logic [63:0] SDC2_BASE = 64'h00013000; -localparam logic [63:0] SDC2_RANGE = 64'h0000007F; +localparam SDC_SUPPORTED = 1'b0; +localparam logic [63:0] SDC_BASE = 64'h00013000; +localparam logic [63:0] SDC_RANGE = 64'h0000007F; // Test modes diff --git a/config/rv64gc/config.vh b/config/rv64gc/config.vh index 2a51e8aa5..e79e65680 100644 --- a/config/rv64gc/config.vh +++ b/config/rv64gc/config.vh @@ -123,12 +123,9 @@ localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b1; localparam logic [63:0] PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; -localparam SDC_SUPPORTED = 1'b0; -localparam logic [63:0] SDC_BASE = 64'h00012100; -localparam logic [63:0] SDC_RANGE = 64'h0000001F; -localparam SDC2_SUPPORTED = 1'b0; -localparam logic [63:0] SDC2_BASE = 64'h00013000; -localparam logic [63:0] SDC2_RANGE = 64'h0000007F; +localparam SDC_SUPPORTED = 1'b0; +localparam logic [63:0] SDC_BASE = 64'h00013000; +localparam logic [63:0] SDC_RANGE = 64'h0000007F; // Test modes diff --git a/config/rv64i/config.vh b/config/rv64i/config.vh index ea948f3da..3c0b6f77b 100644 --- a/config/rv64i/config.vh +++ b/config/rv64i/config.vh @@ -121,11 +121,8 @@ localparam PLIC_SUPPORTED = 1'b0; localparam logic [63:0] PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; localparam SDC_SUPPORTED = 1'b0; -localparam logic [63:0] SDC_BASE = 64'h00012100; -localparam logic [63:0] SDC_RANGE = 64'h0000001F; -localparam SDC2_SUPPORTED = 1'b0; -localparam logic [63:0] SDC2_BASE = 64'h00013000; -localparam logic [63:0] SDC2_RANGE = 64'h0000007F; +localparam logic [63:0] SDC_BASE = 64'h00013000; +localparam logic [63:0] SDC_RANGE = 64'h0000007F; // Test modes From 46c62aff811f0992165279e9215bdb8ddef483bb Mon Sep 17 00:00:00 2001 From: David Harris Date: Tue, 25 Jul 2023 05:10:53 -0700 Subject: [PATCH 06/59] Progress toward synthesis with parameterized design --- synthDC/scripts/synth.tcl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/synthDC/scripts/synth.tcl b/synthDC/scripts/synth.tcl index aea0d6f17..a7ae6ef09 100755 --- a/synthDC/scripts/synth.tcl +++ b/synthDC/scripts/synth.tcl @@ -25,6 +25,7 @@ set maxopt $::env(MAXOPT) set drive $::env(DRIVE) eval file copy -force [glob ${cfg}/*.vh] {$outputDir/hdl/} +eval file copy -force [glob ${hdl_src}/*.sv] {$outputDir/hdl/} eval file copy -force [glob ${hdl_src}/*/*.sv] {$outputDir/hdl/} eval file copy -force [glob ${hdl_src}/*/*/*.sv] {$outputDir/hdl/} @@ -37,7 +38,7 @@ if { $saifpower == 1 } { } # Verilog files -set my_verilog_files [glob $outputDir/hdl/*] +set my_verilog_files [glob $outputDir/hdl/cvw.sv $outputDir/hdl/*.sv] # Set toplevel set my_toplevel $::env(DESIGN) From ca62487e4ceaa784d493d6b323fa09071d240629 Mon Sep 17 00:00:00 2001 From: David Harris Date: Tue, 25 Jul 2023 05:11:38 -0700 Subject: [PATCH 07/59] Formatting cleanup --- src/fpu/fdivsqrt/fdivsqrtqsel4cmp.sv | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/fpu/fdivsqrt/fdivsqrtqsel4cmp.sv b/src/fpu/fdivsqrt/fdivsqrtqsel4cmp.sv index 8a3d535d3..0eb3b71c0 100644 --- a/src/fpu/fdivsqrt/fdivsqrtqsel4cmp.sv +++ b/src/fpu/fdivsqrt/fdivsqrtqsel4cmp.sv @@ -81,9 +81,9 @@ module fdivsqrtqsel4cmp ( // Compare residual W to selection constants to choose digit always_comb - if ($signed(Wmsbs) >= $signed(mk2)) udigit = 4'b1000; // choose 2 - else if ($signed(Wmsbs) >= $signed(mk1)) udigit = 4'b0100; // choose 1 - else if ($signed(Wmsbs) >= $signed(mk0)) udigit = 4'b0000; // choose 0 + if ($signed(Wmsbs) >= $signed(mk2)) udigit = 4'b1000; // choose 2 + else if ($signed(Wmsbs) >= $signed(mk1)) udigit = 4'b0100; // choose 1 + else if ($signed(Wmsbs) >= $signed(mk0)) udigit = 4'b0000; // choose 0 else if ($signed(Wmsbs) >= $signed(mkm1)) udigit = 4'b0010; // choose -1 - else udigit = 4'b0001; // choose -2 + else udigit = 4'b0001; // choose -2 endmodule From dbf9e5da0b6b8884145f0e2a22ec79e093d66afc Mon Sep 17 00:00:00 2001 From: Ross Thompson Date: Tue, 25 Jul 2023 15:11:47 -0500 Subject: [PATCH 08/59] Updated Arty A7 fpga config and device tree to 256MiB main memory. --- config/fpga/config.vh | 2 +- linux/devicetree/wally-artya7.dts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/fpga/config.vh b/config/fpga/config.vh index 86b88a3d6..1e81c653f 100644 --- a/config/fpga/config.vh +++ b/config/fpga/config.vh @@ -112,7 +112,7 @@ localparam logic [63:0] UNCORE_RAM_RANGE = 64'h00000FFF; localparam EXT_MEM_SUPPORTED = 1'b1; localparam logic [63:0] EXT_MEM_BASE = 64'h80000000; -localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] EXT_MEM_RANGE = 64'h0FFFFFFF; localparam CLINT_SUPPORTED = 1'b1; localparam logic [63:0] CLINT_BASE = 64'h02000000; diff --git a/linux/devicetree/wally-artya7.dts b/linux/devicetree/wally-artya7.dts index 6c812f0f9..ed1c9c85d 100644 --- a/linux/devicetree/wally-artya7.dts +++ b/linux/devicetree/wally-artya7.dts @@ -15,7 +15,7 @@ memory@80000000 { device_type = "memory"; - reg = <0x00 0x80000000 0x00 0x08000000>; + reg = <0x00 0x80000000 0x00 0x10000000>; }; cpus { @@ -75,10 +75,10 @@ bus-width = <4>; interrupt-parent = <0x03>; clock = <0x1312D00>; - max-frequency = <0xA7D8C0>; + max-frequency = <0x1312D00>; cap-sd-highspeed; cap-mmc-highspeed; - no-sdio; + sdio; }; clint@2000000 { From b626f2185a8957b18e9f5ed7418be85f186a29d8 Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Tue, 25 Jul 2023 20:57:04 -0500 Subject: [PATCH 09/59] Fixed GPIO pin names in fpgaTop.v --- fpga/src/fpgaTop.v | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fpga/src/fpgaTop.v b/fpga/src/fpgaTop.v index dc10b9e6b..43cbb1a8b 100644 --- a/fpga/src/fpgaTop.v +++ b/fpga/src/fpgaTop.v @@ -421,8 +421,8 @@ module fpgaTop wire [3:0] sd_dat_reg_o; wire sd_dat_reg_t; - assign GPIOPinsIn = {28'b0, GPI}; - assign GPO = GPIOPinsOut[4:0]; + assign GPIOIN = {28'b0, GPI}; + assign GPO = GPIOOUT[4:0]; assign ahblite_resetn = peripheral_aresetn; assign cpu_reset = bus_struct_reset; assign calib = c0_init_calib_complete; From 15dc76310e420bc1c43428c83b5b41ffba765576 Mon Sep 17 00:00:00 2001 From: Ross Thompson Date: Wed, 26 Jul 2023 15:08:01 -0500 Subject: [PATCH 10/59] Fixed lint errors for issue #368. Does not fix simulation errors. We made a design decision a long time ago to not support DTIM on the rv32gc config because LLEN was greater than XLEN. --- src/lsu/lsu.sv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lsu/lsu.sv b/src/lsu/lsu.sv index effa4ff29..3584a05c8 100644 --- a/src/lsu/lsu.sv +++ b/src/lsu/lsu.sv @@ -232,7 +232,7 @@ module lsu import cvw::*; #(parameter cvw_t P) ( // **** create config to support DTIM with floating point. dtim #(P) dtim(.clk, .ce(~GatedStallW), .MemRWM(DTIMMemRWM), .DTIMAdr, .FlushW, .WriteDataM(LSUWriteDataM), - .ReadDataWordM(DTIMReadDataWordM[P.XLEN-1:0]), .ByteMaskM(ByteMaskM[P.XLEN/8-1:0])); + .ReadDataWordM(DTIMReadDataWordM[P.LLEN-1:0]), .ByteMaskM(ByteMaskM[P.LLEN/8-1:0])); end else begin end if (P.BUS_SUPPORTED) begin : bus @@ -308,11 +308,11 @@ module lsu import cvw::*; #(parameter cvw_t P) ( ahbinterface #(P.XLEN, 1) ahbinterface(.HCLK(clk), .HRESETn(~reset), .Flush(FlushW), .HREADY(LSUHREADY), .HRDATA(HRDATA), .HTRANS(LSUHTRANS), .HWRITE(LSUHWRITE), .HWDATA(LSUHWDATA), - .HWSTRB(LSUHWSTRB), .BusRW, .ByteMask(ByteMaskM), .WriteData(LSUWriteDataM), + .HWSTRB(LSUHWSTRB), .BusRW, .ByteMask(ByteMaskM[P.XLEN/8-1:0]), .WriteData(LSUWriteDataM[P.XLEN-1:0]), .Stall(GatedStallW), .BusStall, .BusCommitted(BusCommittedM), .FetchBuffer(FetchBuffer)); // Mux between the 2 sources of read data, 0: Bus, 1: DTIM - if(P.DTIM_SUPPORTED) mux2 #(P.XLEN) ReadDataMux2(FetchBuffer, DTIMReadDataWordM, SelDTIM, ReadDataWordMuxM); + if(P.DTIM_SUPPORTED) mux2 #(P.XLEN) ReadDataMux2(FetchBuffer, DTIMReadDataWordM[P.XLEN-1:0], SelDTIM, ReadDataWordMuxM[P.XLEN-1:0]); else assign ReadDataWordMuxM = FetchBuffer[P.XLEN-1:0]; assign LSUHBURST = 3'b0; assign {DCacheStallM, DCacheCommittedM, DCacheMiss, DCacheAccess} = '0; From 9d33e08dbbe709fc7b853122a4a36c598a47e9ee Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Thu, 27 Jul 2023 15:01:20 -0500 Subject: [PATCH 11/59] Removed non-existent SDC dependency from VCU targets in FPGA Makefile. --- fpga/generator/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fpga/generator/Makefile b/fpga/generator/Makefile index 64d2f20d4..f481e2c81 100644 --- a/fpga/generator/Makefile +++ b/fpga/generator/Makefile @@ -24,7 +24,7 @@ all: FPGA_Arty FPGA_Arty: PreProcessFiles IP_Arty vivado -mode tcl -source wally.tcl 2>&1 | tee wally.log -FPGA_VCU: PreProcessFiles IP_VCU SDC +FPGA_VCU: PreProcessFiles IP_VCU vivado -mode tcl -source wally.tcl 2>&1 | tee wally.log IP_VCU: $(dst)/xlnx_proc_sys_reset.log \ From 55055aa0a83a202ded102707bb991f9cde7fb717 Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Thu, 27 Jul 2023 17:44:31 -0500 Subject: [PATCH 12/59] Updated VCU108 device tree for 256MB memory. --- linux/devicetree/wally-vcu108.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/devicetree/wally-vcu108.dts b/linux/devicetree/wally-vcu108.dts index 6b02a55ba..add2920bd 100644 --- a/linux/devicetree/wally-vcu108.dts +++ b/linux/devicetree/wally-vcu108.dts @@ -15,7 +15,7 @@ memory@80000000 { device_type = "memory"; - reg = <0x00 0x80000000 0x00 0x08000000>; + reg = <0x00 0x80000000 0x00 0x10000000>; }; cpus { From 7e06775135d4211f52590774eabe2676f45a81b3 Mon Sep 17 00:00:00 2001 From: Ross Thompson Date: Fri, 28 Jul 2023 11:20:29 -0500 Subject: [PATCH 13/59] Fixed a very subtle combinational loop bug the SSTC implementation of csrs.sv. STIMCMPH did not assign all XLEN bits of CSRSReadValM so dc_shell produced d-latches and vivado created a combinational loop. --- src/privileged/csrs.sv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/privileged/csrs.sv b/src/privileged/csrs.sv index 84a4d0a4b..a15be83e6 100644 --- a/src/privileged/csrs.sv +++ b/src/privileged/csrs.sv @@ -157,7 +157,7 @@ module csrs import cvw::*; #(parameter cvw_t P) ( IllegalCSRSAccessM = 1; end STIMECMPH: if (STCE) - CSRSReadValM[31:0] = STIMECMP_REGW[63:32]; + CSRSReadValM = {{(P.XLEN-32){1'b0}}, STIMECMP_REGW[63:32]}; else begin // not supported for RV64 CSRSReadValM = 0; IllegalCSRSAccessM = 1; @@ -168,4 +168,4 @@ module csrs import cvw::*; #(parameter cvw_t P) ( end endcase end -endmodule \ No newline at end of file +endmodule From 654cafb7f714076b093e529920cc8e5a401ebe0a Mon Sep 17 00:00:00 2001 From: David Harris Date: Sun, 30 Jul 2023 01:54:41 -0700 Subject: [PATCH 14/59] Fixed Questa warnings in plic_apb about part select out of bounds --- src/uncore/plic_apb.sv | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/uncore/plic_apb.sv b/src/uncore/plic_apb.sv index ea564ec63..9889d25d2 100644 --- a/src/uncore/plic_apb.sv +++ b/src/uncore/plic_apb.sv @@ -73,6 +73,14 @@ module plic_apb import cvw::*; #(parameter cvw_t P) ( logic [`C-1:0][7:1] threshMask; logic [P.PLIC_NUM_SRC-1:0] One; + // hacks to handle gracefully PLIC_NUM_SRC being smaller than 32 + // Otherwise Questa and other simulators produce part-select out of bounds even + // though sources >=32 are never used + + localparam PLIC_SRC_TOP = (P.PLIC_NUM_SRC >= 32) ? P.PLIC_NUM_SRC : 1; + localparam PLIC_SRC_BOT = (P.PLIC_NUM_SRC >= 32) ? 32 : 1; + localparam PLIC_SRC_DINTOP = (P.PLIC_NUM_SRC >= 32) ? P.PLIC_NUM_SRC -32 : 0; + // ======= // AHB I/O // ======= @@ -107,7 +115,7 @@ module plic_apb import cvw::*; #(parameter cvw_t P) ( intInProgress <= #1 '0; // writing end else begin - if (memwrite) + if (memwrite) casez(entry) 24'h0000??: intPriority[entry[7:2]] <= #1 Din[2:0]; 24'h002000: intEn[0][PLIC_NUM_SRC_MIN_32:1] <= #1 Din[PLIC_NUM_SRC_MIN_32:1]; @@ -116,8 +124,8 @@ module plic_apb import cvw::*; #(parameter cvw_t P) ( // verilator lint_off SELRANGE // *** RT: Long term we want to factor out these variable number of registers as a generate loop // I think this won't work as a case statement. - 24'h002004: if (P.PLIC_NUM_SRC >= 32) intEn[0][P.PLIC_NUM_SRC:32] <= #1 Din[P.PLIC_NUM_SRC-32:0]; - 24'h002084: if (P.PLIC_NUM_SRC >= 32) intEn[1][P.PLIC_NUM_SRC:32] <= #1 Din[P.PLIC_NUM_SRC-32:0]; + 24'h002004: if (P.PLIC_NUM_SRC >= 32) intEn[0][PLIC_SRC_TOP:PLIC_SRC_BOT] <= #1 Din[PLIC_SRC_DINTOP:0]; + 24'h002084: if (P.PLIC_NUM_SRC >= 32) intEn[1][PLIC_SRC_TOP:PLIC_SRC_BOT] <= #1 Din[PLIC_SRC_DINTOP:0]; // verilator lint_on SELRANGE 24'h200000: intThreshold[0] <= #1 Din[2:0]; 24'h200004: intInProgress <= #1 intInProgress & ~(One << (Din[5:0]-1)); // lower "InProgress" to signify completion @@ -134,15 +142,15 @@ module plic_apb import cvw::*; #(parameter cvw_t P) ( // verilator lint_off SELRANGE // verilator lint_off WIDTHTRUNC - 24'h001004: if (P.PLIC_NUM_SRC >= 32) Dout <= #1 {{(63-P.PLIC_NUM_SRC){1'b0}},intPending[P.PLIC_NUM_SRC:32]}; - 24'h002004: if (P.PLIC_NUM_SRC >= 32) Dout <= #1 {{(63-P.PLIC_NUM_SRC){1'b0}},intEn[0][P.PLIC_NUM_SRC:32]}; + 24'h001004: if (P.PLIC_NUM_SRC >= 32) Dout <= #1 {{(63-P.PLIC_NUM_SRC){1'b0}},intPending[PLIC_SRC_TOP:PLIC_SRC_BOT]}; + 24'h002004: if (P.PLIC_NUM_SRC >= 32) Dout <= #1 {{(63-P.PLIC_NUM_SRC){1'b0}},intEn[0][PLIC_SRC_TOP:PLIC_SRC_BOT]}; // verilator lint_on SELRANGE // verilator lint_on WIDTHTRUNC 24'h002080: Dout <= #1 {{(31-PLIC_NUM_SRC_MIN_32){1'b0}},intEn[1][PLIC_NUM_SRC_MIN_32:1],1'b0}; // verilator lint_off SELRANGE // verilator lint_off WIDTHTRUNC - 24'h002084: if (P.PLIC_NUM_SRC >= 32) Dout <= #1 {{(63-P.PLIC_NUM_SRC){1'b0}},intEn[1][P.PLIC_NUM_SRC:32]}; + 24'h002084: if (P.PLIC_NUM_SRC >= 32) Dout <= #1 {{(63-P.PLIC_NUM_SRC){1'b0}},intEn[1][PLIC_SRC_TOP:PLIC_SRC_BOT]}; // verilator lint_on SELRANGE // verilator lint_on WIDTHTRUNC 24'h200000: Dout <= #1 {29'b0,intThreshold[0]}; From 28823aca6e23733e29b4af63d1724cdaea0e9422 Mon Sep 17 00:00:00 2001 From: David Harris Date: Sun, 30 Jul 2023 02:00:38 -0700 Subject: [PATCH 15/59] Cleaned up lint for plic_apb part select --- src/uncore/plic_apb.sv | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/src/uncore/plic_apb.sv b/src/uncore/plic_apb.sv index 9889d25d2..f2a643101 100644 --- a/src/uncore/plic_apb.sv +++ b/src/uncore/plic_apb.sv @@ -80,7 +80,8 @@ module plic_apb import cvw::*; #(parameter cvw_t P) ( localparam PLIC_SRC_TOP = (P.PLIC_NUM_SRC >= 32) ? P.PLIC_NUM_SRC : 1; localparam PLIC_SRC_BOT = (P.PLIC_NUM_SRC >= 32) ? 32 : 1; localparam PLIC_SRC_DINTOP = (P.PLIC_NUM_SRC >= 32) ? P.PLIC_NUM_SRC -32 : 0; - + localparam PLIC_SRC_EXT = (P.PLIC_NUM_SRC >= 32) ? 63-P.PLIC_NUM_SRC : 31; + // ======= // AHB I/O // ======= @@ -120,13 +121,8 @@ module plic_apb import cvw::*; #(parameter cvw_t P) ( 24'h0000??: intPriority[entry[7:2]] <= #1 Din[2:0]; 24'h002000: intEn[0][PLIC_NUM_SRC_MIN_32:1] <= #1 Din[PLIC_NUM_SRC_MIN_32:1]; 24'h002080: intEn[1][PLIC_NUM_SRC_MIN_32:1] <= #1 Din[PLIC_NUM_SRC_MIN_32:1]; - - // verilator lint_off SELRANGE - // *** RT: Long term we want to factor out these variable number of registers as a generate loop - // I think this won't work as a case statement. 24'h002004: if (P.PLIC_NUM_SRC >= 32) intEn[0][PLIC_SRC_TOP:PLIC_SRC_BOT] <= #1 Din[PLIC_SRC_DINTOP:0]; 24'h002084: if (P.PLIC_NUM_SRC >= 32) intEn[1][PLIC_SRC_TOP:PLIC_SRC_BOT] <= #1 Din[PLIC_SRC_DINTOP:0]; - // verilator lint_on SELRANGE 24'h200000: intThreshold[0] <= #1 Din[2:0]; 24'h200004: intInProgress <= #1 intInProgress & ~(One << (Din[5:0]-1)); // lower "InProgress" to signify completion 24'h201000: intThreshold[1] <= #1 Din[2:0]; @@ -139,20 +135,10 @@ module plic_apb import cvw::*; #(parameter cvw_t P) ( 24'h0000??: Dout <= #1 {29'b0,intPriority[entry[7:2]]}; 24'h001000: Dout <= #1 {{(31-PLIC_NUM_SRC_MIN_32){1'b0}},intPending[PLIC_NUM_SRC_MIN_32:1],1'b0}; 24'h002000: Dout <= #1 {{(31-PLIC_NUM_SRC_MIN_32){1'b0}},intEn[0][PLIC_NUM_SRC_MIN_32:1],1'b0}; - - // verilator lint_off SELRANGE - // verilator lint_off WIDTHTRUNC - 24'h001004: if (P.PLIC_NUM_SRC >= 32) Dout <= #1 {{(63-P.PLIC_NUM_SRC){1'b0}},intPending[PLIC_SRC_TOP:PLIC_SRC_BOT]}; - 24'h002004: if (P.PLIC_NUM_SRC >= 32) Dout <= #1 {{(63-P.PLIC_NUM_SRC){1'b0}},intEn[0][PLIC_SRC_TOP:PLIC_SRC_BOT]}; - // verilator lint_on SELRANGE - // verilator lint_on WIDTHTRUNC - + 24'h001004: if (P.PLIC_NUM_SRC >= 32) Dout <= #1 {{(PLIC_SRC_EXT){1'b0}},intPending[PLIC_SRC_TOP:PLIC_SRC_BOT]}; + 24'h002004: if (P.PLIC_NUM_SRC >= 32) Dout <= #1 {{(PLIC_SRC_EXT){1'b0}},intEn[0][PLIC_SRC_TOP:PLIC_SRC_BOT]}; 24'h002080: Dout <= #1 {{(31-PLIC_NUM_SRC_MIN_32){1'b0}},intEn[1][PLIC_NUM_SRC_MIN_32:1],1'b0}; - // verilator lint_off SELRANGE - // verilator lint_off WIDTHTRUNC - 24'h002084: if (P.PLIC_NUM_SRC >= 32) Dout <= #1 {{(63-P.PLIC_NUM_SRC){1'b0}},intEn[1][PLIC_SRC_TOP:PLIC_SRC_BOT]}; - // verilator lint_on SELRANGE - // verilator lint_on WIDTHTRUNC + 24'h002084: if (P.PLIC_NUM_SRC >= 32) Dout <= #1 {{(PLIC_SRC_EXT){1'b0}},intEn[1][PLIC_SRC_TOP:PLIC_SRC_BOT]}; 24'h200000: Dout <= #1 {29'b0,intThreshold[0]}; 24'h200004: begin Dout <= #1 {26'b0,intClaim[0]}; From d58ece3d44fb0a7461bfe7c52c78be6bbbcb8691 Mon Sep 17 00:00:00 2001 From: David Harris Date: Sun, 30 Jul 2023 05:22:39 -0700 Subject: [PATCH 16/59] renamed test-shared.vh to config-shared.vh --- config/buildroot/config.vh | 2 +- config/fpga/config.vh | 2 +- config/rv32e/config.vh | 2 +- config/rv32gc/config.vh | 2 +- config/rv32i/config.vh | 2 +- config/rv32imc/config.vh | 2 +- config/rv64fpquad/config.vh | 2 +- config/rv64gc/config.vh | 2 +- config/rv64i/config.vh | 2 +- config/shared/{test-shared.vh => config-shared.vh} | 0 src/fpu/fdivsqrt/fdivsqrtpreproc.sv | 12 +++++------- 11 files changed, 14 insertions(+), 16 deletions(-) rename config/shared/{test-shared.vh => config-shared.vh} (100%) diff --git a/config/buildroot/config.vh b/config/buildroot/config.vh index 35264cd13..6376904dc 100644 --- a/config/buildroot/config.vh +++ b/config/buildroot/config.vh @@ -159,4 +159,4 @@ localparam ZBS_SUPPORTED = 0; // Memory synthesis configuration localparam USE_SRAM = 0; -`include "test-shared.vh" +`include "config-shared.vh" diff --git a/config/fpga/config.vh b/config/fpga/config.vh index 1e81c653f..3551da010 100644 --- a/config/fpga/config.vh +++ b/config/fpga/config.vh @@ -172,4 +172,4 @@ localparam ZBS_SUPPORTED = 1; // Memory synthesis configuration localparam USE_SRAM = 0; -`include "test-shared.vh" +`include "config-shared.vh" diff --git a/config/rv32e/config.vh b/config/rv32e/config.vh index 762e962fe..83c4efd52 100644 --- a/config/rv32e/config.vh +++ b/config/rv32e/config.vh @@ -160,5 +160,5 @@ localparam ZBS_SUPPORTED = 0; // Memory synthesis configuration localparam USE_SRAM = 0; -`include "test-shared.vh" +`include "config-shared.vh" diff --git a/config/rv32gc/config.vh b/config/rv32gc/config.vh index ad03c2956..5479e5fde 100644 --- a/config/rv32gc/config.vh +++ b/config/rv32gc/config.vh @@ -161,4 +161,4 @@ localparam ZBS_SUPPORTED = 1; // Memory synthesis configuration localparam USE_SRAM = 0; -`include "test-shared.vh" +`include "config-shared.vh" diff --git a/config/rv32i/config.vh b/config/rv32i/config.vh index 9ceaec1f8..1897ddeb2 100644 --- a/config/rv32i/config.vh +++ b/config/rv32i/config.vh @@ -160,4 +160,4 @@ localparam ZBS_SUPPORTED = 0; // Memory synthesis configuration localparam USE_SRAM = 0; -`include "test-shared.vh" +`include "config-shared.vh" diff --git a/config/rv32imc/config.vh b/config/rv32imc/config.vh index fd0e28b65..85d3597f9 100644 --- a/config/rv32imc/config.vh +++ b/config/rv32imc/config.vh @@ -159,4 +159,4 @@ localparam ZBS_SUPPORTED = 0; // Memory synthesis configuration localparam USE_SRAM = 0; -`include "test-shared.vh" +`include "config-shared.vh" diff --git a/config/rv64fpquad/config.vh b/config/rv64fpquad/config.vh index ba74da9a3..f0c6cc6b2 100644 --- a/config/rv64fpquad/config.vh +++ b/config/rv64fpquad/config.vh @@ -162,4 +162,4 @@ localparam ZBS_SUPPORTED = 0; // Memory synthesis configuration localparam USE_SRAM = 0; -`include "test-shared.vh" +`include "config-shared.vh" diff --git a/config/rv64gc/config.vh b/config/rv64gc/config.vh index e79e65680..31336c6b8 100644 --- a/config/rv64gc/config.vh +++ b/config/rv64gc/config.vh @@ -165,4 +165,4 @@ localparam ZBS_SUPPORTED = 1; // Memory synthesis configuration localparam USE_SRAM = 0; -`include "test-shared.vh" +`include "config-shared.vh" diff --git a/config/rv64i/config.vh b/config/rv64i/config.vh index 3c0b6f77b..3d7f33544 100644 --- a/config/rv64i/config.vh +++ b/config/rv64i/config.vh @@ -162,4 +162,4 @@ localparam ZBS_SUPPORTED = 0; // Memory synthesis configuration localparam USE_SRAM = 0; -`include "test-shared.vh" +`include "config-shared.vh" diff --git a/config/shared/test-shared.vh b/config/shared/config-shared.vh similarity index 100% rename from config/shared/test-shared.vh rename to config/shared/config-shared.vh diff --git a/src/fpu/fdivsqrt/fdivsqrtpreproc.sv b/src/fpu/fdivsqrt/fdivsqrtpreproc.sv index ef14bda78..5e14d3122 100644 --- a/src/fpu/fdivsqrt/fdivsqrtpreproc.sv +++ b/src/fpu/fdivsqrt/fdivsqrtpreproc.sv @@ -112,8 +112,6 @@ module fdivsqrtpreproc import cvw::*; #(parameter cvw_t P) ( assign Xfract = (IFX << ell) << 1; assign Dfract = (IFD << mE) << 1; - // *** CT: move to fdivsqrtintpreshift - ////////////////////////////////////////////////////// // Integer Right Shift to digit boundary // Determine DivXShifted (X shifted to digit boundary) @@ -141,8 +139,8 @@ module fdivsqrtpreproc import cvw::*; #(parameter cvw_t P) ( assign IntTrunc = TotalIntBits % P.RK; // Truncation check for ceiling operator assign IntSteps = (TotalIntBits >> P.LOGRK) + |IntTrunc; // Number of steps for int div assign nE = (IntSteps * P.DIVCOPIES) - 1; // Fractional digits - assign RightShiftX = P.RK - 1 - ((TotalIntBits - 1) % P.RK); // Right shift amount - assign DivXShifted = DivX >> RightShiftX; // shift X by up to R*K-1 to complete in nE steps + assign RightShiftX = P.RK - 1 - ((TotalIntBits - 1) % P.RK); // Right shift amount + assign DivXShifted = DivX >> RightShiftX; // shift X by up to R*K-1 to complete in nE steps /* verilator lint_on WIDTH */ end else begin // radix 2 1 copy doesn't require shifting assign nE = p; @@ -152,14 +150,14 @@ module fdivsqrtpreproc import cvw::*; #(parameter cvw_t P) ( assign ISpecialCaseE = 0; end - // CT *** fdivsqrtfplead1 - ////////////////////////////////////////////////////// // Floating-Point Preprocessing // append leading 1 (for nonzero inputs) // shift square root to be in range [1/4, 1) // Normalized numbers are shifted right by 1 if the exponent is odd - // Denormalized numbers have Xe = 0 and an unbiased exponent of 1-BIAS. They are shifted right if the number of leading zeros is odd. + // Subnormal numbers have Xe = 0 and an unbiased exponent of 1-BIAS. They are shifted right if the number of leading zeros is odd. + // NOTE: there might be a discrepancy that X is never right shifted by 2. However + // it comes out in the wash and gives the right answer. Investigate later if possible. ////////////////////////////////////////////////////// assign DivX = {3'b000, ~NumerZeroE, Xfract}; From d69d0ececcaca10b24b7e1cb018125ef28e18e92 Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 16:57:57 -0700 Subject: [PATCH 17/59] Fixed spacing --- src/fpu/fma/fma.sv | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/fpu/fma/fma.sv b/src/fpu/fma/fma.sv index 80f040171..a6e87a240 100644 --- a/src/fpu/fma/fma.sv +++ b/src/fpu/fma/fma.sv @@ -27,17 +27,17 @@ //////////////////////////////////////////////////////////////////////////////////////////////// module fma import cvw::*; #(parameter cvw_t P) ( - input logic Xs, Ys, Zs, // input's signs + input logic Xs, Ys, Zs, // input's signs input logic [P.NE-1:0] Xe, Ye, Ze, // input's biased exponents in B(NE.0) format input logic [P.NF:0] Xm, Ym, Zm, // input's significands in U(0.NF) format - input logic XZero, YZero, ZZero, // is the input zero - input logic [2:0] OpCtrl, // operation control - output logic ASticky, // sticky bit that is calculated during alignment + input logic XZero, YZero, ZZero, // is the input zero + input logic [2:0] OpCtrl, // operation control + output logic ASticky, // sticky bit that is calculated during alignment output logic [3*P.NF+3:0] Sm, // the positive sum's significand - output logic InvA, // Was A inverted for effective subtraction (P-A or -P+A) - output logic As, // the aligned addend's sign (modified Z sign for other opperations) - output logic Ps, // the product's sign - output logic Ss, // the sum's sign + output logic InvA, // Was A inverted for effective subtraction (P-A or -P+A) + output logic As, // the aligned addend's sign (modified Z sign for other opperations) + output logic Ps, // the product's sign + output logic Ss, // the sum's sign output logic [P.NE+1:0] Se, // the sum's exponent output logic [$clog2(3*P.NF+5)-1:0] SCnt // normalization shift count ); @@ -56,7 +56,7 @@ module fma import cvw::*; #(parameter cvw_t P) ( logic [3*P.NF+3:0] Am; // addend aligned's mantissa for addition in U(NF+4.2NF) logic [3*P.NF+3:0] AmInv; // aligned addend's mantissa possibly inverted logic [2*P.NF+1:0] PmKilled; // the product's mantissa possibly killed U(2.2Nf) - logic KillProd; // set the product to zero before addition if the product is too small to matter + logic KillProd; // set the product to zero before addition if the product is too small to matter logic [P.NE+1:0] Pe; // the product's exponent B(NE+2.0) format; adds 2 bits to allow for size of number and negative sign /////////////////////////////////////////////////////////////////////////////// @@ -67,7 +67,6 @@ module fma import cvw::*; #(parameter cvw_t P) ( // - Multiply the mantissas /////////////////////////////////////////////////////////////////////////////// - // calculate the product's exponent fmaexpadd #(P) expadd(.Xe, .Ye, .XZero, .YZero, .Pe); @@ -80,6 +79,7 @@ module fma import cvw::*; #(parameter cvw_t P) ( /////////////////////////////////////////////////////////////////////////////// // Alignment shifter /////////////////////////////////////////////////////////////////////////////// + fmaalign #(P) align(.Ze, .Zm, .XZero, .YZero, .ZZero, .Xe, .Ye, .Am, .ASticky, .KillProd); // /////////////////////////////////////////////////////////////////////////////// @@ -91,5 +91,3 @@ module fma import cvw::*; #(parameter cvw_t P) ( fmalza #(3*P.NF+4, P.NF) lza(.A(AmInv), .Pm(PmKilled), .Cin(InvA & (~ASticky | KillProd)), .sub(InvA), .SCnt); endmodule - - From d88b2fd9c1e6182ef5827f8e338aacfe2064d2a4 Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 16:59:27 -0700 Subject: [PATCH 18/59] Fixed spacing --- src/fpu/fma/fmaadd.sv | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/fpu/fma/fmaadd.sv b/src/fpu/fma/fmaadd.sv index 52a2bf6cf..3d7dbbd81 100644 --- a/src/fpu/fma/fmaadd.sv +++ b/src/fpu/fma/fmaadd.sv @@ -29,21 +29,21 @@ module fmaadd import cvw::*; #(parameter cvw_t P) ( input logic [3*P.NF+3:0] Am, // aligned addend's mantissa for addition in U(NF+5.2NF+1) input logic [P.NE-1:0] Ze, // exponent of Z - input logic Ps, // the product sign and the alligend addeded's sign (Modified Z sign for other opperations) + input logic Ps, // the product sign and the alligend addeded's sign (Modified Z sign for other opperations) input logic [P.NE+1:0] Pe, // product's exponet input logic [2*P.NF+1:0] Pm, // the product's mantissa - input logic InvA, // invert the aligned addend - input logic KillProd, // should the product be set to 0 - input logic ASticky, // Alighed addend's sticky bit + input logic InvA, // invert the aligned addend + input logic KillProd, // should the product be set to 0 + input logic ASticky, // Alighed addend's sticky bit output logic [3*P.NF+3:0] AmInv, // aligned addend possibly inverted output logic [2*P.NF+1:0] PmKilled, // the product's mantissa possibly killed - output logic Ss, // sum's sign + output logic Ss, // sum's sign output logic [P.NE+1:0] Se, // sum's exponent output logic [3*P.NF+3:0] Sm // the positive sum ); logic [3*P.NF+3:0] PreSum, NegPreSum; // possibly negitive sum - logic NegSum; // was the sum negitive + logic NegSum; // was the sum negitive /////////////////////////////////////////////////////////////////////////////// // Addition From 36108e4b5248c1c5239f5f72c7e3bff9252ed76c Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 17:18:25 -0700 Subject: [PATCH 19/59] Fixed spacing --- src/fpu/fma/fmaexpadd.sv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/fpu/fma/fmaexpadd.sv b/src/fpu/fma/fmaexpadd.sv index d6ef8844c..bb7bf2437 100644 --- a/src/fpu/fma/fmaexpadd.sv +++ b/src/fpu/fma/fmaexpadd.sv @@ -28,14 +28,14 @@ module fmaexpadd import cvw::*; #(parameter cvw_t P) ( input logic [P.NE-1:0] Xe, Ye, // input's exponents - input logic XZero, YZero, // are the inputs zero + input logic XZero, YZero, // are the inputs zero output logic [P.NE+1:0] Pe // product's exponent B^(1023)NE+2 ); - logic PZero; // is the product zero? + logic PZero; // is the product zero? // kill the exponent if the product is zero - either X or Y is 0 assign PZero = XZero | YZero; - assign Pe = PZero ? '0 : ({2'b0, Xe} + {2'b0, Ye} - {2'b0, (P.NE)'(P.BIAS)}); + assign Pe = PZero ? '0 : ({2'b0, Xe} + {2'b0, Ye} - {2'b0, (P.NE)'(P.BIAS)}); endmodule From 49823ccd45424b17ea40e92b2a8123fe3ae48173 Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 17:21:22 -0700 Subject: [PATCH 20/59] Fixed spacing --- src/fpu/fma/fmalza.sv | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/fpu/fma/fmalza.sv b/src/fpu/fma/fmalza.sv index b7ccbef8e..66659665a 100644 --- a/src/fpu/fma/fmalza.sv +++ b/src/fpu/fma/fmalza.sv @@ -28,11 +28,11 @@ //////////////////////////////////////////////////////////////////////////////////////////////// module fmalza #(WIDTH, NF) ( - input logic [WIDTH-1:0] A, // addend - input logic [2*NF+1:0] Pm, // product - input logic Cin, // carry in - input logic sub, // subtraction - output logic [$clog2(WIDTH+1)-1:0] SCnt // normalization shift count for the positive result + input logic [WIDTH-1:0] A, // addend + input logic [2*NF+1:0] Pm, // product + input logic Cin, // carry in + input logic sub, // subtraction + output logic [$clog2(WIDTH+1)-1:0] SCnt // normalization shift count for the positive result ); logic [WIDTH:0] F; // most significant bit of F indicates leading digit @@ -40,19 +40,19 @@ module fmalza #(WIDTH, NF) ( logic [WIDTH-1:0] P, G, K; // propagate, generate, kill for each column logic [WIDTH-1:0] Pp1, Gm1, Km1; // propagate shifted right by 1, generate/kill shifted left 1 - assign B = {{(NF+1){1'b0}}, Pm, 1'b0}; // Zero extend product + assign B = {{(NF+1){1'b0}}, Pm, 1'b0}; // Zero extend product assign P = A^B; assign G = A&B; - assign K= ~A&~B; + assign K = ~A&~B; - assign Pp1 = {sub, P[WIDTH-1:1]}; // shift P right by 1 (for P_i+1) , use subtract flag in most significant bit - assign Gm1 = {G[WIDTH-2:0], Cin}; // shift G left by 1 (for G_i-1) and bring in Cin - assign Km1 = {K[WIDTH-2:0], ~Cin}; // shift K left by 1 (for K_i-1) and bring in Cin + assign Pp1 = {sub, P[WIDTH-1:1]}; // shift P right by 1 (for P_i+1) , use subtract flag in most significant bit + assign Gm1 = {G[WIDTH-2:0], Cin}; // shift G left by 1 (for G_i-1) and bring in Cin + assign Km1 = {K[WIDTH-2:0], ~Cin}; // shift K left by 1 (for K_i-1) and bring in Cin // Apply function to determine Leading pattern // - note: Schmookler01 uses the numbering system where 0 is the most significant bit - assign F[WIDTH] = ~sub&P[WIDTH-1]; + assign F[WIDTH] = ~sub&P[WIDTH-1]; assign F[WIDTH-1:0] = (Pp1&(G&~Km1 | K&~Gm1)) | (~Pp1&(K&~Km1 | G&~Gm1)); lzc #(WIDTH+1) lzc (.num(F), .ZeroCnt(SCnt)); From b129068a92e6812020b5841794ebe36ba075b084 Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 17:21:52 -0700 Subject: [PATCH 21/59] Fixed spacing --- src/fpu/fma/fmamult.sv | 1 - 1 file changed, 1 deletion(-) diff --git a/src/fpu/fma/fmamult.sv b/src/fpu/fma/fmamult.sv index 7d01a22d6..91f255b87 100644 --- a/src/fpu/fma/fmamult.sv +++ b/src/fpu/fma/fmamult.sv @@ -33,4 +33,3 @@ module fmamult import cvw::*; #(parameter cvw_t P) ( assign Pm = Xm * Ym; endmodule - From d7b2d84124d5e1fdff1e0a0e672573f5089b27bf Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 17:22:40 -0700 Subject: [PATCH 22/59] Fixed spacing --- src/fpu/fma/fmasign.sv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/fpu/fma/fmasign.sv b/src/fpu/fma/fmasign.sv index 0091778ee..aca6c8f8c 100644 --- a/src/fpu/fma/fmasign.sv +++ b/src/fpu/fma/fmasign.sv @@ -34,7 +34,7 @@ module fmasign( output logic InvA // Effective subtraction: invert addend ); - assign Ps = Xs ^ Ys ^ (OpCtrl[1]&~OpCtrl[2]); // product sign. Negate for FMNADD or FNMSUB - assign As = Zs^OpCtrl[0]; // flip addend sign for subtraction - assign InvA = As ^ Ps; // Effective subtraction when product and addend have opposite signs + assign Ps = Xs ^ Ys ^ (OpCtrl[1]&~OpCtrl[2]); // product sign. Negate for FMNADD or FNMSUB + assign As = Zs^OpCtrl[0]; // flip addend sign for subtraction + assign InvA = As ^ Ps; // Effective subtraction when product and addend have opposite signs endmodule From bbbd5f6b2d847e94b34425af3a5ed9d05880e713 Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 17:32:46 -0700 Subject: [PATCH 23/59] Fixed spacing --- src/fpu/fma/fmaalign.sv | 55 +++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/src/fpu/fma/fmaalign.sv b/src/fpu/fma/fmaalign.sv index 06817d446..f9bddb9e3 100644 --- a/src/fpu/fma/fmaalign.sv +++ b/src/fpu/fma/fmaalign.sv @@ -1,4 +1,3 @@ - /////////////////////////////////////////// // fmaalign.sv // @@ -28,18 +27,18 @@ //////////////////////////////////////////////////////////////////////////////////////////////// module fmaalign import cvw::*; #(parameter cvw_t P) ( - input logic [P.NE-1:0] Xe, Ye, Ze, // biased exponents in B(NE.0) format - input logic [P.NF:0] Zm, // significand in U(0.NF) format] - input logic XZero, YZero, ZZero,// is the input zero - output logic [3*P.NF+3:0] Am, // addend aligned for addition in U(NF+5.2NF+1) - output logic ASticky, // Sticky bit calculated from the aliged addend - output logic KillProd // should the product be set to zero + input logic [P.NE-1:0] Xe, Ye, Ze, // biased exponents in B(NE.0) format + input logic [P.NF:0] Zm, // significand in U(0.NF) format] + input logic XZero, YZero, ZZero, // is the input zero + output logic [3*P.NF+3:0] Am, // addend aligned for addition in U(NF+5.2NF+1) + output logic ASticky, // Sticky bit calculated from the aliged addend + output logic KillProd // should the product be set to zero ); - logic [P.NE+1:0] ACnt; // how far to shift the addend to align with the product in Q(NE+2.0) format - logic [4*P.NF+3:0] ZmShifted; // output of the alignment shifter including sticky bits U(NF+5.3NF+1) - logic [4*P.NF+3:0] ZmPreshifted; // input to the alignment shifter U(NF+5.3NF+1) - logic KillZ; // should the addend be killed + logic [P.NE+1:0] ACnt; // how far to shift the addend to align with the product in Q(NE+2.0) format + logic [4*P.NF+3:0] ZmShifted; // output of the alignment shifter including sticky bits U(NF+5.3NF+1) + logic [4*P.NF+3:0] ZmPreshifted; // input to the alignment shifter U(NF+5.3NF+1) + logic KillZ; // should the addend be killed /////////////////////////////////////////////////////////////////////////////// // Alignment shifter @@ -51,45 +50,41 @@ module fmaalign import cvw::*; #(parameter cvw_t P) ( // This could have been done using Pe, but ACnt is on the critical path so we replicate logic for speed assign ACnt = {2'b0, Xe} + {2'b0, Ye} - {2'b0, (P.NE)'(P.BIAS)} + (P.NE+2)'(P.NF+2) - {2'b0, Ze}; - // Defualt Addition with only inital left shift - // | 53'b0 | 106'b(product) | 1'b0 | - // | addnend | + // Default Addition with only inital left shift + // | 53'b0 | 106'b(product) | 1'b0 | + // | addnend | assign ZmPreshifted = {Zm,(3*P.NF+3)'(0)}; - - assign KillProd = (ACnt[P.NE+1]&~ZZero)|XZero|YZero; - assign KillZ = $signed(ACnt)>$signed((P.NE+2)'(3)*(P.NE+2)'(P.NF)+(P.NE+2)'(3)); + assign KillProd = (ACnt[P.NE+1]&~ZZero)|XZero|YZero; + assign KillZ = $signed(ACnt)>$signed((P.NE+2)'(3)*(P.NE+2)'(P.NF)+(P.NE+2)'(3)); always_comb begin // If the product is too small to effect the sum, kill the product - - // | 53'b0 | 106'b(product) | 1'b0 | - // | addnend | + // | 53'b0 | 106'b(product) | 1'b0 | + // | addnend | if (KillProd) begin ZmShifted = {(P.NF+2)'(0), Zm, (2*P.NF+1)'(0)}; - ASticky = ~(XZero|YZero); + ASticky = ~(XZero|YZero); // If the addend is too small to effect the addition // - The addend has to shift two past the end of the product to be considered too small // - The 2 extra bits are needed for rounding - - // | 53'b0 | 106'b(product) | 1'b0 | - // | addnend | + + // | 53'b0 | 106'b(product) | 1'b0 | + // | addnend | end else if (KillZ) begin ZmShifted = 0; - ASticky = ~ZZero; + ASticky = ~ZZero; // If the Addend is shifted right - // | 53'b0 | 106'b(product) | 1'b0 | - // | addnend | + // | 53'b0 | 106'b(product) | 1'b0 | + // | addnend | end else begin ZmShifted = ZmPreshifted >> ACnt; - ASticky = |(ZmShifted[P.NF-1:0]); - + ASticky = |(ZmShifted[P.NF-1:0]); end end assign Am = ZmShifted[4*P.NF+3:P.NF]; endmodule - From 141384f60f9f8c9b0c8f4d23bc00261f68ed8899 Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 17:38:22 -0700 Subject: [PATCH 24/59] Fixed formatting --- src/fpu/postproc/cvtshiftcalc.sv | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/fpu/postproc/cvtshiftcalc.sv b/src/fpu/postproc/cvtshiftcalc.sv index 2cc42e54d..1150d4ecc 100644 --- a/src/fpu/postproc/cvtshiftcalc.sv +++ b/src/fpu/postproc/cvtshiftcalc.sv @@ -27,16 +27,16 @@ //////////////////////////////////////////////////////////////////////////////////////////////// module cvtshiftcalc import cvw::*; #(parameter cvw_t P) ( - input logic XZero, // is the input zero? - input logic ToInt, // to integer conversion? - input logic IntToFp, // interger to floating point conversion? + input logic XZero, // is the input zero? + input logic ToInt, // to integer conversion? + input logic IntToFp, // interger to floating point conversion? input logic [P.FMTBITS-1:0] OutFmt, // output format input logic [P.NE:0] CvtCe, // the calculated expoent input logic [P.NF:0] Xm, // input mantissas input logic [P.CVTLEN-1:0] CvtLzcIn, // input to the Leading Zero Counter (without msb) - input logic CvtResSubnormUf, // is the conversion result subnormal or underlows - output logic CvtResUf, // does the cvt result unerflow - output logic [P.CVTLEN+P.NF:0] CvtShiftIn // number to be shifted + input logic CvtResSubnormUf, // is the conversion result subnormal or underlows + output logic CvtResUf, // does the cvt result unerflow + output logic [P.CVTLEN+P.NF:0] CvtShiftIn // number to be shifted ); logic [$clog2(P.NF):0] ResNegNF; // the result's fraction length negated (-NF) @@ -47,7 +47,7 @@ module cvtshiftcalc import cvw::*; #(parameter cvw_t P) ( // seclect the input to the shifter // fp -> int: - // | P.XLEN zeros | mantissa | 0's if nessisary | + // | P.XLEN zeros | mantissa | 0's if necessary | // . // Other problems: // - if shifting to the right (neg CalcExp) then don't a 1 in the round bit (to prevent an incorrect plus 1 later durring rounding) @@ -58,16 +58,16 @@ module cvtshiftcalc import cvw::*; #(parameter cvw_t P) ( // | P.NF-1 zeros | mantissa | 0's if nessisary | // . // - otherwise: - // | LzcInM | 0's if nessisary | + // | LzcInM | 0's if necessary | // . // change to int shift to the left one always_comb // get rid of round bit if needed // | add sticky bit if needed // | | - if (ToInt) CvtShiftIn = {{P.XLEN{1'b0}}, Xm[P.NF]&~CvtCe[P.NE], Xm[P.NF-1]|(CvtCe[P.NE]&Xm[P.NF]), Xm[P.NF-2:0], {P.CVTLEN-P.XLEN{1'b0}}}; + if (ToInt) CvtShiftIn = {{P.XLEN{1'b0}}, Xm[P.NF]&~CvtCe[P.NE], Xm[P.NF-1]|(CvtCe[P.NE]&Xm[P.NF]), Xm[P.NF-2:0], {P.CVTLEN-P.XLEN{1'b0}}}; else if (CvtResSubnormUf) CvtShiftIn = {{P.NF-1{1'b0}}, Xm, {P.CVTLEN-P.NF+1{1'b0}}}; - else CvtShiftIn = {CvtLzcIn, {P.NF+1{1'b0}}}; + else CvtShiftIn = {CvtLzcIn, {P.NF+1{1'b0}}}; // choose the negative of the fraction size if (P.FPSIZES == 1) begin @@ -79,9 +79,9 @@ module cvtshiftcalc import cvw::*; #(parameter cvw_t P) ( end else if (P.FPSIZES == 3) begin always_comb case (OutFmt) - P.FMT: ResNegNF = -($clog2(P.NF)+1)'(P.NF); - P.FMT1: ResNegNF = -($clog2(P.NF)+1)'(P.NF1); - P.FMT2: ResNegNF = -($clog2(P.NF)+1)'(P.NF2); + P.FMT: ResNegNF = -($clog2(P.NF)+1)'(P.NF); + P.FMT1: ResNegNF = -($clog2(P.NF)+1)'(P.NF1); + P.FMT2: ResNegNF = -($clog2(P.NF)+1)'(P.NF2); default: ResNegNF = 'x; endcase @@ -95,8 +95,6 @@ module cvtshiftcalc import cvw::*; #(parameter cvw_t P) ( endcase end - - // determine if the result underflows ??? -> fp // - if the first 1 is shifted out of the result then the result underflows // - can't underflow an integer to fp conversions From 469b03577d6f0b1766a288f2861cc7a85f5e14bb Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 17:39:37 -0700 Subject: [PATCH 25/59] Fixed formatting --- src/fpu/postproc/divshiftcalc.sv | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/fpu/postproc/divshiftcalc.sv b/src/fpu/postproc/divshiftcalc.sv index 8ac85b992..4f4ce8c50 100644 --- a/src/fpu/postproc/divshiftcalc.sv +++ b/src/fpu/postproc/divshiftcalc.sv @@ -31,8 +31,8 @@ module divshiftcalc import cvw::*; #(parameter cvw_t P) ( input logic [P.NE+1:0] DivQe, // divsqrt exponent output logic [P.LOGNORMSHIFTSZ-1:0] DivShiftAmt, // divsqrt shift amount output logic [P.NORMSHIFTSZ-1:0] DivShiftIn, // divsqrt shift input - output logic DivResSubnorm, // is the divsqrt result subnormal - output logic DivSubnormShiftPos // is the subnormal shift amount positive + output logic DivResSubnorm, // is the divsqrt result subnormal + output logic DivSubnormShiftPos // is the subnormal shift amount positive ); logic [P.LOGNORMSHIFTSZ-1:0] NormShift; // normalized result shift amount @@ -46,10 +46,10 @@ module divshiftcalc import cvw::*; #(parameter cvw_t P) ( // if the result is subnormal // 00000000x.xxxxxx... Exp = DivQe // .00000000xxxxxxx... >> NF+1 Exp = DivQe+NF+1 - // .00xxxxxxxxxxxxx... << DivQe+NF+1 Exp = +1 + // .00xxxxxxxxxxxxx... << DivQe+NF+1 Exp = +1 // .0000xxxxxxxxxxx... >> 1 Exp = 1 - // Left shift amount = DivQe+NF+1-1 - assign DivSubnormShift = (P.NE+2)'(P.NF)+DivQe; + // Left shift amount = DivQe+NF+1-1 + assign DivSubnormShift = (P.NE+2)'(P.NF)+DivQe; assign DivSubnormShiftPos = ~DivSubnormShift[P.NE+1]; // if the result is normalized @@ -65,7 +65,7 @@ module divshiftcalc import cvw::*; #(parameter cvw_t P) ( // if the shift amount is negitive then don't shift (keep sticky bit) // need to multiply the early termination shift by LOGR*DIVCOPIES = left shift of log2(LOGR*DIVCOPIES) assign DivSubnormShiftAmt = DivSubnormShiftPos ? DivSubnormShift[P.LOGNORMSHIFTSZ-1:0] : '0; - assign DivShiftAmt = DivResSubnorm ? DivSubnormShiftAmt : NormShift; + assign DivShiftAmt = DivResSubnorm ? DivSubnormShiftAmt : NormShift; // pre-shift the divider result for normalization assign DivShiftIn = {{P.NF{1'b0}}, DivQm, {P.NORMSHIFTSZ-P.DIVb-1-P.NF{1'b0}}}; From 8e97224cd7ac1eab4e41522ed79a7ac062e0968d Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 17:46:23 -0700 Subject: [PATCH 26/59] Fixed formatting --- src/fpu/postproc/flags.sv | 83 ++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 45 deletions(-) diff --git a/src/fpu/postproc/flags.sv b/src/fpu/postproc/flags.sv index d5745391f..4a525bb0d 100644 --- a/src/fpu/postproc/flags.sv +++ b/src/fpu/postproc/flags.sv @@ -27,50 +27,50 @@ //////////////////////////////////////////////////////////////////////////////////////////////// module flags import cvw::*; #(parameter cvw_t P) ( - input logic Xs, // X sign + input logic Xs, // X sign input logic [P.FMTBITS-1:0] OutFmt, // output format - input logic InfIn, // is a Inf input being used - input logic XInf, YInf, ZInf, // inputs are infinity - input logic NaNIn, // is a NaN input being used - input logic XSNaN, YSNaN, ZSNaN, // inputs are signaling NaNs - input logic XZero, YZero, // inputs are zero + input logic InfIn, // is a Inf input being used + input logic XInf, YInf, ZInf, // inputs are infinity + input logic NaNIn, // is a NaN input being used + input logic XSNaN, YSNaN, ZSNaN, // inputs are signaling NaNs + input logic XZero, YZero, // inputs are zero input logic [P.NE+1:0] FullRe, // Re with bits to determine sign and overflow input logic [P.NE+1:0] Me, // exponent of the normalized sum // rounding - input logic Plus1, // do you add one for rounding - input logic Round, Guard, Sticky, // bits used to determine rounding - input logic UfPlus1, // do you add one for rounding for the unbounded exponent result + input logic Plus1, // do you add one for rounding + input logic Round, Guard, Sticky, // bits used to determine rounding + input logic UfPlus1, // do you add one for rounding for the unbounded exponent result // convert - input logic CvtOp, // conversion opperation? - input logic ToInt, // convert to integer - input logic IntToFp, // convert integer to floating point - input logic Int64, // convert to 64 bit integer - input logic Signed, // convert to a signed integer + input logic CvtOp, // conversion opperation? + input logic ToInt, // convert to integer + input logic IntToFp, // convert integer to floating point + input logic Int64, // convert to 64 bit integer + input logic Signed, // convert to a signed integer input logic [P.NE:0] CvtCe, // the calculated expoent - Cvt - input logic [1:0] CvtNegResMsbs, // the negitive integer result's most significant bits + input logic [1:0] CvtNegResMsbs, // the negitive integer result's most significant bits // divsqrt - input logic DivOp, // conversion opperation? - input logic Sqrt, // Sqrt? + input logic DivOp, // conversion opperation? + input logic Sqrt, // Sqrt? // fma - input logic FmaOp, // Fma opperation? - input logic FmaAs, FmaPs, // the product and modified Z signs + input logic FmaOp, // Fma opperation? + input logic FmaAs, FmaPs, // the product and modified Z signs // flags - output logic DivByZero, // divide by zero flag - output logic Overflow, // overflow flag to select result - output logic Invalid, // invalid flag to select the result - output logic IntInvalid, // invalid integer result to select - output logic [4:0] PostProcFlg // flags + output logic DivByZero, // divide by zero flag + output logic Overflow, // overflow flag to select result + output logic Invalid, // invalid flag to select the result + output logic IntInvalid, // invalid integer result to select + output logic [4:0] PostProcFlg // flags ); - logic SigNaN; // is an input a signaling NaN - logic Inexact; // final inexact flag - logic FpInexact; // floating point inexact flag - logic IntInexact; // integer inexact flag - logic FmaInvalid; // integer invalid flag - logic DivInvalid; // integer invalid flag - logic Underflow; // Underflow flag - logic ResExpGteMax; // is the result greater than or equal to the maximum floating point expoent - logic ShiftGtIntSz; // is the shift greater than the the integer size (use Re to account for possible roundning "shift") + logic SigNaN; // is an input a signaling NaN + logic Inexact; // final inexact flag + logic FpInexact; // floating point inexact flag + logic IntInexact; // integer inexact flag + logic FmaInvalid; // integer invalid flag + logic DivInvalid; // integer invalid flag + logic Underflow; // Underflow flag + logic ResExpGteMax; // is the result greater than or equal to the maximum floating point expoent + logic ShiftGtIntSz; // is the shift greater than the the integer size (use Re to account for possible roundning "shift") /////////////////////////////////////////////////////////////////////////////// // Overflow @@ -86,7 +86,7 @@ module flags import cvw::*; #(parameter cvw_t P) ( // 65 = ...0 0 0 0 0 1 0 0 0 0 0 1 // | or | | or | // 33 = ...0 0 0 0 0 0 1 0 0 0 0 1 - // | or | | or | + // | or | | or | // larger or equal if: // - any of the bits after the most significan 1 is one // - the most signifcant in 65 or 33 is still a one in the number and @@ -102,9 +102,9 @@ module flags import cvw::*; #(parameter cvw_t P) ( end else if (P.FPSIZES == 3) begin always_comb case (OutFmt) - P.FMT: ResExpGteMax = &FullRe[P.NE-1:0] | FullRe[P.NE]; - P.FMT1: ResExpGteMax = &FullRe[P.NE1-1:0] | (|FullRe[P.NE:P.NE1]); - P.FMT2: ResExpGteMax = &FullRe[P.NE2-1:0] | (|FullRe[P.NE:P.NE2]); + P.FMT: ResExpGteMax = &FullRe[P.NE-1:0] | FullRe[P.NE]; + P.FMT1: ResExpGteMax = &FullRe[P.NE1-1:0] | (|FullRe[P.NE:P.NE1]); + P.FMT2: ResExpGteMax = &FullRe[P.NE2-1:0] | (|FullRe[P.NE:P.NE2]); default: ResExpGteMax = 1'bx; endcase assign ShiftGtIntSz = (|FullRe[P.NE:7]|(FullRe[6]&~Int64)) | ((|FullRe[4:0]|(FullRe[5]&Int64))&((FullRe[5]&~Int64) | FullRe[6]&Int64)); @@ -119,8 +119,7 @@ module flags import cvw::*; #(parameter cvw_t P) ( endcase assign ShiftGtIntSz = (|FullRe[P.Q_NE:7]|(FullRe[6]&~Int64)) | ((|FullRe[4:0]|(FullRe[5]&Int64))&((FullRe[5]&~Int64) | FullRe[6]&Int64)); end - - + // calulate overflow flag: // if the result is greater than or equal to the max exponent(not taking into account sign) // | and the exponent isn't negitive @@ -142,7 +141,6 @@ module flags import cvw::*; #(parameter cvw_t P) ( // | | | | | | assign Underflow = ((FullRe[P.NE+1] | (FullRe == 0) | ((FullRe == 1) & (Me == 0) & ~(UfPlus1&Guard)))&(Round|Sticky|Guard))&~(InfIn|NaNIn|DivByZero|Invalid); - /////////////////////////////////////////////////////////////////////////////// // Inexact /////////////////////////////////////////////////////////////////////////////// @@ -199,7 +197,6 @@ module flags import cvw::*; #(parameter cvw_t P) ( // - don't set flag if an input is NaN or Inf(IEEE says has to be a finite numerator) assign DivByZero = YZero&DivOp&~Sqrt&~(XZero|NaNIn|InfIn); - /////////////////////////////////////////////////////////////////////////////// // final flags /////////////////////////////////////////////////////////////////////////////// @@ -209,7 +206,3 @@ module flags import cvw::*; #(parameter cvw_t P) ( assign PostProcFlg = {Invalid|(IntInvalid&CvtOp&ToInt), DivByZero, Overflow&~(ToInt&CvtOp), Underflow&~(ToInt&CvtOp), Inexact}; endmodule - - - - From 41555b149eb0402a7d131e4c6a88c9e4ef40dbc8 Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 17:54:47 -0700 Subject: [PATCH 27/59] Fixed formatting --- src/fpu/postproc/fmashiftcalc.sv | 36 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/fpu/postproc/fmashiftcalc.sv b/src/fpu/postproc/fmashiftcalc.sv index 41fb84309..c80748061 100644 --- a/src/fpu/postproc/fmashiftcalc.sv +++ b/src/fpu/postproc/fmashiftcalc.sv @@ -27,18 +27,18 @@ //////////////////////////////////////////////////////////////////////////////////////////////// module fmashiftcalc import cvw::*; #(parameter cvw_t P) ( - input logic [P.FMTBITS-1:0] Fmt, // precision 1 = double 0 = single - input logic [P.NE+1:0] FmaSe, // sum's exponent - input logic [3*P.NF+3:0] FmaSm, // the positive sum - input logic [$clog2(3*P.NF+5)-1:0] FmaSCnt, // normalization shift count - output logic [P.NE+1:0] NormSumExp, // exponent of the normalized sum not taking into account Subnormal or zero results - output logic FmaSZero, // is the result subnormal - calculated before LZA corection - output logic FmaPreResultSubnorm, // is the result subnormal - calculated before LZA corection - output logic [$clog2(3*P.NF+5)-1:0] FmaShiftAmt, // normalization shift count - output logic [3*P.NF+5:0] FmaShiftIn // is the sum zero + input logic [P.FMTBITS-1:0] Fmt, // precision 1 = double 0 = single + input logic [P.NE+1:0] FmaSe, // sum's exponent + input logic [3*P.NF+3:0] FmaSm, // the positive sum + input logic [$clog2(3*P.NF+5)-1:0] FmaSCnt, // normalization shift count + output logic [P.NE+1:0] NormSumExp, // exponent of the normalized sum not taking into account Subnormal or zero results + output logic FmaSZero, // is the result subnormal - calculated before LZA corection + output logic FmaPreResultSubnorm, // is the result subnormal - calculated before LZA corection + output logic [$clog2(3*P.NF+5)-1:0] FmaShiftAmt, // normalization shift count + output logic [3*P.NF+5:0] FmaShiftIn // is the sum zero ); - logic [P.NE+1:0] PreNormSumExp; // the exponent of the normalized sum with the P.FLEN bias - logic [P.NE+1:0] BiasCorr; // correction for bias + logic [P.NE+1:0] PreNormSumExp; // the exponent of the normalized sum with the P.FLEN bias + logic [P.NE+1:0] BiasCorr; // correction for bias /////////////////////////////////////////////////////////////////////////////// // Normalization @@ -59,9 +59,9 @@ module fmashiftcalc import cvw::*; #(parameter cvw_t P) ( end else if (P.FPSIZES == 3) begin always_comb begin case (Fmt) - P.FMT: BiasCorr = '0; - P.FMT1: BiasCorr = (P.NE+2)'(P.BIAS1-P.BIAS); - P.FMT2: BiasCorr = (P.NE+2)'(P.BIAS2-P.BIAS); + P.FMT: BiasCorr = '0; + P.FMT1: BiasCorr = (P.NE+2)'(P.BIAS1-P.BIAS); + P.FMT2: BiasCorr = (P.NE+2)'(P.BIAS2-P.BIAS); default: BiasCorr = 'x; endcase end @@ -101,9 +101,9 @@ module fmashiftcalc import cvw::*; #(parameter cvw_t P) ( assign Sum2GEFL = $signed(PreNormSumExp) >= $signed((P.NE+2)'(-P.NF2-2+P.BIAS-P.BIAS2)) | ~|PreNormSumExp; always_comb begin case (Fmt) - P.FMT: FmaPreResultSubnorm = Sum0LEZ & Sum0GEFL & ~FmaSZero; - P.FMT1: FmaPreResultSubnorm = Sum1LEZ & Sum1GEFL & ~FmaSZero; - P.FMT2: FmaPreResultSubnorm = Sum2LEZ & Sum2GEFL & ~FmaSZero; + P.FMT: FmaPreResultSubnorm = Sum0LEZ & Sum0GEFL & ~FmaSZero; + P.FMT1: FmaPreResultSubnorm = Sum1LEZ & Sum1GEFL & ~FmaSZero; + P.FMT2: FmaPreResultSubnorm = Sum2LEZ & Sum2GEFL & ~FmaSZero; default: FmaPreResultSubnorm = 1'bx; endcase end @@ -131,5 +131,5 @@ module fmashiftcalc import cvw::*; #(parameter cvw_t P) ( // - shift once if killing a product and the result is subnormal assign FmaShiftIn = {2'b0, FmaSm}; if (P.FPSIZES == 1) assign FmaShiftAmt = FmaPreResultSubnorm ? FmaSe[$clog2(3*P.NF+5)-1:0]+($clog2(3*P.NF+5))'(P.NF+2): FmaSCnt+1; - else assign FmaShiftAmt = FmaPreResultSubnorm ? FmaSe[$clog2(3*P.NF+5)-1:0]+($clog2(3*P.NF+5))'(P.NF+2)+BiasCorr[$clog2(3*P.NF+5)-1:0]: FmaSCnt+1; + else assign FmaShiftAmt = FmaPreResultSubnorm ? FmaSe[$clog2(3*P.NF+5)-1:0]+($clog2(3*P.NF+5))'(P.NF+2)+BiasCorr[$clog2(3*P.NF+5)-1:0]: FmaSCnt+1; endmodule From 1badc8a8c5f52bc4de485ae5cd3a42127861dc22 Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 18:00:39 -0700 Subject: [PATCH 28/59] Fixed formatting --- src/fpu/postproc/negateintres.sv | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/fpu/postproc/negateintres.sv b/src/fpu/postproc/negateintres.sv index 069a1a2b9..d0aaf760b 100644 --- a/src/fpu/postproc/negateintres.sv +++ b/src/fpu/postproc/negateintres.sv @@ -27,20 +27,20 @@ //////////////////////////////////////////////////////////////////////////////////////////////// module negateintres import cvw::*; #(parameter cvw_t P) ( - input logic Signed, // is the integer input signed - input logic Int64, // is the integer input 64-bits - input logic Plus1, // should one be added for rounding? - input logic Xs, // X sign + input logic Signed, // is the integer input signed + input logic Int64, // is the integer input 64-bits + input logic Plus1, // should one be added for rounding? + input logic Xs, // X sign input logic [P.NORMSHIFTSZ-1:0] Shifted, // output from normalization shifter - output logic [1:0] CvtNegResMsbs, // most signigficant bits of possibly negated result + output logic [1:0] CvtNegResMsbs, // most signigficant bits of possibly negated result output logic [P.XLEN+1:0] CvtNegRes // possibly negated integer result ); logic [P.XLEN+1:0] CvtPreRes; // integer result with rounding - logic [2:0] CvtNegResMsbs3; // first three msbs of possibly negated result + logic [2:0] CvtNegResMsbs3; // first three msbs of possibly negated result // round and negate the positive res if needed - assign CvtPreRes = {2'b0, Shifted[P.NORMSHIFTSZ-1:P.NORMSHIFTSZ-P.XLEN]}+{{P.XLEN+1{1'b0}}, Plus1}; + assign CvtPreRes = {2'b0, Shifted[P.NORMSHIFTSZ-1:P.NORMSHIFTSZ-P.XLEN]}+{{P.XLEN+1{1'b0}}, Plus1}; mux2 #(P.XLEN+2) resmux(CvtPreRes, -CvtPreRes, Xs, CvtNegRes); // select 2 most significant bits From 4c1a07eb9cbef0c55c51acd2fe938125ea7740cf Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 18:06:25 -0700 Subject: [PATCH 29/59] Fixed formatting --- src/fpu/postproc/normshift.sv | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/fpu/postproc/normshift.sv b/src/fpu/postproc/normshift.sv index f80230219..f24a75fe1 100644 --- a/src/fpu/postproc/normshift.sv +++ b/src/fpu/postproc/normshift.sv @@ -27,47 +27,47 @@ //////////////////////////////////////////////////////////////////////////////////////////////// // convert shift - // fp -> int: | `XLEN zeros | Mantissa | 0's if nessisary | << CalcExp + // fp -> int: | `XLEN zeros | Mantissa | 0's if necessary | << CalcExp // process: // - start - CalcExp = 1 + XExp - Largest Bias - // | `XLEN zeros | Mantissa | 0's if nessisary | + // | `XLEN zeros | Mantissa | 0's if necessary | // // - shift left 1 (1) - // | `XLEN-1 zeros |bit| frac | 0's if nessisary | + // | `XLEN-1 zeros |bit| frac | 0's if necessary | // . <- binary point // // - shift left till unbiased exponent is 0 (XExp - Largest Bias) - // | 0's | Mantissa | 0's if nessisary | + // | 0's | Mantissa | 0's if necessary | // | keep | // // fp -> fp: // - if result is subnormal or underflowed: - // | `NF-1 zeros | Mantissa | 0's if nessisary | << NF+CalcExp-1 + // | `NF-1 zeros | Mantissa | 0's if necessary | << NF+CalcExp-1 // process: // - start // | mantissa | 0's | // // - shift right by NF-1 (NF-1) - // | `NF-1 zeros | mantissa | 0's | + // | `NF-1 zeros | mantissa | 0's | // // - shift left by CalcExp = XExp - Largest bias + new bias // | 0's | mantissa | 0's | // | keep | // // - if the input is subnormal: - // | lzcIn | 0's if nessisary | << ZeroCnt+1 + // | lzcIn | 0's if necessary | << ZeroCnt+1 // - plus 1 to shift out the first 1 // - // int -> fp: | lzcIn | 0's if nessisary | << ZeroCnt+1 + // int -> fp: | lzcIn | 0's if necessary | << ZeroCnt+1 // - plus 1 to shift out the first 1 // fma shift - // | 00 | Sm | << LZA output + // | 00 | Sm | << LZA output // . // - two extra bits so we can correct for an LZA error of 1 or 2 // divsqrt shift - // | Nf 0's | Qm | << calculated shift amount + // | Nf 0's | Qm | << calculated shift amount // . module normshift import cvw::*; #(parameter cvw_t P) ( From e4de9ae87c6af9f1961c165aae4d5c9b319acf2e Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 18:18:24 -0700 Subject: [PATCH 30/59] Fixed formatting --- src/fpu/postproc/postprocess.sv | 168 ++++++++++++++++---------------- 1 file changed, 84 insertions(+), 84 deletions(-) diff --git a/src/fpu/postproc/postprocess.sv b/src/fpu/postproc/postprocess.sv index be06fbdd3..ee96b34d2 100644 --- a/src/fpu/postproc/postprocess.sv +++ b/src/fpu/postproc/postprocess.sv @@ -28,100 +28,100 @@ module postprocess import cvw::*; #(parameter cvw_t P) ( // general signals - input logic Xs, Ys, // input signs - input logic [P.NF:0] Xm, Ym, Zm, // input mantissas - input logic [2:0] Frm, // rounding mode 000 = rount to nearest, ties to even 001 = round twords zero 010 = round down 011 = round up 100 = round to nearest, ties to max magnitude - input logic [P.FMTBITS-1:0] Fmt, // precision 1 = double 0 = single - input logic [2:0] OpCtrl, // choose which opperation (look below for values) - input logic XZero, YZero, // inputs are zero - input logic XInf, YInf, ZInf, // inputs are infinity - input logic XNaN, YNaN, ZNaN, // inputs are NaN - input logic XSNaN, YSNaN, ZSNaN, // inputs are signaling NaNs - input logic [1:0] PostProcSel, // select result to be written to fp register + input logic Xs, Ys, // input signs + input logic [P.NF:0] Xm, Ym, Zm, // input mantissas + input logic [2:0] Frm, // rounding mode 000 = rount to nearest, ties to even 001 = round twords zero 010 = round down 011 = round up 100 = round to nearest, ties to max magnitude + input logic [P.FMTBITS-1:0] Fmt, // precision 1 = double 0 = single + input logic [2:0] OpCtrl, // choose which opperation (look below for values) + input logic XZero, YZero, // inputs are zero + input logic XInf, YInf, ZInf, // inputs are infinity + input logic XNaN, YNaN, ZNaN, // inputs are NaN + input logic XSNaN, YSNaN, ZSNaN, // inputs are signaling NaNs + input logic [1:0] PostProcSel, // select result to be written to fp register //fma signals - input logic FmaAs, // the modified Z sign - depends on instruction - input logic FmaPs, // the product's sign - input logic FmaSs, // Sum sign - input logic [P.NE+1:0] FmaSe, // the sum's exponent - input logic [3*P.NF+3:0] FmaSm, // the positive sum - input logic FmaASticky, // sticky bit that is calculated during alignment - input logic [$clog2(3*P.NF+5)-1:0] FmaSCnt, // the normalization shift count + input logic FmaAs, // the modified Z sign - depends on instruction + input logic FmaPs, // the product's sign + input logic FmaSs, // Sum sign + input logic [P.NE+1:0] FmaSe, // the sum's exponent + input logic [3*P.NF+3:0] FmaSm, // the positive sum + input logic FmaASticky, // sticky bit that is calculated during alignment + input logic [$clog2(3*P.NF+5)-1:0] FmaSCnt, // the normalization shift count //divide signals - input logic DivSticky, // divider sticky bit - input logic [P.NE+1:0] DivQe, // divsqrt exponent - input logic [P.DIVb:0] DivQm, // divsqrt significand + input logic DivSticky, // divider sticky bit + input logic [P.NE+1:0] DivQe, // divsqrt exponent + input logic [P.DIVb:0] DivQm, // divsqrt significand // conversion signals - input logic CvtCs, // the result's sign - input logic [P.NE:0] CvtCe, // the calculated expoent - input logic CvtResSubnormUf, // the convert result is subnormal or underflows - input logic [P.LOGCVTLEN-1:0] CvtShiftAmt,// how much to shift by - input logic ToInt, // is fp->int (since it's writting to the integer register) - input logic [P.CVTLEN-1:0] CvtLzcIn, // input to the Leading Zero Counter (without msb) - input logic IntZero, // is the integer input zero + input logic CvtCs, // the result's sign + input logic [P.NE:0] CvtCe, // the calculated expoent + input logic CvtResSubnormUf, // the convert result is subnormal or underflows + input logic [P.LOGCVTLEN-1:0] CvtShiftAmt, // how much to shift by + input logic ToInt, // is fp->int (since it's writting to the integer register) + input logic [P.CVTLEN-1:0] CvtLzcIn, // input to the Leading Zero Counter (without msb) + input logic IntZero, // is the integer input zero // final results - output logic [P.FLEN-1:0] PostProcRes,// postprocessor final result - output logic [4:0] PostProcFlg,// postprocesser flags - output logic [P.XLEN-1:0] FCvtIntRes // the integer conversion result + output logic [P.FLEN-1:0] PostProcRes, // postprocessor final result + output logic [4:0] PostProcFlg, // postprocesser flags + output logic [P.XLEN-1:0] FCvtIntRes // the integer conversion result ); // general signals - logic Rs; // result sign - logic [P.NF-1:0] Rf; // Result fraction - logic [P.NE-1:0] Re; // Result exponent - logic Ms; // norMalized sign - logic [P.CORRSHIFTSZ-1:0] Mf; // norMalized fraction - logic [P.NE+1:0] Me; // normalized exponent - logic [P.NE+1:0] FullRe; // Re with bits to determine sign and overflow - logic UfPlus1; // do you add one (for determining underflow flag) - logic [P.LOGNORMSHIFTSZ-1:0] ShiftAmt; // normalization shift amount - logic [P.NORMSHIFTSZ-1:0] ShiftIn; // input to normalization shift - logic [P.NORMSHIFTSZ-1:0] Shifted; // the ouput of the normalized shifter (before shift correction) - logic Plus1; // add one to the final result? - logic Overflow; // overflow flag used to select results - logic Invalid; // invalid flag used to select results - logic Guard, Round, Sticky; // bits needed to determine rounding - logic [P.FMTBITS-1:0] OutFmt; // output format + logic Rs; // result sign + logic [P.NF-1:0] Rf; // Result fraction + logic [P.NE-1:0] Re; // Result exponent + logic Ms; // norMalized sign + logic [P.CORRSHIFTSZ-1:0] Mf; // norMalized fraction + logic [P.NE+1:0] Me; // normalized exponent + logic [P.NE+1:0] FullRe; // Re with bits to determine sign and overflow + logic UfPlus1; // do you add one (for determining underflow flag) + logic [P.LOGNORMSHIFTSZ-1:0] ShiftAmt; // normalization shift amount + logic [P.NORMSHIFTSZ-1:0] ShiftIn; // input to normalization shift + logic [P.NORMSHIFTSZ-1:0] Shifted; // the ouput of the normalized shifter (before shift correction) + logic Plus1; // add one to the final result? + logic Overflow; // overflow flag used to select results + logic Invalid; // invalid flag used to select results + logic Guard, Round, Sticky; // bits needed to determine rounding + logic [P.FMTBITS-1:0] OutFmt; // output format // fma signals - logic [P.NE+1:0] FmaMe; // exponent of the normalized sum - logic FmaSZero; // is the sum zero - logic [3*P.NF+5:0] FmaShiftIn; // fma shift input - logic [P.NE+1:0] NormSumExp; // exponent of the normalized sum not taking into account Subnormal or zero results - logic FmaPreResultSubnorm; // is the result subnormal - calculated before LZA corection - logic [$clog2(3*P.NF+5)-1:0] FmaShiftAmt;// normalization shift amount for fma + logic [P.NE+1:0] FmaMe; // exponent of the normalized sum + logic FmaSZero; // is the sum zero + logic [3*P.NF+5:0] FmaShiftIn; // fma shift input + logic [P.NE+1:0] NormSumExp; // exponent of the normalized sum not taking into account Subnormal or zero results + logic FmaPreResultSubnorm; // is the result subnormal - calculated before LZA corection + logic [$clog2(3*P.NF+5)-1:0] FmaShiftAmt; // normalization shift amount for fma // division singals - logic [P.LOGNORMSHIFTSZ-1:0] DivShiftAmt; // divsqrt shif amount - logic [P.NORMSHIFTSZ-1:0] DivShiftIn; // divsqrt shift input - logic [P.NE+1:0] Qe; // divsqrt corrected exponent after corretion shift - logic DivByZero; // divide by zero flag - logic DivResSubnorm; // is the divsqrt result subnormal - logic DivSubnormShiftPos; // is the divsqrt subnorm shift amout positive (not underflowed) + logic [P.LOGNORMSHIFTSZ-1:0] DivShiftAmt; // divsqrt shif amount + logic [P.NORMSHIFTSZ-1:0] DivShiftIn; // divsqrt shift input + logic [P.NE+1:0] Qe; // divsqrt corrected exponent after corretion shift + logic DivByZero; // divide by zero flag + logic DivResSubnorm; // is the divsqrt result subnormal + logic DivSubnormShiftPos; // is the divsqrt subnorm shift amout positive (not underflowed) // conversion signals - logic [P.CVTLEN+P.NF:0] CvtShiftIn; // number to be shifted for converter - logic [1:0] CvtNegResMsbs; // most significant bits of possibly negated int result - logic [P.XLEN+1:0] CvtNegRes; // possibly negated integer result - logic CvtResUf; // did the convert result underflow - logic IntInvalid; // invalid integer flag + logic [P.CVTLEN+P.NF:0] CvtShiftIn; // number to be shifted for converter + logic [1:0] CvtNegResMsbs; // most significant bits of possibly negated int result + logic [P.XLEN+1:0] CvtNegRes; // possibly negated integer result + logic CvtResUf; // did the convert result underflow + logic IntInvalid; // invalid integer flag // readability signals - logic Mult; // multiply opperation - logic Sqrt; // is the divsqrt opperation sqrt - logic Int64; // is the integer 64 bits? - logic Signed; // is the opperation with a signed integer? - logic IntToFp; // is the opperation an int->fp conversion? - logic CvtOp; // convertion opperation - logic FmaOp; // fma opperation - logic DivOp; // divider opperation - logic InfIn; // are any of the inputs infinity - logic NaNIn; // are any of the inputs NaN + logic Mult; // multiply opperation + logic Sqrt; // is the divsqrt opperation sqrt + logic Int64; // is the integer 64 bits? + logic Signed; // is the opperation with a signed integer? + logic IntToFp; // is the opperation an int->fp conversion? + logic CvtOp; // convertion opperation + logic FmaOp; // fma opperation + logic DivOp; // divider opperation + logic InfIn; // are any of the inputs infinity + logic NaNIn; // are any of the inputs NaN // signals to help readability - assign Signed = OpCtrl[0]; - assign Int64 = OpCtrl[1]; + assign Signed = OpCtrl[0]; + assign Int64 = OpCtrl[1]; assign IntToFp = OpCtrl[2]; - assign Mult = OpCtrl[2]&~OpCtrl[1]&~OpCtrl[0]; - assign CvtOp = (PostProcSel == 2'b00); - assign FmaOp = (PostProcSel == 2'b10); - assign DivOp = (PostProcSel == 2'b01); - assign Sqrt = OpCtrl[0]; + assign Mult = OpCtrl[2]&~OpCtrl[1]&~OpCtrl[0]; + assign CvtOp = (PostProcSel == 2'b00); + assign FmaOp = (PostProcSel == 2'b10); + assign DivOp = (PostProcSel == 2'b01); + assign Sqrt = OpCtrl[0]; // is there an input of infinity or NaN being used assign InfIn = XInf|YInf|ZInf; @@ -153,19 +153,19 @@ module postprocess import cvw::*; #(parameter cvw_t P) ( case(PostProcSel) 2'b10: begin // fma ShiftAmt = {{P.LOGNORMSHIFTSZ-$clog2(3*P.NF+5){1'b0}}, FmaShiftAmt}; - ShiftIn = {FmaShiftIn, {P.NORMSHIFTSZ-(3*P.NF+6){1'b0}}}; + ShiftIn = {FmaShiftIn, {P.NORMSHIFTSZ-(3*P.NF+6){1'b0}}}; end 2'b00: begin // cvt ShiftAmt = {{P.LOGNORMSHIFTSZ-$clog2(P.CVTLEN+1){1'b0}}, CvtShiftAmt}; - ShiftIn = {CvtShiftIn, {P.NORMSHIFTSZ-P.CVTLEN-P.NF-1{1'b0}}}; + ShiftIn = {CvtShiftIn, {P.NORMSHIFTSZ-P.CVTLEN-P.NF-1{1'b0}}}; end 2'b01: begin //divsqrt ShiftAmt = DivShiftAmt; - ShiftIn = DivShiftIn; + ShiftIn = DivShiftIn; end default: begin ShiftAmt = {P.LOGNORMSHIFTSZ{1'bx}}; - ShiftIn = {P.NORMSHIFTSZ{1'bx}}; + ShiftIn = {P.NORMSHIFTSZ{1'bx}}; end endcase From 7e237858a018decfced48ecd4f394b2cd385c149 Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 18:20:38 -0700 Subject: [PATCH 31/59] Fixed formatting From acbbe7941a87309796cfc61dd6d3b05849c5c7df Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 18:27:22 -0700 Subject: [PATCH 32/59] Fixed formatting --- src/fpu/postproc/round.sv | 151 +++++++++++++++++--------------------- 1 file changed, 68 insertions(+), 83 deletions(-) diff --git a/src/fpu/postproc/round.sv b/src/fpu/postproc/round.sv index 4f6ea819d..0a5d9ecc5 100644 --- a/src/fpu/postproc/round.sv +++ b/src/fpu/postproc/round.sv @@ -28,46 +28,46 @@ module round import cvw::*; #(parameter cvw_t P) ( input logic [P.FMTBITS-1:0] OutFmt, // output format - input logic [2:0] Frm, // rounding mode - input logic [1:0] PostProcSel, // select the postprocessor output - input logic Ms, // normalized sign + input logic [2:0] Frm, // rounding mode + input logic [1:0] PostProcSel, // select the postprocessor output + input logic Ms, // normalized sign input logic [P.CORRSHIFTSZ-1:0] Mf, // normalized fraction // fma - input logic FmaOp, // is an fma opperation being done? + input logic FmaOp, // is an fma opperation being done? input logic [P.NE+1:0] FmaMe, // exponent of the normalized sum for fma - input logic FmaASticky, // addend's sticky bit + input logic FmaASticky, // addend's sticky bit // divsqrt - input logic DivOp, // is a division opperation being done - input logic DivSticky, // divsqrt sticky bit + input logic DivOp, // is a division opperation being done + input logic DivSticky, // divsqrt sticky bit input logic [P.NE+1:0] Qe, // the divsqrt calculated expoent // cvt - input logic CvtOp, // is a convert opperation being done - input logic ToInt, // is the cvt op a cvt to integer - input logic CvtResSubnormUf, // is the cvt result subnormal or underflow - input logic CvtResUf, // does the cvt result underflow + input logic CvtOp, // is a convert opperation being done + input logic ToInt, // is the cvt op a cvt to integer + input logic CvtResSubnormUf, // is the cvt result subnormal or underflow + input logic CvtResUf, // does the cvt result underflow input logic [P.NE:0] CvtCe, // the cvt calculated expoent // outputs output logic [P.NE+1:0] Me, // normalied fraction - output logic UfPlus1, // do you add one to the result if given an unbounded exponent + output logic UfPlus1, // do you add one to the result if given an unbounded exponent output logic [P.NE+1:0] FullRe, // Re with bits to determine sign and overflow output logic [P.NE-1:0] Re, // Result exponent output logic [P.NF-1:0] Rf, // Result fractionNormS - output logic Sticky, // sticky bit - output logic Plus1, // do you add one to the final result - output logic Round, Guard // bits needed to calculate rounding + output logic Sticky, // sticky bit + output logic Plus1, // do you add one to the final result + output logic Round, Guard // bits needed to calculate rounding ); - logic UfCalcPlus1; // calculated plus one for unbounded exponent - logic NormSticky; // normalized sum's sticky bit - logic [P.NF-1:0] RoundFrac; // rounded fraction - logic FpRes; // is the result a floating point - logic IntRes; // is the result an integer - logic FpGuard, FpRound; // floating point round/guard bits - logic FpLsbRes; // least significant bit of floating point result - logic LsbRes; // lsb of result - logic CalcPlus1; // calculated plus1 - logic FpPlus1; // do you add one to the fp result - logic [P.FLEN:0] RoundAdd; // how much to add to the result + logic UfCalcPlus1; // calculated plus one for unbounded exponent + logic NormSticky; // normalized sum's sticky bit + logic [P.NF-1:0] RoundFrac; // rounded fraction + logic FpRes; // is the result a floating point + logic IntRes; // is the result an integer + logic FpGuard, FpRound; // floating point round/guard bits + logic FpLsbRes; // least significant bit of floating point result + logic LsbRes; // lsb of result + logic CalcPlus1; // calculated plus1 + logic FpPlus1; // do you add one to the fp result + logic [P.FLEN:0] RoundAdd; // how much to add to the result // what position is XLEN in? // options: @@ -86,7 +86,7 @@ module round import cvw::*; #(parameter cvw_t P) ( // {Round, Sticky} // 0x - do nothing // 10 - tie - Plus1 if result is odd (LSBNormSum = 1) - // - don't add 1 if a small number was supposed to be subtracted + // - don't add 1 if a small number was supposed to be subtracted // 11 - do nothing if a small number was supposed to subtracted (the sticky bit was set by the small number) // - plus 1 otherwise @@ -104,14 +104,13 @@ module round import cvw::*; #(parameter cvw_t P) ( // {Guard, Round, Sticky} // 0x - do nothing // 10 - tie - Plus1 - // - don't add 1 if a small number was supposed to be subtracted + // - don't add 1 if a small number was supposed to be subtracted // 11 - do nothing if a small number was supposed to subtracted (the sticky bit was set by the small number) // - Plus 1 otherwise - // determine what format the final result is in: int or fp assign IntRes = ToInt; - assign FpRes = ~IntRes; + assign FpRes = ~IntRes; // sticky bit calculation if (P.FPSIZES == 1) begin @@ -121,7 +120,7 @@ module round import cvw::*; #(parameter cvw_t P) ( // | NF |1|1| // ^ ^ if floating point result // ^ if not an FMA result - if (XLENPOS == 1)assign NormSticky = (|Mf[P.CORRSHIFTSZ-P.NF-2:P.CORRSHIFTSZ-P.XLEN-1]&FpRes) | + if (XLENPOS == 1)assign NormSticky = (|Mf[P.CORRSHIFTSZ-P.NF-2:P.CORRSHIFTSZ-P.XLEN-1]&FpRes) | (|Mf[P.CORRSHIFTSZ-P.XLEN-2:0]); // 2: NF > XLEN if (XLENPOS == 2)assign NormSticky = (|Mf[P.CORRSHIFTSZ-P.XLEN-2:P.CORRSHIFTSZ-P.NF-1]&IntRes) | @@ -178,113 +177,104 @@ module round import cvw::*; #(parameter cvw_t P) ( (|Mf[P.CORRSHIFTSZ-P.Q_NF-2:0]); end - - // only add the Addend sticky if doing an FMA opperation // - the shifter shifts too far left when there's an underflow (shifting out all possible sticky bits) assign Sticky = FmaASticky&FmaOp | NormSticky | CvtResUf&CvtOp | FmaMe[P.NE+1]&FmaOp | DivSticky&DivOp; - - - // determine round and LSB of the rounded value // - underflow round bit is used to determint the underflow flag if (P.FPSIZES == 1) begin - assign FpGuard = Mf[P.CORRSHIFTSZ-P.NF-1]; + assign FpGuard = Mf[P.CORRSHIFTSZ-P.NF-1]; assign FpLsbRes = Mf[P.CORRSHIFTSZ-P.NF]; - assign FpRound = Mf[P.CORRSHIFTSZ-P.NF-2]; + assign FpRound = Mf[P.CORRSHIFTSZ-P.NF-2]; end else if (P.FPSIZES == 2) begin - assign FpGuard = OutFmt ? Mf[P.CORRSHIFTSZ-P.NF-1] : Mf[P.CORRSHIFTSZ-P.NF1-1]; + assign FpGuard = OutFmt ? Mf[P.CORRSHIFTSZ-P.NF-1] : Mf[P.CORRSHIFTSZ-P.NF1-1]; assign FpLsbRes = OutFmt ? Mf[P.CORRSHIFTSZ-P.NF] : Mf[P.CORRSHIFTSZ-P.NF1]; - assign FpRound = OutFmt ? Mf[P.CORRSHIFTSZ-P.NF-2] : Mf[P.CORRSHIFTSZ-P.NF1-2]; + assign FpRound = OutFmt ? Mf[P.CORRSHIFTSZ-P.NF-2] : Mf[P.CORRSHIFTSZ-P.NF1-2]; end else if (P.FPSIZES == 3) begin always_comb case (OutFmt) P.FMT: begin - FpGuard = Mf[P.CORRSHIFTSZ-P.NF-1]; + FpGuard = Mf[P.CORRSHIFTSZ-P.NF-1]; FpLsbRes = Mf[P.CORRSHIFTSZ-P.NF]; - FpRound = Mf[P.CORRSHIFTSZ-P.NF-2]; + FpRound = Mf[P.CORRSHIFTSZ-P.NF-2]; end P.FMT1: begin - FpGuard = Mf[P.CORRSHIFTSZ-P.NF1-1]; + FpGuard = Mf[P.CORRSHIFTSZ-P.NF1-1]; FpLsbRes = Mf[P.CORRSHIFTSZ-P.NF1]; - FpRound = Mf[P.CORRSHIFTSZ-P.NF1-2]; + FpRound = Mf[P.CORRSHIFTSZ-P.NF1-2]; end P.FMT2: begin - FpGuard = Mf[P.CORRSHIFTSZ-P.NF2-1]; + FpGuard = Mf[P.CORRSHIFTSZ-P.NF2-1]; FpLsbRes = Mf[P.CORRSHIFTSZ-P.NF2]; - FpRound = Mf[P.CORRSHIFTSZ-P.NF2-2]; + FpRound = Mf[P.CORRSHIFTSZ-P.NF2-2]; end default: begin - FpGuard = 1'bx; + FpGuard = 1'bx; FpLsbRes = 1'bx; - FpRound = 1'bx; + FpRound = 1'bx; end endcase end else if (P.FPSIZES == 4) begin always_comb case (OutFmt) 2'h3: begin - FpGuard = Mf[P.CORRSHIFTSZ-P.Q_NF-1]; + FpGuard = Mf[P.CORRSHIFTSZ-P.Q_NF-1]; FpLsbRes = Mf[P.CORRSHIFTSZ-P.Q_NF]; - FpRound = Mf[P.CORRSHIFTSZ-P.Q_NF-2]; + FpRound = Mf[P.CORRSHIFTSZ-P.Q_NF-2]; end 2'h1: begin - FpGuard = Mf[P.CORRSHIFTSZ-P.D_NF-1]; + FpGuard = Mf[P.CORRSHIFTSZ-P.D_NF-1]; FpLsbRes = Mf[P.CORRSHIFTSZ-P.D_NF]; - FpRound = Mf[P.CORRSHIFTSZ-P.D_NF-2]; + FpRound = Mf[P.CORRSHIFTSZ-P.D_NF-2]; end 2'h0: begin - FpGuard = Mf[P.CORRSHIFTSZ-P.S_NF-1]; + FpGuard = Mf[P.CORRSHIFTSZ-P.S_NF-1]; FpLsbRes = Mf[P.CORRSHIFTSZ-P.S_NF]; - FpRound = Mf[P.CORRSHIFTSZ-P.S_NF-2]; + FpRound = Mf[P.CORRSHIFTSZ-P.S_NF-2]; end 2'h2: begin - FpGuard = Mf[P.CORRSHIFTSZ-P.H_NF-1]; + FpGuard = Mf[P.CORRSHIFTSZ-P.H_NF-1]; FpLsbRes = Mf[P.CORRSHIFTSZ-P.H_NF]; - FpRound = Mf[P.CORRSHIFTSZ-P.H_NF-2]; + FpRound = Mf[P.CORRSHIFTSZ-P.H_NF-2]; end endcase end - assign Guard = ToInt&CvtOp ? Mf[P.CORRSHIFTSZ-P.XLEN-1] : FpGuard; + assign Guard = ToInt&CvtOp ? Mf[P.CORRSHIFTSZ-P.XLEN-1] : FpGuard; assign LsbRes = ToInt&CvtOp ? Mf[P.CORRSHIFTSZ-P.XLEN] : FpLsbRes; - assign Round = ToInt&CvtOp ? Mf[P.CORRSHIFTSZ-P.XLEN-2] : FpRound; - + assign Round = ToInt&CvtOp ? Mf[P.CORRSHIFTSZ-P.XLEN-2] : FpRound; always_comb begin // Determine if you add 1 case (Frm) - 3'b000: CalcPlus1 = Guard & (Round|Sticky|LsbRes);//round to nearest even - 3'b001: CalcPlus1 = 0;//round to zero - 3'b010: CalcPlus1 = Ms;//round down - 3'b011: CalcPlus1 = ~Ms;//round up - 3'b100: CalcPlus1 = Guard;//round to nearest max magnitude + 3'b000: CalcPlus1 = Guard & (Round|Sticky|LsbRes);//round to nearest even + 3'b001: CalcPlus1 = 0;//round to zero + 3'b010: CalcPlus1 = Ms;//round down + 3'b011: CalcPlus1 = ~Ms;//round up + 3'b100: CalcPlus1 = Guard;//round to nearest max magnitude default: CalcPlus1 = 1'bx; endcase // Determine if you add 1 (for underflow flag) case (Frm) - 3'b000: UfCalcPlus1 = Round & (Sticky|Guard);//round to nearest even - 3'b001: UfCalcPlus1 = 0;//round to zero - 3'b010: UfCalcPlus1 = Ms;//round down - 3'b011: UfCalcPlus1 = ~Ms;//round up - 3'b100: UfCalcPlus1 = Round;//round to nearest max magnitude + 3'b000: UfCalcPlus1 = Round & (Sticky|Guard);//round to nearest even + 3'b001: UfCalcPlus1 = 0;//round to zero + 3'b010: UfCalcPlus1 = Ms;//round down + 3'b011: UfCalcPlus1 = ~Ms;//round up + 3'b100: UfCalcPlus1 = Round;//round to nearest max magnitude default: UfCalcPlus1 = 1'bx; endcase end // If an answer is exact don't round - assign Plus1 = CalcPlus1 & (Sticky|Round|Guard); + assign Plus1 = CalcPlus1 & (Sticky|Round|Guard); assign FpPlus1 = Plus1&~(ToInt&CvtOp); assign UfPlus1 = UfCalcPlus1 & (Sticky|Round); - - - // place Plus1 into the proper position for the format if (P.FPSIZES == 1) begin assign RoundAdd = {{P.FLEN{1'b0}}, FpPlus1}; @@ -302,21 +292,17 @@ module round import cvw::*; #(parameter cvw_t P) ( end else if (P.FPSIZES == 4) assign RoundAdd = {(P.Q_NE+1+P.H_NF)'(0), FpPlus1&(OutFmt==P.H_FMT), (P.S_NF-P.H_NF-1)'(0), FpPlus1&(OutFmt==P.S_FMT), (P.D_NF-P.S_NF-1)'(0), FpPlus1&(OutFmt==P.D_FMT), (P.Q_NF-P.D_NF-1)'(0), FpPlus1&(OutFmt==P.Q_FMT)}; - - // trim unneeded bits from fraction assign RoundFrac = Mf[P.CORRSHIFTSZ-1:P.CORRSHIFTSZ-P.NF]; - - // select the exponent always_comb case(PostProcSel) - 2'b10: Me = FmaMe; // fma - 2'b00: Me = {CvtCe[P.NE], CvtCe}&{P.NE+2{~CvtResSubnormUf|CvtResUf}}; // cvt + 2'b10: Me = FmaMe; // fma + 2'b00: Me = {CvtCe[P.NE], CvtCe}&{P.NE+2{~CvtResSubnormUf|CvtResUf}}; // cvt // 2'b01: Me = DivDone ? Qe : '0; // divide - 2'b01: Me = Qe; // divide - default: Me = '0; + 2'b01: Me = Qe; // divide + default: Me = '0; endcase @@ -324,7 +310,6 @@ module round import cvw::*; #(parameter cvw_t P) ( // round the result // - if the fraction overflows one should be added to the exponent assign {FullRe, Rf} = {Me, RoundFrac} + RoundAdd; - assign Re = FullRe[P.NE-1:0]; - + assign Re = FullRe[P.NE-1:0]; endmodule From 7e201d1e8c19b3b02200c0c964743326d4b800cf Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 18:28:27 -0700 Subject: [PATCH 33/59] Fixed formatting From 603ed2160e110fc91af112b6a962bd37325f1d31 Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 18:30:23 -0700 Subject: [PATCH 34/59] Fixed formatting --- src/fpu/postproc/shiftcorrection.sv | 32 ++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/fpu/postproc/shiftcorrection.sv b/src/fpu/postproc/shiftcorrection.sv index 1a4613d5f..9e0473667 100644 --- a/src/fpu/postproc/shiftcorrection.sv +++ b/src/fpu/postproc/shiftcorrection.sv @@ -29,41 +29,41 @@ module shiftcorrection import cvw::*; #(parameter cvw_t P) ( input logic [P.NORMSHIFTSZ-1:0] Shifted, // the shifted sum before LZA correction // divsqrt - input logic DivOp, // is it a divsqrt opperation - input logic DivResSubnorm, // is the divsqrt result subnormal + input logic DivOp, // is it a divsqrt opperation + input logic DivResSubnorm, // is the divsqrt result subnormal input logic [P.NE+1:0] DivQe, // the divsqrt result's exponent - input logic DivSubnormShiftPos, // is the subnorm divider shift amount positive (ie not underflowed) + input logic DivSubnormShiftPos, // is the subnorm divider shift amount positive (ie not underflowed) //fma - input logic FmaOp, // is it an fma opperation + input logic FmaOp, // is it an fma opperation input logic [P.NE+1:0] NormSumExp, // exponent of the normalized sum not taking into account Subnormal or zero results - input logic FmaPreResultSubnorm, // is the result subnormal - calculated before LZA corection - input logic FmaSZero, + input logic FmaPreResultSubnorm, // is the result subnormal - calculated before LZA corection + input logic FmaSZero, // output output logic [P.NE+1:0] FmaMe, // exponent of the normalized sum output logic [P.CORRSHIFTSZ-1:0] Mf, // the shifted sum before LZA correction output logic [P.NE+1:0] Qe // corrected exponent for divider ); - logic [3*P.NF+3:0] CorrSumShifted; // the shifted sum after LZA correction - logic [P.CORRSHIFTSZ-1:0] CorrQm0, CorrQm1; // portions of Shifted to select for CorrQmShifted - logic [P.CORRSHIFTSZ-1:0] CorrQmShifted; // the shifted divsqrt result after one bit shift - logic ResSubnorm; // is the result Subnormal - logic LZAPlus1; // add one or two to the sum's exponent due to LZA correction - logic LeftShiftQm; // should the divsqrt result be shifted one to the left + logic [3*P.NF+3:0] CorrSumShifted; // the shifted sum after LZA correction + logic [P.CORRSHIFTSZ-1:0] CorrQm0, CorrQm1; // portions of Shifted to select for CorrQmShifted + logic [P.CORRSHIFTSZ-1:0] CorrQmShifted; // the shifted divsqrt result after one bit shift + logic ResSubnorm; // is the result Subnormal + logic LZAPlus1; // add one or two to the sum's exponent due to LZA correction + logic LeftShiftQm; // should the divsqrt result be shifted one to the left // LZA correction assign LZAPlus1 = Shifted[P.NORMSHIFTSZ-1]; // correct the shifting error caused by the LZA // - the only possible mantissa for a plus two is all zeroes - // - a one has to propigate all the way through a sum. so we can leave the bottom statement alone + // - a one has to propigate all the way through a sum. so we can leave the bottom statement alone mux2 #(P.NORMSHIFTSZ-2) lzacorrmux(Shifted[P.NORMSHIFTSZ-3:0], Shifted[P.NORMSHIFTSZ-2:1], LZAPlus1, CorrSumShifted); // correct the shifting of the divsqrt caused by producing a result in (2, .5] range - // condition: if the msb is 1 or the exponent was one, but the shifted quotent was < 1 (Subnorm) + // condition: if the msb is 1 or the exponent was one, but the shifted quotent was < 1 (Subnorm) assign LeftShiftQm = (LZAPlus1|(DivQe==1&~LZAPlus1)); - assign CorrQm0 = Shifted[P.NORMSHIFTSZ-3:P.NORMSHIFTSZ-P.CORRSHIFTSZ-2]; - assign CorrQm1 = Shifted[P.NORMSHIFTSZ-2:P.NORMSHIFTSZ-P.CORRSHIFTSZ-1]; + assign CorrQm0 = Shifted[P.NORMSHIFTSZ-3:P.NORMSHIFTSZ-P.CORRSHIFTSZ-2]; + assign CorrQm1 = Shifted[P.NORMSHIFTSZ-2:P.NORMSHIFTSZ-P.CORRSHIFTSZ-1]; mux2 #(P.CORRSHIFTSZ) divcorrmux(CorrQm0, CorrQm1, LeftShiftQm, CorrQmShifted); // if the result of the divider was calculated to be subnormal, then the result was correctly normalized, so select the top shifted bits From 7ed4cf97ed8ab25398a0783a7e655f4956509f38 Mon Sep 17 00:00:00 2001 From: Harshini Srinath <93847878+harshinisrinath1001@users.noreply.github.com> Date: Sun, 30 Jul 2023 18:36:25 -0700 Subject: [PATCH 35/59] Fixed formatting --- src/fpu/postproc/specialcase.sv | 165 ++++++++++++++++---------------- 1 file changed, 82 insertions(+), 83 deletions(-) diff --git a/src/fpu/postproc/specialcase.sv b/src/fpu/postproc/specialcase.sv index 3825a0f78..c8442595a 100644 --- a/src/fpu/postproc/specialcase.sv +++ b/src/fpu/postproc/specialcase.sv @@ -27,39 +27,39 @@ //////////////////////////////////////////////////////////////////////////////////////////////// module specialcase import cvw::*; #(parameter cvw_t P) ( - input logic Xs, // X sign - input logic [P.NF:0] Xm, Ym, Zm, // input significand's - input logic XNaN, YNaN, ZNaN, // are the inputs NaN - input logic [2:0] Frm, // rounding mode - input logic [P.FMTBITS-1:0] OutFmt, // output format - input logic InfIn, // are any inputs infinity - input logic NaNIn, // are any input NaNs - input logic XInf, YInf, // are X or Y inifnity - input logic XZero, // is X zero - input logic Plus1, // do you add one for rounding - input logic Rs, // the result's sign - input logic Invalid, Overflow, // flags to choose the result - input logic [P.NE-1:0] Re, // Result exponent - input logic [P.NE+1:0] FullRe, // Result full exponent - input logic [P.NF-1:0] Rf, // Result fraction + input logic Xs, // X sign + input logic [P.NF:0] Xm, Ym, Zm, // input significand's + input logic XNaN, YNaN, ZNaN, // are the inputs NaN + input logic [2:0] Frm, // rounding mode + input logic [P.FMTBITS-1:0] OutFmt, // output format + input logic InfIn, // are any inputs infinity + input logic NaNIn, // are any input NaNs + input logic XInf, YInf, // are X or Y inifnity + input logic XZero, // is X zero + input logic Plus1, // do you add one for rounding + input logic Rs, // the result's sign + input logic Invalid, Overflow, // flags to choose the result + input logic [P.NE-1:0] Re, // Result exponent + input logic [P.NE+1:0] FullRe, // Result full exponent + input logic [P.NF-1:0] Rf, // Result fraction // fma - input logic FmaOp, // is it a fma opperation + input logic FmaOp, // is it a fma opperation // divsqrt - input logic DivOp, // is it a divsqrt opperation - input logic DivByZero, // divide by zero flag + input logic DivOp, // is it a divsqrt opperation + input logic DivByZero, // divide by zero flag // cvt - input logic CvtOp, // is it a conversion opperation - input logic IntZero, // is the integer input zero - input logic IntToFp, // is cvt int -> fp opperation - input logic Int64, // is the integer 64 bits - input logic Signed, // is the integer signed - input logic [P.NE:0] CvtCe, // the calculated expoent for cvt - input logic IntInvalid, // integer invalid flag to choose the result - input logic CvtResUf, // does the convert result underflow - input logic [P.XLEN+1:0] CvtNegRes, // the possibly negated of the integer result + input logic CvtOp, // is it a conversion opperation + input logic IntZero, // is the integer input zero + input logic IntToFp, // is cvt int -> fp opperation + input logic Int64, // is the integer 64 bits + input logic Signed, // is the integer signed + input logic [P.NE:0] CvtCe, // the calculated expoent for cvt + input logic IntInvalid, // integer invalid flag to choose the result + input logic CvtResUf, // does the convert result underflow + input logic [P.XLEN+1:0] CvtNegRes, // the possibly negated of the integer result // outputs - output logic [P.FLEN-1:0] PostProcRes,// final result - output logic [P.XLEN-1:0] FCvtIntRes // final integer result + output logic [P.FLEN-1:0] PostProcRes, // final result + output logic [P.XLEN-1:0] FCvtIntRes // final integer result ); logic [P.FLEN-1:0] XNaNRes; // X is NaN result @@ -70,9 +70,9 @@ module specialcase import cvw::*; #(parameter cvw_t P) ( logic [P.FLEN-1:0] OfRes; // overflowed result result logic [P.FLEN-1:0] NormRes; // normal result logic [P.XLEN-1:0] OfIntRes; // the overflow result for integer output - logic OfResMax; // does the of result output maximum norm fp number - logic KillRes; // kill the result for underflow - logic SelOfRes; // should the overflow result be selected + logic OfResMax; // does the of result output maximum norm fp number + logic KillRes; // kill the result for underflow + logic SelOfRes; // should the overflow result be selected // does the overflow result output the maximum normalized floating point number @@ -83,23 +83,23 @@ module specialcase import cvw::*; #(parameter cvw_t P) ( if (P.FPSIZES == 1) begin //NaN res selection depending on standard if(P.IEEE754) begin - assign XNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Xm[P.NF-2:0]}; - assign YNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Ym[P.NF-2:0]}; - assign ZNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Zm[P.NF-2:0]}; + assign XNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Xm[P.NF-2:0]}; + assign YNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Ym[P.NF-2:0]}; + assign ZNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Zm[P.NF-2:0]}; assign InvalidRes = {1'b0, {P.NE{1'b1}}, 1'b1, {P.NF-1{1'b0}}}; end else begin assign InvalidRes = {1'b0, {P.NE{1'b1}}, 1'b1, {P.NF-1{1'b0}}}; end - assign OfRes = OfResMax ? {Rs, {P.NE-1{1'b1}}, 1'b0, {P.NF{1'b1}}} : {Rs, {P.NE{1'b1}}, {P.NF{1'b0}}}; - assign UfRes = {Rs, {P.FLEN-2{1'b0}}, Plus1&Frm[1]&~(DivOp&YInf)}; + assign OfRes = OfResMax ? {Rs, {P.NE-1{1'b1}}, 1'b0, {P.NF{1'b1}}} : {Rs, {P.NE{1'b1}}, {P.NF{1'b0}}}; + assign UfRes = {Rs, {P.FLEN-2{1'b0}}, Plus1&Frm[1]&~(DivOp&YInf)}; assign NormRes = {Rs, Re, Rf}; end else if (P.FPSIZES == 2) begin if(P.IEEE754) begin - assign XNaNRes = OutFmt ? {1'b0, {P.NE{1'b1}}, 1'b1, Xm[P.NF-2:0]} : {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, Xm[P.NF-2:P.NF-P.NF1]}; - assign YNaNRes = OutFmt ? {1'b0, {P.NE{1'b1}}, 1'b1, Ym[P.NF-2:0]} : {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, Ym[P.NF-2:P.NF-P.NF1]}; - assign ZNaNRes = OutFmt ? {1'b0, {P.NE{1'b1}}, 1'b1, Zm[P.NF-2:0]} : {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, Zm[P.NF-2:P.NF-P.NF1]}; + assign XNaNRes = OutFmt ? {1'b0, {P.NE{1'b1}}, 1'b1, Xm[P.NF-2:0]} : {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, Xm[P.NF-2:P.NF-P.NF1]}; + assign YNaNRes = OutFmt ? {1'b0, {P.NE{1'b1}}, 1'b1, Ym[P.NF-2:0]} : {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, Ym[P.NF-2:P.NF-P.NF1]}; + assign ZNaNRes = OutFmt ? {1'b0, {P.NE{1'b1}}, 1'b1, Zm[P.NF-2:0]} : {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, Zm[P.NF-2:P.NF-P.NF1]}; assign InvalidRes = OutFmt ? {1'b0, {P.NE{1'b1}}, 1'b1, {P.NF-1{1'b0}}} : {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, (P.NF1-1)'(0)}; end else begin assign InvalidRes = OutFmt ? {1'b0, {P.NE{1'b1}}, 1'b1, {P.NF-1{1'b0}}} : {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, (P.NF1-1)'(0)}; @@ -120,57 +120,57 @@ module specialcase import cvw::*; #(parameter cvw_t P) ( case (OutFmt) P.FMT: begin if(P.IEEE754) begin - XNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Xm[P.NF-2:0]}; - YNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Ym[P.NF-2:0]}; - ZNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Zm[P.NF-2:0]}; + XNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Xm[P.NF-2:0]}; + YNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Ym[P.NF-2:0]}; + ZNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Zm[P.NF-2:0]}; InvalidRes = {1'b0, {P.NE{1'b1}}, 1'b1, {P.NF-1{1'b0}}}; end else begin InvalidRes = {1'b0, {P.NE{1'b1}}, 1'b1, {P.NF-1{1'b0}}}; end - OfRes = OfResMax ? {Rs, {P.NE-1{1'b1}}, 1'b0, {P.NF{1'b1}}} : {Rs, {P.NE{1'b1}}, {P.NF{1'b0}}}; - UfRes = {Rs, (P.FLEN-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; + OfRes = OfResMax ? {Rs, {P.NE-1{1'b1}}, 1'b0, {P.NF{1'b1}}} : {Rs, {P.NE{1'b1}}, {P.NF{1'b0}}}; + UfRes = {Rs, (P.FLEN-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; NormRes = {Rs, Re, Rf}; end P.FMT1: begin if(P.IEEE754) begin - XNaNRes = {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, Xm[P.NF-2:P.NF-P.NF1]}; - YNaNRes = {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, Ym[P.NF-2:P.NF-P.NF1]}; - ZNaNRes = {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, Zm[P.NF-2:P.NF-P.NF1]}; + XNaNRes = {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, Xm[P.NF-2:P.NF-P.NF1]}; + YNaNRes = {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, Ym[P.NF-2:P.NF-P.NF1]}; + ZNaNRes = {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, Zm[P.NF-2:P.NF-P.NF1]}; InvalidRes = {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, (P.NF1-1)'(0)}; end else begin InvalidRes = {{P.FLEN-P.LEN1{1'b1}}, 1'b0, {P.NE1{1'b1}}, 1'b1, (P.NF1-1)'(0)}; end - OfRes = OfResMax ? {{P.FLEN-P.LEN1{1'b1}}, Rs, {P.NE1-1{1'b1}}, 1'b0, {P.NF1{1'b1}}} : {{P.FLEN-P.LEN1{1'b1}}, Rs, {P.NE1{1'b1}}, (P.NF1)'(0)}; - UfRes = {{P.FLEN-P.LEN1{1'b1}}, Rs, (P.LEN1-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; - NormRes = {{P.FLEN-P.LEN1{1'b1}}, Rs, Re[P.NE1-1:0], Rf[P.NF-1:P.NF-P.NF1]}; + OfRes = OfResMax ? {{P.FLEN-P.LEN1{1'b1}}, Rs, {P.NE1-1{1'b1}}, 1'b0, {P.NF1{1'b1}}} : {{P.FLEN-P.LEN1{1'b1}}, Rs, {P.NE1{1'b1}}, (P.NF1)'(0)}; + UfRes = {{P.FLEN-P.LEN1{1'b1}}, Rs, (P.LEN1-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; + NormRes = {{P.FLEN-P.LEN1{1'b1}}, Rs, Re[P.NE1-1:0], Rf[P.NF-1:P.NF-P.NF1]}; end P.FMT2: begin if(P.IEEE754) begin - XNaNRes = {{P.FLEN-P.LEN2{1'b1}}, 1'b0, {P.NE2{1'b1}}, 1'b1, Xm[P.NF-2:P.NF-P.NF2]}; - YNaNRes = {{P.FLEN-P.LEN2{1'b1}}, 1'b0, {P.NE2{1'b1}}, 1'b1, Ym[P.NF-2:P.NF-P.NF2]}; - ZNaNRes = {{P.FLEN-P.LEN2{1'b1}}, 1'b0, {P.NE2{1'b1}}, 1'b1, Zm[P.NF-2:P.NF-P.NF2]}; + XNaNRes = {{P.FLEN-P.LEN2{1'b1}}, 1'b0, {P.NE2{1'b1}}, 1'b1, Xm[P.NF-2:P.NF-P.NF2]}; + YNaNRes = {{P.FLEN-P.LEN2{1'b1}}, 1'b0, {P.NE2{1'b1}}, 1'b1, Ym[P.NF-2:P.NF-P.NF2]}; + ZNaNRes = {{P.FLEN-P.LEN2{1'b1}}, 1'b0, {P.NE2{1'b1}}, 1'b1, Zm[P.NF-2:P.NF-P.NF2]}; InvalidRes = {{P.FLEN-P.LEN2{1'b1}}, 1'b0, {P.NE2{1'b1}}, 1'b1, (P.NF2-1)'(0)}; end else begin InvalidRes = {{P.FLEN-P.LEN2{1'b1}}, 1'b0, {P.NE2{1'b1}}, 1'b1, (P.NF2-1)'(0)}; end - OfRes = OfResMax ? {{P.FLEN-P.LEN2{1'b1}}, Rs, {P.NE2-1{1'b1}}, 1'b0, {P.NF2{1'b1}}} : {{P.FLEN-P.LEN2{1'b1}}, Rs, {P.NE2{1'b1}}, (P.NF2)'(0)}; - UfRes = {{P.FLEN-P.LEN2{1'b1}}, Rs, (P.LEN2-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; + OfRes = OfResMax ? {{P.FLEN-P.LEN2{1'b1}}, Rs, {P.NE2-1{1'b1}}, 1'b0, {P.NF2{1'b1}}} : {{P.FLEN-P.LEN2{1'b1}}, Rs, {P.NE2{1'b1}}, (P.NF2)'(0)}; + UfRes = {{P.FLEN-P.LEN2{1'b1}}, Rs, (P.LEN2-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; NormRes = {{P.FLEN-P.LEN2{1'b1}}, Rs, Re[P.NE2-1:0], Rf[P.NF-1:P.NF-P.NF2]}; end default: begin if(P.IEEE754) begin - XNaNRes = (P.FLEN)'(0); - YNaNRes = (P.FLEN)'(0); - ZNaNRes = (P.FLEN)'(0); + XNaNRes = (P.FLEN)'(0); + YNaNRes = (P.FLEN)'(0); + ZNaNRes = (P.FLEN)'(0); InvalidRes = (P.FLEN)'(0); end else begin InvalidRes = (P.FLEN)'(0); end - OfRes = (P.FLEN)'(0); - UfRes = (P.FLEN)'(0); - NormRes = (P.FLEN)'(0); + OfRes = (P.FLEN)'(0); + UfRes = (P.FLEN)'(0); + NormRes = (P.FLEN)'(0); end endcase @@ -179,58 +179,58 @@ module specialcase import cvw::*; #(parameter cvw_t P) ( case (OutFmt) 2'h3: begin if(P.IEEE754) begin - XNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Xm[P.NF-2:0]}; - YNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Ym[P.NF-2:0]}; - ZNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Zm[P.NF-2:0]}; + XNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Xm[P.NF-2:0]}; + YNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Ym[P.NF-2:0]}; + ZNaNRes = {1'b0, {P.NE{1'b1}}, 1'b1, Zm[P.NF-2:0]}; InvalidRes = {1'b0, {P.NE{1'b1}}, 1'b1, {P.NF-1{1'b0}}}; end else begin InvalidRes = {1'b0, {P.NE{1'b1}}, 1'b1, {P.NF-1{1'b0}}}; end - OfRes = OfResMax ? {Rs, {P.NE-1{1'b1}}, 1'b0, {P.NF{1'b1}}} : {Rs, {P.NE{1'b1}}, {P.NF{1'b0}}}; - UfRes = {Rs, (P.FLEN-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; + OfRes = OfResMax ? {Rs, {P.NE-1{1'b1}}, 1'b0, {P.NF{1'b1}}} : {Rs, {P.NE{1'b1}}, {P.NF{1'b0}}}; + UfRes = {Rs, (P.FLEN-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; NormRes = {Rs, Re, Rf}; end 2'h1: begin if(P.IEEE754) begin - XNaNRes = {{P.FLEN-P.D_LEN{1'b1}}, 1'b0, {P.D_NE{1'b1}}, 1'b1, Xm[P.NF-2:P.NF-P.D_NF]}; - YNaNRes = {{P.FLEN-P.D_LEN{1'b1}}, 1'b0, {P.D_NE{1'b1}}, 1'b1, Ym[P.NF-2:P.NF-P.D_NF]}; - ZNaNRes = {{P.FLEN-P.D_LEN{1'b1}}, 1'b0, {P.D_NE{1'b1}}, 1'b1, Zm[P.NF-2:P.NF-P.D_NF]}; + XNaNRes = {{P.FLEN-P.D_LEN{1'b1}}, 1'b0, {P.D_NE{1'b1}}, 1'b1, Xm[P.NF-2:P.NF-P.D_NF]}; + YNaNRes = {{P.FLEN-P.D_LEN{1'b1}}, 1'b0, {P.D_NE{1'b1}}, 1'b1, Ym[P.NF-2:P.NF-P.D_NF]}; + ZNaNRes = {{P.FLEN-P.D_LEN{1'b1}}, 1'b0, {P.D_NE{1'b1}}, 1'b1, Zm[P.NF-2:P.NF-P.D_NF]}; InvalidRes = {{P.FLEN-P.D_LEN{1'b1}}, 1'b0, {P.D_NE{1'b1}}, 1'b1, (P.D_NF-1)'(0)}; end else begin InvalidRes = {{P.FLEN-P.D_LEN{1'b1}}, 1'b0, {P.D_NE{1'b1}}, 1'b1, (P.D_NF-1)'(0)}; end - OfRes = OfResMax ? {{P.FLEN-P.D_LEN{1'b1}}, Rs, {P.D_NE-1{1'b1}}, 1'b0, {P.D_NF{1'b1}}} : {{P.FLEN-P.D_LEN{1'b1}}, Rs, {P.D_NE{1'b1}}, (P.D_NF)'(0)}; - UfRes = {{P.FLEN-P.D_LEN{1'b1}}, Rs, (P.D_LEN-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; + OfRes = OfResMax ? {{P.FLEN-P.D_LEN{1'b1}}, Rs, {P.D_NE-1{1'b1}}, 1'b0, {P.D_NF{1'b1}}} : {{P.FLEN-P.D_LEN{1'b1}}, Rs, {P.D_NE{1'b1}}, (P.D_NF)'(0)}; + UfRes = {{P.FLEN-P.D_LEN{1'b1}}, Rs, (P.D_LEN-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; NormRes = {{P.FLEN-P.D_LEN{1'b1}}, Rs, Re[P.D_NE-1:0], Rf[P.NF-1:P.NF-P.D_NF]}; end 2'h0: begin if(P.IEEE754) begin - XNaNRes = {{P.FLEN-P.S_LEN{1'b1}}, 1'b0, {P.S_NE{1'b1}}, 1'b1, Xm[P.NF-2:P.NF-P.S_NF]}; - YNaNRes = {{P.FLEN-P.S_LEN{1'b1}}, 1'b0, {P.S_NE{1'b1}}, 1'b1, Ym[P.NF-2:P.NF-P.S_NF]}; - ZNaNRes = {{P.FLEN-P.S_LEN{1'b1}}, 1'b0, {P.S_NE{1'b1}}, 1'b1, Zm[P.NF-2:P.NF-P.S_NF]}; + XNaNRes = {{P.FLEN-P.S_LEN{1'b1}}, 1'b0, {P.S_NE{1'b1}}, 1'b1, Xm[P.NF-2:P.NF-P.S_NF]}; + YNaNRes = {{P.FLEN-P.S_LEN{1'b1}}, 1'b0, {P.S_NE{1'b1}}, 1'b1, Ym[P.NF-2:P.NF-P.S_NF]}; + ZNaNRes = {{P.FLEN-P.S_LEN{1'b1}}, 1'b0, {P.S_NE{1'b1}}, 1'b1, Zm[P.NF-2:P.NF-P.S_NF]}; InvalidRes = {{P.FLEN-P.S_LEN{1'b1}}, 1'b0, {P.S_NE{1'b1}}, 1'b1, (P.S_NF-1)'(0)}; end else begin InvalidRes = {{P.FLEN-P.S_LEN{1'b1}}, 1'b0, {P.S_NE{1'b1}}, 1'b1, (P.S_NF-1)'(0)}; end - OfRes = OfResMax ? {{P.FLEN-P.S_LEN{1'b1}}, Rs, {P.S_NE-1{1'b1}}, 1'b0, {P.S_NF{1'b1}}} : {{P.FLEN-P.S_LEN{1'b1}}, Rs, {P.S_NE{1'b1}}, (P.S_NF)'(0)}; - UfRes = {{P.FLEN-P.S_LEN{1'b1}}, Rs, (P.S_LEN-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; + OfRes = OfResMax ? {{P.FLEN-P.S_LEN{1'b1}}, Rs, {P.S_NE-1{1'b1}}, 1'b0, {P.S_NF{1'b1}}} : {{P.FLEN-P.S_LEN{1'b1}}, Rs, {P.S_NE{1'b1}}, (P.S_NF)'(0)}; + UfRes = {{P.FLEN-P.S_LEN{1'b1}}, Rs, (P.S_LEN-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; NormRes = {{P.FLEN-P.S_LEN{1'b1}}, Rs, Re[P.S_NE-1:0], Rf[P.NF-1:P.NF-P.S_NF]}; end 2'h2: begin if(P.IEEE754) begin - XNaNRes = {{P.FLEN-P.H_LEN{1'b1}}, 1'b0, {P.H_NE{1'b1}}, 1'b1, Xm[P.NF-2:P.NF-P.H_NF]}; - YNaNRes = {{P.FLEN-P.H_LEN{1'b1}}, 1'b0, {P.H_NE{1'b1}}, 1'b1, Ym[P.NF-2:P.NF-P.H_NF]}; - ZNaNRes = {{P.FLEN-P.H_LEN{1'b1}}, 1'b0, {P.H_NE{1'b1}}, 1'b1, Zm[P.NF-2:P.NF-P.H_NF]}; + XNaNRes = {{P.FLEN-P.H_LEN{1'b1}}, 1'b0, {P.H_NE{1'b1}}, 1'b1, Xm[P.NF-2:P.NF-P.H_NF]}; + YNaNRes = {{P.FLEN-P.H_LEN{1'b1}}, 1'b0, {P.H_NE{1'b1}}, 1'b1, Ym[P.NF-2:P.NF-P.H_NF]}; + ZNaNRes = {{P.FLEN-P.H_LEN{1'b1}}, 1'b0, {P.H_NE{1'b1}}, 1'b1, Zm[P.NF-2:P.NF-P.H_NF]}; InvalidRes = {{P.FLEN-P.H_LEN{1'b1}}, 1'b0, {P.H_NE{1'b1}}, 1'b1, (P.H_NF-1)'(0)}; end else begin InvalidRes = {{P.FLEN-P.H_LEN{1'b1}}, 1'b0, {P.H_NE{1'b1}}, 1'b1, (P.H_NF-1)'(0)}; end - OfRes = OfResMax ? {{P.FLEN-P.H_LEN{1'b1}}, Rs, {P.H_NE-1{1'b1}}, 1'b0, {P.H_NF{1'b1}}} : {{P.FLEN-P.H_LEN{1'b1}}, Rs, {P.H_NE{1'b1}}, (P.H_NF)'(0)}; + OfRes = OfResMax ? {{P.FLEN-P.H_LEN{1'b1}}, Rs, {P.H_NE-1{1'b1}}, 1'b0, {P.H_NF{1'b1}}} : {{P.FLEN-P.H_LEN{1'b1}}, Rs, {P.H_NE{1'b1}}, (P.H_NF)'(0)}; // zero is exact if dividing by infinity so don't add 1 - UfRes = {{P.FLEN-P.H_LEN{1'b1}}, Rs, (P.H_LEN-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; + UfRes = {{P.FLEN-P.H_LEN{1'b1}}, Rs, (P.H_LEN-2)'(0), Plus1&Frm[1]&~(DivOp&YInf)}; NormRes = {{P.FLEN-P.H_LEN{1'b1}}, Rs, Re[P.H_NE-1:0], Rf[P.NF-1:P.NF-P.H_NF]}; end endcase @@ -290,7 +290,6 @@ module specialcase import cvw::*; #(parameter cvw_t P) ( if(Xs&~NaNIn) OfIntRes = {P.XLEN{1'b0}}; // unsigned negitive else OfIntRes = {P.XLEN{1'b1}}; // unsigned positive - // select the integer output // - if the input is invalid (out of bounds NaN or Inf) then output overflow res // - if the input underflows From 3deff32639083a7e817eb7bd24121335d57d72e9 Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Tue, 1 Aug 2023 10:55:46 -0500 Subject: [PATCH 36/59] Updated linux and buildroot configs initial commit. --- .../buildroot-2023.05.1/linux.config | 1672 +++++++ .../buildroot-2023.05.1/main.config | 4326 +++++++++++++++++ .../package-2023.05.1.patch | 12 + 3 files changed, 6010 insertions(+) create mode 100644 linux/buildroot-config-src/buildroot-2023.05.1/linux.config create mode 100644 linux/buildroot-config-src/buildroot-2023.05.1/main.config create mode 100644 linux/buildroot-packages/package-2023.05.1.patch diff --git a/linux/buildroot-config-src/buildroot-2023.05.1/linux.config b/linux/buildroot-config-src/buildroot-2023.05.1/linux.config new file mode 100644 index 000000000..bebd2142d --- /dev/null +++ b/linux/buildroot-config-src/buildroot-2023.05.1/linux.config @@ -0,0 +1,1672 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/riscv 6.3.12 Kernel Configuration +# +CONFIG_CC_VERSION_TEXT="riscv64-buildroot-linux-gnu-gcc.br_real (Buildroot 2023.05.1-dirty) 12.3.0" +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=120300 +CONFIG_CLANG_VERSION=0 +CONFIG_AS_IS_GNU=y +CONFIG_AS_VERSION=23800 +CONFIG_LD_IS_BFD=y +CONFIG_LD_VERSION=23800 +CONFIG_LLD_VERSION=0 +CONFIG_CC_CAN_LINK=y +CONFIG_CC_CAN_LINK_STATIC=y +CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y +CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y +CONFIG_CC_HAS_ASM_INLINE=y +CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y +CONFIG_PAHOLE_VERSION=0 +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_TABLE_SORT=y +CONFIG_THREAD_INFO_IN_TASK=y + +# +# General setup +# +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +# CONFIG_COMPILE_TEST is not set +# CONFIG_WERROR is not set +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_BUILD_SALT="" +CONFIG_DEFAULT_INIT="" +CONFIG_DEFAULT_HOSTNAME="WallyDefaultHostname" +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_SYSVIPC_COMPAT=y +# CONFIG_WATCH_QUEUE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +# CONFIG_USELIB is not set +CONFIG_HAVE_ARCH_AUDITSYSCALL=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +# end of IRQ subsystem + +CONFIG_GENERIC_IRQ_MULTI_HANDLER=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y + +# +# Timers subsystem +# +CONFIG_HZ_PERIODIC=y +# CONFIG_NO_HZ_IDLE is not set +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +# end of Timers subsystem + +CONFIG_HAVE_EBPF_JIT=y + +# +# BPF subsystem +# +# CONFIG_BPF_SYSCALL is not set +# end of BPF subsystem + +CONFIG_PREEMPT_NONE_BUILD=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_PREEMPT_COUNT=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_IRQ_TIME_ACCOUNTING is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_PSI is not set +# end of CPU/Task time and stats accounting + +# +# RCU Subsystem +# +CONFIG_TINY_RCU=y +# CONFIG_RCU_EXPERT is not set +CONFIG_SRCU=y +CONFIG_TINY_SRCU=y +# end of RCU Subsystem + +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +# CONFIG_IKHEADERS is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +# CONFIG_PRINTK_INDEX is not set +CONFIG_GENERIC_SCHED_CLOCK=y + +# +# Scheduler features +# +# end of Scheduler features + +CONFIG_CC_HAS_INT128=y +CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" +CONFIG_GCC11_NO_ARRAY_BOUNDS=y +CONFIG_CC_NO_ARRAY_BOUNDS=y +CONFIG_ARCH_SUPPORTS_INT128=y +# CONFIG_CGROUPS is not set +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_TIME_NS=y +CONFIG_IPC_NS=y +# CONFIG_USER_NS is not set +CONFIG_PID_NS=y +# CONFIG_CHECKPOINT_RESTORE is not set +# CONFIG_SCHED_AUTOGROUP is not set +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="${BR_BINARIES_DIR}/rootfs.cpio" +CONFIG_INITRAMFS_ROOT_UID=0 +CONFIG_INITRAMFS_ROOT_GID=0 +CONFIG_RD_GZIP=y +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_RD_ZSTD is not set +CONFIG_INITRAMFS_COMPRESSION_GZIP=y +# CONFIG_INITRAMFS_COMPRESSION_NONE is not set +# CONFIG_BOOT_CONFIG is not set +CONFIG_INITRAMFS_PRESERVE_MTIME=y +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_LD_ORPHAN_WARN=y +CONFIG_LD_ORPHAN_WARN_LEVEL="warn" +CONFIG_SYSCTL=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_EXPERT=y +CONFIG_MULTIUSER=y +# CONFIG_SGETMASK_SYSCALL is not set +# CONFIG_SYSFS_SYSCALL is not set +CONFIG_FHANDLE=y +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_FUTEX_PI=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_IO_URING=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_MEMBARRIER=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_SELFTEST is not set +# CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_BASE_RELATIVE=y +CONFIG_KCMP=y +CONFIG_RSEQ=y +# CONFIG_DEBUG_RSEQ is not set +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y +# CONFIG_PC104 is not set + +# +# Kernel Performance Events And Counters +# +# CONFIG_PERF_EVENTS is not set +# end of Kernel Performance Events And Counters + +# CONFIG_PROFILING is not set +# end of General setup + +CONFIG_64BIT=y +CONFIG_RISCV=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=18 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_BITS_MAX=24 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=17 +CONFIG_RISCV_SBI=y +CONFIG_MMU=y +CONFIG_PAGE_OFFSET=0xff60000000000000 +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_CSUM=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_PGTABLE_LEVELS=5 +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_RISCV_DMA_NONCOHERENT=y +CONFIG_AS_HAS_INSN=y + +# +# SoC selection +# +# CONFIG_SOC_MICROCHIP_POLARFIRE is not set +# CONFIG_ARCH_RENESAS is not set +# CONFIG_SOC_SIFIVE is not set +# CONFIG_SOC_STARFIVE is not set +# CONFIG_ARCH_SUNXI is not set +# CONFIG_SOC_VIRT is not set +# end of SoC selection + +# +# CPU errata selection +# +# CONFIG_ERRATA_SIFIVE is not set +# CONFIG_ERRATA_THEAD is not set +# end of CPU errata selection + +# +# Platform type +# +# CONFIG_NONPORTABLE is not set +CONFIG_ARCH_RV64I=y +# CONFIG_CMODEL_MEDLOW is not set +CONFIG_CMODEL_MEDANY=y +CONFIG_MODULE_SECTIONS=y +# CONFIG_SMP is not set +CONFIG_TUNE_GENERIC=y +CONFIG_RISCV_ALTERNATIVE=y +CONFIG_RISCV_ISA_C=y +CONFIG_RISCV_ISA_SVPBMT=y +CONFIG_RISCV_ISA_ZICBOM=y +CONFIG_TOOLCHAIN_HAS_ZIHINTPAUSE=y +CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI=y +CONFIG_FPU=y +# end of Platform type + +# +# Kernel features +# +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +# CONFIG_RISCV_SBI_V01 is not set +# CONFIG_KEXEC is not set +# CONFIG_KEXEC_FILE is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_COMPAT=y +# end of Kernel features + +# +# Boot options +# +CONFIG_CMDLINE="" +CONFIG_EFI_STUB=y +CONFIG_EFI=y +CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y +CONFIG_STACKPROTECTOR_PER_TASK=y +# end of Boot options + +CONFIG_PORTABLE=y + +# +# Power management options +# +# CONFIG_PM is not set +# end of Power management options + +# +# CPU Power Management +# + +# +# CPU Idle +# +# CONFIG_CPU_IDLE is not set +# end of CPU Idle + +# +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set +# end of CPU Frequency scaling +# end of CPU Power Management + +# CONFIG_VIRTUALIZATION is not set + +# +# General architecture-dependent options +# +# CONFIG_KPROBES is not set +CONFIG_JUMP_LABEL=y +# CONFIG_STATIC_KEYS_SELFTEST is not set +CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_HAVE_ASM_MODVERSIONS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y +CONFIG_HAVE_ARCH_SECCOMP=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP=y +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_LTO_NONE=y +CONFIG_HAVE_CONTEXT_TRACKING_USER=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOVE_PUD=y +CONFIG_HAVE_MOVE_PMD=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_HAVE_ARCH_HUGE_VMALLOC=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_ARCH_MMAP_RND_BITS=18 +CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 +CONFIG_PAGE_SIZE_LESS_THAN_64KB=y +CONFIG_PAGE_SIZE_LESS_THAN_256KB=y +CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_VMAP_STACK=y +CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y +CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y +# CONFIG_LOCK_EVENT_COUNTS is not set +CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +# end of GCOV-based kernel profiling + +CONFIG_HAVE_GCC_PLUGINS=y +# CONFIG_GCC_PLUGINS is not set +CONFIG_FUNCTION_ALIGNMENT=0 +# end of General architecture-dependent options + +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +CONFIG_MODULE_COMPRESS_NONE=y +# CONFIG_MODULE_COMPRESS_GZIP is not set +# CONFIG_MODULE_COMPRESS_XZ is not set +# CONFIG_MODULE_COMPRESS_ZSTD is not set +# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set +CONFIG_MODPROBE_PATH="/sbin/modprobe" +# CONFIG_TRIM_UNUSED_KSYMS is not set +CONFIG_BLOCK=y +CONFIG_BLOCK_LEGACY_AUTOLOAD=y +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set +# CONFIG_BLK_DEV_ZONED is not set +# CONFIG_BLK_WBT is not set +CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_SED_OPAL is not set +# CONFIG_BLK_INLINE_ENCRYPTION is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_EFI_PARTITION=y +# end of Partition Types + +CONFIG_BLK_MQ_VIRTIO=y + +# +# IO Schedulers +# +CONFIG_MQ_IOSCHED_DEADLINE=y +CONFIG_MQ_IOSCHED_KYBER=y +# CONFIG_IOSCHED_BFQ is not set +# end of IO Schedulers + +CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_ARCH_HAS_MMIOWB=y +CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +CONFIG_ELFCORE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_ARCH_HAS_BINFMT_FLAT=y +# CONFIG_BINFMT_FLAT is not set +# CONFIG_BINFMT_MISC is not set +CONFIG_COREDUMP=y +# end of Executable file formats + +# +# Memory Management options +# +CONFIG_SWAP=y +# CONFIG_ZSWAP is not set + +# +# SLAB allocator options +# +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB_DEPRECATED is not set +# CONFIG_SLUB_TINY is not set +CONFIG_SLAB_MERGE_DEFAULT=y +# CONFIG_SLAB_FREELIST_RANDOM is not set +# CONFIG_SLAB_FREELIST_HARDENED is not set +# CONFIG_SLUB_STATS is not set +# end of SLAB allocator options + +# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set +CONFIG_COMPAT_BRK=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +CONFIG_COMPACTION=y +CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 +CONFIG_PAGE_REPORTING=y +CONFIG_MIGRATION=y +CONFIG_PHYS_ADDR_T_64BIT=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ARCH_WANTS_THP_SWAP=y +# CONFIG_TRANSPARENT_HUGEPAGE is not set +CONFIG_NEED_PER_CPU_KM=y +# CONFIG_CMA is not set +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y +CONFIG_ZONE_DMA32=y +CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_PERCPU_STATS is not set +# CONFIG_GUP_TEST is not set +CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_SECRETMEM=y +# CONFIG_ANON_VMA_NAME is not set +# CONFIG_USERFAULTFD is not set +# CONFIG_LRU_GEN is not set +CONFIG_LOCK_MM_AND_FIND_VMA=y + +# +# Data Access Monitoring +# +# CONFIG_DAMON is not set +# end of Data Access Monitoring +# end of Memory Management options + +# CONFIG_NET is not set + +# +# Device Drivers +# +CONFIG_HAVE_PCI=y +# CONFIG_PCI is not set +# CONFIG_PCCARD is not set + +# +# Generic Driver Options +# +# CONFIG_UEVENT_HELPER is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_DEVTMPFS_SAFE is not set +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y + +# +# Firmware loader +# +CONFIG_FW_LOADER=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_FW_LOADER_USER_HELPER is not set +# CONFIG_FW_LOADER_COMPRESS is not set +# CONFIG_FW_UPLOAD is not set +# end of Firmware loader + +CONFIG_ALLOW_DEV_COREDUMP=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_MMIO=y +CONFIG_GENERIC_ARCH_TOPOLOGY=y +# end of Generic Driver Options + +# +# Bus devices +# +# CONFIG_MHI_BUS is not set +# CONFIG_MHI_BUS_EP is not set +# end of Bus devices + +# +# Firmware Drivers +# + +# +# ARM System Control and Management Interface Protocol +# +# end of ARM System Control and Management Interface Protocol + +# CONFIG_FIRMWARE_MEMMAP is not set +# CONFIG_SYSFB_SIMPLEFB is not set +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_ESRT=y +CONFIG_EFI_PARAMS_FROM_FDT=y +CONFIG_EFI_RUNTIME_WRAPPERS=y +CONFIG_EFI_GENERIC_STUB=y +# CONFIG_EFI_ZBOOT is not set +# CONFIG_EFI_BOOTLOADER_CONTROL is not set +# CONFIG_EFI_CAPSULE_LOADER is not set +# CONFIG_EFI_TEST is not set +# CONFIG_RESET_ATTACK_MITIGATION is not set +# CONFIG_EFI_DISABLE_PCI_DMA is not set +# CONFIG_EFI_DISABLE_RUNTIME is not set +# CONFIG_EFI_COCO_SECRET is not set +# end of EFI (Extensible Firmware Interface) Support + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + +# CONFIG_GNSS is not set +# CONFIG_MTD is not set +CONFIG_DTC=y +CONFIG_OF=y +# CONFIG_OF_UNITTEST is not set +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_KOBJ=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_RESERVED_MEM=y +# CONFIG_OF_OVERLAY is not set +CONFIG_OF_DMA_DEFAULT_COHERENT=y +# CONFIG_PARPORT is not set +# CONFIG_BLK_DEV is not set + +# +# NVME Support +# +# CONFIG_NVME_FC is not set +# end of NVME Support + +# +# Misc devices +# +# CONFIG_DUMMY_IRQ is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_SRAM is not set +# CONFIG_XILINX_SDFEC is not set +# CONFIG_OPEN_DICE is not set +# CONFIG_VCPU_STALL_DETECTOR is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_93CX6 is not set +# end of EEPROM support + +# +# Texas Instruments shared transport line discipline +# +# end of Texas Instruments shared transport line discipline + +# +# Altera FPGA firmware download module (requires I2C) +# +# CONFIG_ECHO is not set +# CONFIG_PVPANIC is not set +# end of Misc devices + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set +# end of SCSI device support + +# CONFIG_ATA is not set +# CONFIG_MD is not set +# CONFIG_TARGET_CORE is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_SPARSEKMAP is not set +# CONFIG_INPUT_MATRIXKMAP is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set +# CONFIG_RMI4_CORE is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_SERIO_APBPS2 is not set +# CONFIG_SERIO_GPIO_PS2 is not set +# CONFIG_USERIO is not set +# CONFIG_GAMEPORT is not set +# end of Hardware I/O ports +# end of Input device support + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_LEGACY_TIOCSTI=y +CONFIG_LDISC_AUTOLOAD=y + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_EARLYCON_SEMIHOST is not set +# CONFIG_SERIAL_UARTLITE is not set +# CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +# CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_FSL_LINFLEXUART is not set +# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set +# CONFIG_SERIAL_SPRD is not set +# end of Serial drivers + +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_NULL_TTY is not set +CONFIG_HVC_DRIVER=y +# CONFIG_SERIAL_DEV_BUS is not set +# CONFIG_TTY_PRINTK is not set +CONFIG_VIRTIO_CONSOLE=y +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_HW_RANDOM_BA431 is not set +CONFIG_HW_RANDOM_VIRTIO=y +# CONFIG_HW_RANDOM_CCTRNG is not set +# CONFIG_HW_RANDOM_XIPHERA is not set +CONFIG_DEVMEM=y +# CONFIG_TCG_TPM is not set +# CONFIG_XILLYBUS is not set +# end of Character devices + +# +# I2C support +# +# CONFIG_I2C is not set +# end of I2C support + +# CONFIG_I3C is not set +# CONFIG_SPI is not set +# CONFIG_SPMI is not set +# CONFIG_HSI is not set +# CONFIG_PPS is not set + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK_OPTIONAL=y + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +# end of PTP clock support + +# CONFIG_PINCTRL is not set +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_FASTPATH_LIMIT=32 +CONFIG_OF_GPIO=y +CONFIG_GPIOLIB_IRQCHIP=y +# CONFIG_DEBUG_GPIO is not set +# CONFIG_GPIO_SYSFS is not set +CONFIG_GPIO_CDEV=y +# CONFIG_GPIO_CDEV_V1 is not set +CONFIG_GPIO_GENERIC=y + +# +# Memory mapped GPIO drivers +# +# CONFIG_GPIO_74XX_MMIO is not set +# CONFIG_GPIO_ALTERA is not set +# CONFIG_GPIO_CADENCE is not set +# CONFIG_GPIO_DWAPB is not set +# CONFIG_GPIO_FTGPIO010 is not set +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_GRGPIO is not set +# CONFIG_GPIO_HLWD is not set +# CONFIG_GPIO_MB86S7X is not set +CONFIG_GPIO_SIFIVE=y +# CONFIG_GPIO_XILINX is not set +# CONFIG_GPIO_AMD_FCH is not set +# end of Memory mapped GPIO drivers + +# +# MFD GPIO expanders +# +# end of MFD GPIO expanders + +# +# Virtual GPIO drivers +# +# CONFIG_GPIO_AGGREGATOR is not set +# CONFIG_GPIO_LATCH is not set +# CONFIG_GPIO_MOCKUP is not set +# CONFIG_GPIO_VIRTIO is not set +# CONFIG_GPIO_SIM is not set +# end of Virtual GPIO drivers + +# CONFIG_W1 is not set +# CONFIG_POWER_RESET is not set +# CONFIG_POWER_SUPPLY is not set +# CONFIG_HWMON is not set +# CONFIG_THERMAL is not set +# CONFIG_WATCHDOG is not set +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_ATMEL_FLEXCOM is not set +# CONFIG_MFD_ATMEL_HLCDC is not set +# CONFIG_MFD_MADERA is not set +# CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_TQMX86 is not set +# end of Multifunction device drivers + +# CONFIG_REGULATOR is not set +# CONFIG_RC_CORE is not set + +# +# CEC support +# +# CONFIG_MEDIA_CEC_SUPPORT is not set +# end of CEC support + +# CONFIG_MEDIA_SUPPORT is not set + +# +# Graphics support +# +# CONFIG_DRM is not set +# CONFIG_DRM_DEBUG_MODESET_LOCK is not set + +# +# ARM devices +# +# end of ARM devices + +# +# Frame buffer Devices +# +# CONFIG_FB is not set +# end of Frame buffer Devices + +# +# Backlight & LCD device support +# +# CONFIG_LCD_CLASS_DEVICE is not set +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set +# end of Backlight & LCD device support + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_DUMMY_CONSOLE_COLUMNS=80 +CONFIG_DUMMY_CONSOLE_ROWS=25 +# end of Console display driver support +# end of Graphics support + +# CONFIG_SOUND is not set +# CONFIG_HID_SUPPORT is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_SUPPORT is not set +CONFIG_MMC=y +CONFIG_PWRSEQ_EMMC=y +CONFIG_PWRSEQ_SIMPLE=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=8 +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_SDHCI is not set +# CONFIG_MMC_DW is not set +# CONFIG_MMC_USDHI6ROL0 is not set +# CONFIG_MMC_CQHCI is not set +# CONFIG_MMC_HSQ is not set +# CONFIG_MMC_MTK is not set +# CONFIG_MEMSTICK is not set +# CONFIG_NEW_LEDS is not set +# CONFIG_ACCESSIBILITY is not set +CONFIG_EDAC_SUPPORT=y +# CONFIG_RTC_CLASS is not set +# CONFIG_DMADEVICES is not set + +# +# DMABUF options +# +# CONFIG_SYNC_FILE is not set +# CONFIG_DMABUF_HEAPS is not set +# end of DMABUF options + +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +# CONFIG_VFIO is not set +# CONFIG_VIRT_DRIVERS is not set +CONFIG_VIRTIO_ANCHOR=y +CONFIG_VIRTIO=y +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VHOST_MENU is not set + +# +# Microsoft Hyper-V guest support +# +# end of Microsoft Hyper-V guest support + +# CONFIG_GREYBUS is not set +# CONFIG_COMEDI is not set +# CONFIG_STAGING is not set +# CONFIG_GOLDFISH is not set +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y +# CONFIG_COMMON_CLK_AXI_CLKGEN is not set +# CONFIG_COMMON_CLK_FIXED_MMIO is not set +# CONFIG_XILINX_VCU is not set +# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set +# CONFIG_HWSPINLOCK is not set + +# +# Clock Source drivers +# +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_RISCV_TIMER=y +# end of Clock Source drivers + +# CONFIG_MAILBOX is not set +# CONFIG_IOMMU_SUPPORT is not set + +# +# Remoteproc drivers +# +# CONFIG_REMOTEPROC is not set +# end of Remoteproc drivers + +# +# Rpmsg drivers +# +# CONFIG_RPMSG_VIRTIO is not set +# end of Rpmsg drivers + +# CONFIG_SOUNDWIRE is not set + +# +# SOC (System On Chip) specific Drivers +# + +# +# Amlogic SoC drivers +# +# end of Amlogic SoC drivers + +# +# Broadcom SoC drivers +# +# end of Broadcom SoC drivers + +# +# NXP/Freescale QorIQ SoC drivers +# +# end of NXP/Freescale QorIQ SoC drivers + +# +# fujitsu SoC drivers +# +# end of fujitsu SoC drivers + +# +# i.MX SoC drivers +# +# end of i.MX SoC drivers + +# +# Enable LiteX SoC Builder specific drivers +# +# CONFIG_LITEX_SOC_CONTROLLER is not set +# end of Enable LiteX SoC Builder specific drivers + +# CONFIG_WPCM450_SOC is not set + +# +# Qualcomm SoC drivers +# +# end of Qualcomm SoC drivers + +# CONFIG_SOC_TI is not set + +# +# Xilinx SoC drivers +# +# end of Xilinx SoC drivers +# end of SOC (System On Chip) specific Drivers + +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +# CONFIG_IIO is not set +# CONFIG_PWM is not set + +# +# IRQ chip support +# +CONFIG_IRQCHIP=y +# CONFIG_AL_FIC is not set +# CONFIG_XILINX_INTC is not set +CONFIG_RISCV_INTC=y +CONFIG_SIFIVE_PLIC=y +# end of IRQ chip support + +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set + +# +# PHY Subsystem +# +# CONFIG_GENERIC_PHY is not set +# CONFIG_PHY_CAN_TRANSCEIVER is not set + +# +# PHY drivers for Broadcom platforms +# +# CONFIG_BCM_KONA_USB2_PHY is not set +# end of PHY drivers for Broadcom platforms + +# CONFIG_PHY_CADENCE_TORRENT is not set +# CONFIG_PHY_CADENCE_DPHY is not set +# CONFIG_PHY_CADENCE_DPHY_RX is not set +# CONFIG_PHY_CADENCE_SALVO is not set +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# end of PHY Subsystem + +# CONFIG_POWERCAP is not set +# CONFIG_MCB is not set +# CONFIG_RAS is not set + +# +# Android +# +# CONFIG_ANDROID_BINDER_IPC is not set +# end of Android + +# CONFIG_DAX is not set +# CONFIG_NVMEM is not set + +# +# HW tracing support +# +# CONFIG_STM is not set +# CONFIG_INTEL_TH is not set +# end of HW tracing support + +# CONFIG_FPGA is not set +# CONFIG_FSI is not set +# CONFIG_SIOX is not set +# CONFIG_SLIMBUS is not set +# CONFIG_INTERCONNECT is not set +# CONFIG_COUNTER is not set +# CONFIG_PECI is not set +# CONFIG_HTE is not set +# end of Device Drivers + +# +# File systems +# +# CONFIG_VALIDATE_FS_PARSER is not set +CONFIG_FS_IOMAP=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT2=y +# CONFIG_EXT4_FS_POSIX_ACL is not set +# CONFIG_EXT4_FS_SECURITY is not set +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +# CONFIG_F2FS_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +# CONFIG_EXPORTFS_BLOCK_OPS is not set +CONFIG_FILE_LOCKING=y +# CONFIG_FS_ENCRYPTION is not set +# CONFIG_FS_VERITY is not set +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_FANOTIFY is not set +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS4_FS is not set +CONFIG_AUTOFS_FS=y +# CONFIG_FUSE_FS is not set +# CONFIG_OVERLAY_FS is not set + +# +# Caches +# +# CONFIG_FSCACHE is not set +# end of Caches + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set +# end of CD-ROM/DVD Filesystems + +# +# DOS/FAT/EXFAT/NT Filesystems +# +# CONFIG_MSDOS_FS is not set +# CONFIG_VFAT_FS is not set +# CONFIG_EXFAT_FS is not set +# CONFIG_NTFS_FS is not set +# CONFIG_NTFS3_FS is not set +# end of DOS/FAT/EXFAT/NT Filesystems + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +# CONFIG_PROC_KCORE is not set +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PROC_CHILDREN=y +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_TMPFS_INODE64 is not set +CONFIG_ARCH_SUPPORTS_HUGETLBFS=y +# CONFIG_HUGETLBFS is not set +CONFIG_ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y +CONFIG_MEMFD_CREATE=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +# CONFIG_CONFIGFS_FS is not set +CONFIG_EFIVAR_FS=y +# end of Pseudo filesystems + +# CONFIG_MISC_FILESYSTEMS is not set +# CONFIG_NLS is not set +# CONFIG_UNICODE is not set +CONFIG_IO_WQ=y +# end of File systems + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set +CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y +# CONFIG_HARDENED_USERCOPY is not set +# CONFIG_FORTIFY_SOURCE is not set +# CONFIG_STATIC_USERMODEHELPER is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity,bpf" + +# +# Kernel hardening options +# + +# +# Memory initialization +# +CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y +CONFIG_INIT_STACK_NONE=y +# CONFIG_INIT_STACK_ALL_PATTERN is not set +# CONFIG_INIT_STACK_ALL_ZERO is not set +# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set +# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y +# CONFIG_ZERO_CALL_USED_REGS is not set +# end of Memory initialization + +CONFIG_RANDSTRUCT_NONE=y +# end of Kernel hardening options +# end of Security options + +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +# CONFIG_CRYPTO_MANAGER is not set +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_CRYPTD is not set +# CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_TEST is not set +# end of Crypto core or helper + +# +# Public-key cryptography +# +# CONFIG_CRYPTO_RSA is not set +# CONFIG_CRYPTO_DH is not set +# CONFIG_CRYPTO_ECDH is not set +# CONFIG_CRYPTO_ECDSA is not set +# CONFIG_CRYPTO_ECRDSA is not set +# CONFIG_CRYPTO_SM2 is not set +# CONFIG_CRYPTO_CURVE25519 is not set +# end of Public-key cryptography + +# +# Block ciphers +# +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_AES_TI is not set +# CONFIG_CRYPTO_ARIA is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_DES is not set +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_SM4_GENERIC is not set +# CONFIG_CRYPTO_TWOFISH is not set +# end of Block ciphers + +# +# Length-preserving ciphers and modes +# +# CONFIG_CRYPTO_ADIANTUM is not set +# CONFIG_CRYPTO_CHACHA20 is not set +# CONFIG_CRYPTO_CBC is not set +# CONFIG_CRYPTO_CFB is not set +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +# CONFIG_CRYPTO_ECB is not set +# CONFIG_CRYPTO_HCTR2 is not set +# CONFIG_CRYPTO_KEYWRAP is not set +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_OFB is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set +# end of Length-preserving ciphers and modes + +# +# AEAD (authenticated encryption with associated data) ciphers +# +# CONFIG_CRYPTO_AEGIS128 is not set +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_SEQIV is not set +# CONFIG_CRYPTO_ECHAINIV is not set +# CONFIG_CRYPTO_ESSIV is not set +# end of AEAD (authenticated encryption with associated data) ciphers + +# +# Hashes, digests, and MACs +# +# CONFIG_CRYPTO_BLAKE2B is not set +# CONFIG_CRYPTO_CMAC is not set +# CONFIG_CRYPTO_GHASH is not set +# CONFIG_CRYPTO_HMAC is not set +# CONFIG_CRYPTO_MD4 is not set +# CONFIG_CRYPTO_MD5 is not set +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_POLY1305 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_SHA1 is not set +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_SHA3 is not set +# CONFIG_CRYPTO_SM3_GENERIC is not set +# CONFIG_CRYPTO_STREEBOG is not set +# CONFIG_CRYPTO_VMAC is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_XXHASH is not set +# end of Hashes, digests, and MACs + +# +# CRCs (cyclic redundancy checks) +# +CONFIG_CRYPTO_CRC32C=y +# CONFIG_CRYPTO_CRC32 is not set +# CONFIG_CRYPTO_CRCT10DIF is not set +# end of CRCs (cyclic redundancy checks) + +# +# Compression +# +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_LZO is not set +# CONFIG_CRYPTO_842 is not set +# CONFIG_CRYPTO_LZ4 is not set +# CONFIG_CRYPTO_LZ4HC is not set +# CONFIG_CRYPTO_ZSTD is not set +# end of Compression + +# +# Random number generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +# CONFIG_CRYPTO_DRBG_MENU is not set +# CONFIG_CRYPTO_JITTERENTROPY is not set +# end of Random number generation + +# +# Userspace interface +# +# end of Userspace interface + +CONFIG_CRYPTO_HW=y +# CONFIG_CRYPTO_DEV_VIRTIO is not set +# CONFIG_CRYPTO_DEV_SAFEXCEL is not set +# CONFIG_CRYPTO_DEV_CCREE is not set +# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set + +# +# Certificates for signature checking +# +# end of Certificates for signature checking + +# +# Library routines +# +# CONFIG_PACKING is not set +CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +# CONFIG_CORDIC is not set +# CONFIG_PRIME_NUMBERS is not set +CONFIG_RATIONAL=y +CONFIG_GENERIC_PCI_IOMAP=y + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_UTILS=y +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +# CONFIG_CRYPTO_LIB_CHACHA is not set +# CONFIG_CRYPTO_LIB_CURVE25519 is not set +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1 +# CONFIG_CRYPTO_LIB_POLY1305 is not set +# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set +# end of Crypto library routines + +# CONFIG_CRC_CCITT is not set +CONFIG_CRC16=y +# CONFIG_CRC_T10DIF is not set +# CONFIG_CRC64_ROCKSOFT is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC64 is not set +# CONFIG_CRC4 is not set +# CONFIG_CRC7 is not set +# CONFIG_LIBCRC32C is not set +# CONFIG_CRC8 is not set +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +# CONFIG_XZ_DEC is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAS_DMA=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_DMA_DECLARE_COHERENT=y +CONFIG_ARCH_HAS_SETUP_DMA_OPS=y +CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y +CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y +CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y +CONFIG_SWIOTLB=y +# CONFIG_DMA_RESTRICTED_POOL is not set +CONFIG_DMA_NONCOHERENT_MMAP=y +CONFIG_DMA_COHERENT_POOL=y +CONFIG_DMA_DIRECT_REMAP=y +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_DMA_MAP_BENCHMARK is not set +# CONFIG_IRQ_POLL is not set +CONFIG_LIBFDT=y +CONFIG_UCS2_STRING=y +CONFIG_HAVE_GENERIC_VDSO=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_VDSO_TIME_NS=y +CONFIG_ARCH_HAS_PMEM_API=y +CONFIG_ARCH_STACKWALK=y +CONFIG_STACKDEPOT=y +CONFIG_SBITMAP=y +# end of Library routines + +CONFIG_GENERIC_IOREMAP=y +CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_CALLER is not set +# CONFIG_STACKTRACE_BUILD_ID is not set +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_LOGLEVEL_QUIET=4 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_DYNAMIC_DEBUG is not set +# CONFIG_DYNAMIC_DEBUG_CORE is not set +CONFIG_SYMBOLIC_ERRNAME=y +CONFIG_DEBUG_BUGVERBOSE=y +# end of printk and dmesg options + +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_MISC=y + +# +# Compile-time checks and compiler options +# +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_INFO_NONE is not set +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y +# CONFIG_DEBUG_INFO_DWARF4 is not set +# CONFIG_DEBUG_INFO_DWARF5 is not set +# CONFIG_DEBUG_INFO_REDUCED is not set +CONFIG_DEBUG_INFO_COMPRESSED_NONE=y +# CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set +# CONFIG_DEBUG_INFO_SPLIT is not set +CONFIG_GDB_SCRIPTS=y +CONFIG_FRAME_WARN=2048 +# CONFIG_STRIP_ASM_SYMS is not set +CONFIG_READABLE_ASM=y +# CONFIG_HEADERS_INSTALL is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_FRAME_POINTER=y +# CONFIG_VMLINUX_MAP is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# end of Compile-time checks and compiler options + +# +# Generic Kernel Debugging Instruments +# +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_FS_ALLOW_ALL=y +# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set +# CONFIG_DEBUG_FS_ALLOW_NONE is not set +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_KGDB_QXFER_PKT=y +# CONFIG_KGDB is not set +CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y +# CONFIG_UBSAN is not set +CONFIG_HAVE_KCSAN_COMPILER=y +# end of Generic Kernel Debugging Instruments + +# +# Networking Debugging +# +# end of Networking Debugging + +# +# Memory Debugging +# +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_PAGE_OWNER is not set +# CONFIG_PAGE_POISONING is not set +# CONFIG_DEBUG_RODATA_TEST is not set +CONFIG_ARCH_HAS_DEBUG_WX=y +# CONFIG_DEBUG_WX is not set +CONFIG_GENERIC_PTDUMP=y +# CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SHRINKER_DEBUG is not set +# CONFIG_DEBUG_STACK_USAGE is not set +CONFIG_SCHED_STACK_END_CHECK=y +CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y +CONFIG_DEBUG_VM_IRQSOFF=y +CONFIG_DEBUG_VM=y +# CONFIG_DEBUG_VM_MAPLE_TREE is not set +# CONFIG_DEBUG_VM_RB is not set +CONFIG_DEBUG_VM_PGFLAGS=y +CONFIG_DEBUG_VM_PGTABLE=y +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +# CONFIG_DEBUG_VIRTUAL is not set +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_HAVE_ARCH_KASAN_VMALLOC=y +CONFIG_CC_HAS_KASAN_GENERIC=y +CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y +# CONFIG_KASAN is not set +CONFIG_HAVE_ARCH_KFENCE=y +# CONFIG_KFENCE is not set +# end of Memory Debugging + +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Oops, Lockups and Hangs +# +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +CONFIG_LOCKUP_DETECTOR=y +CONFIG_SOFTLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_WQ_WATCHDOG=y +# CONFIG_TEST_LOCKUP is not set +# end of Debug Oops, Lockups and Hangs + +# +# Scheduler Debugging +# +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +# end of Scheduler Debugging + +CONFIG_DEBUG_TIMEKEEPING=y + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +CONFIG_DEBUG_RT_MUTEXES=y +CONFIG_DEBUG_SPINLOCK=y +CONFIG_DEBUG_MUTEXES=y +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +CONFIG_DEBUG_RWSEMS=y +# CONFIG_DEBUG_LOCK_ALLOC is not set +CONFIG_DEBUG_ATOMIC_SLEEP=y +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_WW_MUTEX_SELFTEST is not set +# CONFIG_SCF_TORTURE_TEST is not set +# CONFIG_CSD_LOCK_WAIT_DEBUG is not set +# end of Lock Debugging (spinlocks, mutexes, etc...) + +# CONFIG_DEBUG_IRQFLAGS is not set +CONFIG_STACKTRACE=y +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set +# CONFIG_DEBUG_KOBJECT is not set + +# +# Debug kernel data structures +# +CONFIG_DEBUG_LIST=y +CONFIG_DEBUG_PLIST=y +CONFIG_DEBUG_SG=y +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +# CONFIG_DEBUG_MAPLE_TREE is not set +# end of Debug kernel data structures + +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_RCU_SCALE_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_REF_SCALE_TEST is not set +# CONFIG_RCU_TRACE is not set +CONFIG_RCU_EQS_DEBUG=y +# end of RCU Debugging + +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_LATENCYTOP is not set +CONFIG_HAVE_RETHOOK=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_SAMPLES is not set +# CONFIG_STRICT_DEVMEM is not set + +# +# riscv Debugging +# +# end of riscv Debugging + +# +# Kernel Testing and Coverage +# +# CONFIG_KUNIT is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_FAULT_INJECTION is not set +CONFIG_ARCH_HAS_KCOV=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y +# CONFIG_KCOV is not set +# CONFIG_RUNTIME_TESTING_MENU is not set +CONFIG_ARCH_USE_MEMTEST=y +CONFIG_MEMTEST=y +# end of Kernel Testing and Coverage + +# +# Rust hacking +# +# end of Rust hacking +# end of Kernel hacking diff --git a/linux/buildroot-config-src/buildroot-2023.05.1/main.config b/linux/buildroot-config-src/buildroot-2023.05.1/main.config new file mode 100644 index 000000000..680ddbc5a --- /dev/null +++ b/linux/buildroot-config-src/buildroot-2023.05.1/main.config @@ -0,0 +1,4326 @@ +# +# Automatically generated file; DO NOT EDIT. +# Buildroot 2023.05.1-dirty Configuration +# +BR2_HAVE_DOT_CONFIG=y +BR2_HOST_GCC_AT_LEAST_4_9=y +BR2_HOST_GCC_AT_LEAST_5=y +BR2_HOST_GCC_AT_LEAST_6=y +BR2_HOST_GCC_AT_LEAST_7=y +BR2_HOST_GCC_AT_LEAST_8=y +BR2_HOST_GCC_AT_LEAST_9=y + +# +# Target options +# +BR2_ARCH_IS_64=y +BR2_USE_MMU=y +# BR2_arcle is not set +# BR2_arceb is not set +# BR2_arm is not set +# BR2_armeb is not set +# BR2_aarch64 is not set +# BR2_aarch64_be is not set +# BR2_i386 is not set +# BR2_m68k is not set +# BR2_microblazeel is not set +# BR2_microblazebe is not set +# BR2_mips is not set +# BR2_mipsel is not set +# BR2_mips64 is not set +# BR2_mips64el is not set +# BR2_nios2 is not set +# BR2_or1k is not set +# BR2_powerpc is not set +# BR2_powerpc64 is not set +# BR2_powerpc64le is not set +BR2_riscv=y +# BR2_s390x is not set +# BR2_sh is not set +# BR2_sparc is not set +# BR2_sparc64 is not set +# BR2_x86_64 is not set +# BR2_xtensa is not set +BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT=y +BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8=y +BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9=y +BR2_ARCH_NEEDS_GCC_AT_LEAST_5=y +BR2_ARCH_NEEDS_GCC_AT_LEAST_6=y +BR2_ARCH_NEEDS_GCC_AT_LEAST_7=y +BR2_ARCH="riscv64" +BR2_NORMALIZED_ARCH="riscv" +BR2_ENDIAN="LITTLE" +BR2_GCC_TARGET_ABI="lp64d" +BR2_BINFMT_SUPPORTS_SHARED=y +BR2_READELF_ARCH_NAME="RISC-V" +BR2_RISCV_ISA_RVI=y +BR2_RISCV_ISA_RVM=y +BR2_RISCV_ISA_RVA=y +BR2_RISCV_ISA_RVF=y +BR2_RISCV_ISA_RVD=y +BR2_riscv_g=y +# BR2_riscv_custom is not set +# BR2_RISCV_32 is not set +BR2_RISCV_64=y +BR2_RISCV_USE_MMU=y +# BR2_RISCV_ABI_LP64 is not set +# BR2_RISCV_ABI_LP64F is not set +BR2_RISCV_ABI_LP64D=y +BR2_BINFMT_ELF=y + +# +# Toolchain +# +BR2_TOOLCHAIN=y +BR2_TOOLCHAIN_USES_GLIBC=y +BR2_TOOLCHAIN_BUILDROOT=y +# BR2_TOOLCHAIN_EXTERNAL is not set + +# +# Toolchain Buildroot Options +# +BR2_TOOLCHAIN_BUILDROOT_VENDOR="buildroot" +# BR2_TOOLCHAIN_BUILDROOT_UCLIBC is not set +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +# BR2_TOOLCHAIN_BUILDROOT_MUSL is not set +BR2_TOOLCHAIN_BUILDROOT_LIBC="glibc" + +# +# Kernel Header Options +# +# BR2_KERNEL_HEADERS_AS_KERNEL is not set +# BR2_KERNEL_HEADERS_4_19 is not set +# BR2_KERNEL_HEADERS_5_4 is not set +# BR2_KERNEL_HEADERS_5_10 is not set +# BR2_KERNEL_HEADERS_5_15 is not set +# BR2_KERNEL_HEADERS_6_1 is not set +BR2_KERNEL_HEADERS_6_3=y +# BR2_KERNEL_HEADERS_VERSION is not set +# BR2_KERNEL_HEADERS_CUSTOM_TARBALL is not set +# BR2_KERNEL_HEADERS_CUSTOM_GIT is not set +BR2_KERNEL_HEADERS_LATEST=y +BR2_DEFAULT_KERNEL_HEADERS="6.3.12" +BR2_PACKAGE_LINUX_HEADERS=y +BR2_PACKAGE_MUSL_ARCH_SUPPORTS=y +BR2_PACKAGE_MUSL_SUPPORTS=y +BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS=y +BR2_PACKAGE_UCLIBC_SUPPORTS=y +BR2_PACKAGE_GLIBC_ARCH_SUPPORTS=y +BR2_PACKAGE_GLIBC_SUPPORTS=y + +# +# Glibc Options +# +BR2_PACKAGE_GLIBC=y +# BR2_PACKAGE_GLIBC_KERNEL_COMPAT is not set +# BR2_PACKAGE_GLIBC_UTILS is not set + +# +# Binutils Options +# +BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI=y +# BR2_BINUTILS_VERSION_2_37_X is not set +BR2_BINUTILS_VERSION_2_38_X=y +# BR2_BINUTILS_VERSION_2_39_X is not set +BR2_BINUTILS_VERSION="2.38" +BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="" + +# +# GCC Options +# +# BR2_GCC_VERSION_10_X is not set +# BR2_GCC_VERSION_11_X is not set +BR2_GCC_VERSION_12_X=y +BR2_GCC_VERSION="12.3.0" +BR2_EXTRA_GCC_CONFIG_OPTIONS="" +# BR2_TOOLCHAIN_BUILDROOT_CXX is not set +# BR2_TOOLCHAIN_BUILDROOT_FORTRAN is not set +# BR2_GCC_ENABLE_OPENMP is not set +# BR2_GCC_ENABLE_GRAPHITE is not set +BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS=y + +# +# Host GDB Options +# +# BR2_PACKAGE_HOST_GDB is not set + +# +# Toolchain Generic Options +# +BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS=y +BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK=y +BR2_USE_WCHAR=y +BR2_ENABLE_LOCALE=y +BR2_TOOLCHAIN_HAS_THREADS=y +BR2_TOOLCHAIN_HAS_THREADS_DEBUG=y +BR2_TOOLCHAIN_HAS_THREADS_NPTL=y +BR2_TOOLCHAIN_HAS_SSP=y +BR2_TOOLCHAIN_HAS_SSP_STRONG=y +BR2_TOOLCHAIN_HAS_UCONTEXT=y +BR2_TOOLCHAIN_SUPPORTS_PIE=y +# BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY is not set +BR2_TOOLCHAIN_EXTRA_LIBS="" +BR2_TOOLCHAIN_HAS_FULL_GETTEXT=y +BR2_TARGET_OPTIMIZATION="" +BR2_TARGET_LDFLAGS="" +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_12=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_13=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_14=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_15=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_16=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_17=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_18=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_19=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_0=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_1=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_2=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_3=y +BR2_TOOLCHAIN_HEADERS_LATEST=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST="6.3" +BR2_TOOLCHAIN_GCC_AT_LEAST_4_3=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_4=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_5=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_6=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_7=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_8=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_9=y +BR2_TOOLCHAIN_GCC_AT_LEAST_5=y +BR2_TOOLCHAIN_GCC_AT_LEAST_6=y +BR2_TOOLCHAIN_GCC_AT_LEAST_7=y +BR2_TOOLCHAIN_GCC_AT_LEAST_8=y +BR2_TOOLCHAIN_GCC_AT_LEAST_9=y +BR2_TOOLCHAIN_GCC_AT_LEAST_10=y +BR2_TOOLCHAIN_GCC_AT_LEAST_11=y +BR2_TOOLCHAIN_GCC_AT_LEAST_12=y +BR2_TOOLCHAIN_GCC_AT_LEAST="12" +BR2_TOOLCHAIN_HAS_MNAN_OPTION=y +BR2_TOOLCHAIN_HAS_SYNC_1=y +BR2_TOOLCHAIN_HAS_SYNC_2=y +BR2_TOOLCHAIN_HAS_SYNC_4=y +BR2_TOOLCHAIN_HAS_SYNC_8=y +BR2_TOOLCHAIN_HAS_LIBATOMIC=y +BR2_TOOLCHAIN_HAS_ATOMIC=y + +# +# Build options +# + +# +# Commands +# +BR2_WGET="wget --passive-ftp -nd -t 3" +BR2_SVN="svn --non-interactive" +BR2_BZR="bzr" +BR2_GIT="git" +BR2_CVS="cvs" +BR2_LOCALFILES="cp" +BR2_SCP="scp" +BR2_SFTP="sftp" +BR2_HG="hg" +BR2_ZCAT="gzip -d -c" +BR2_BZCAT="bzcat" +BR2_XZCAT="xzcat" +BR2_LZCAT="lzip -d -c" +BR2_TAR_OPTIONS="" +BR2_DEFCONFIG="./board/wally/main.config" +BR2_DL_DIR="$(TOPDIR)/dl" +BR2_HOST_DIR="$(BASE_DIR)/host" + +# +# Mirrors and Download locations +# +BR2_PRIMARY_SITE="" +BR2_BACKUP_SITE="http://sources.buildroot.net" +BR2_KERNEL_MIRROR="https://cdn.kernel.org/pub" +BR2_GNU_MIRROR="http://ftpmirror.gnu.org" +BR2_LUAROCKS_MIRROR="http://rocks.moonscript.org" +BR2_CPAN_MIRROR="https://cpan.metacpan.org" +BR2_JLEVEL=0 +# BR2_CCACHE is not set +BR2_ENABLE_DEBUG=y +# BR2_DEBUG_1 is not set +# BR2_DEBUG_2 is not set +BR2_DEBUG_3=y +# BR2_ENABLE_RUNTIME_DEBUG is not set +# BR2_STRIP_strip is not set +# BR2_OPTIMIZE_0 is not set +# BR2_OPTIMIZE_1 is not set +# BR2_OPTIMIZE_2 is not set +# BR2_OPTIMIZE_3 is not set +# BR2_OPTIMIZE_G is not set +BR2_OPTIMIZE_S=y +# BR2_OPTIMIZE_FAST is not set +# BR2_ENABLE_LTO is not set + +# +# static only needs a toolchain w/ uclibc or musl +# +BR2_SHARED_LIBS=y +# BR2_SHARED_STATIC_LIBS is not set +BR2_PACKAGE_OVERRIDE_FILE="$(CONFIG_DIR)/local.mk" +BR2_GLOBAL_PATCH_DIR="" + +# +# Advanced +# +# BR2_FORCE_HOST_BUILD is not set +# BR2_REPRODUCIBLE is not set +# BR2_PER_PACKAGE_DIRECTORIES is not set + +# +# Security Hardening Options +# +BR2_PIC_PIE_ARCH_SUPPORTS=y +# BR2_PIC_PIE is not set +BR2_SSP_NONE=y +# BR2_SSP_REGULAR is not set +# BR2_SSP_STRONG is not set +# BR2_SSP_ALL is not set +BR2_RELRO_NONE=y +# BR2_RELRO_PARTIAL is not set +# BR2_RELRO_FULL is not set +BR2_FORTIFY_SOURCE_ARCH_SUPPORTS=y +BR2_FORTIFY_SOURCE_NONE=y +# BR2_FORTIFY_SOURCE_1 is not set +# BR2_FORTIFY_SOURCE_2 is not set +# BR2_FORTIFY_SOURCE_3 is not set + +# +# System configuration +# +BR2_ROOTFS_SKELETON_DEFAULT=y +# BR2_ROOTFS_SKELETON_CUSTOM is not set +BR2_TARGET_GENERIC_HOSTNAME="WallyHostname" +BR2_TARGET_GENERIC_ISSUE="Greetings! This RISC-V Linux image was built for Wally on Buildroot!" +BR2_TARGET_GENERIC_PASSWD_SHA256=y +# BR2_TARGET_GENERIC_PASSWD_SHA512 is not set +BR2_TARGET_GENERIC_PASSWD_METHOD="sha-256" +BR2_INIT_BUSYBOX=y +# BR2_INIT_SYSV is not set +# BR2_INIT_OPENRC is not set +# BR2_INIT_SYSTEMD is not set +# BR2_INIT_NONE is not set +# BR2_ROOTFS_DEVICE_CREATION_STATIC is not set +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y +# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV is not set +# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is not set +BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt" +BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES=y +# BR2_ROOTFS_MERGED_USR is not set +BR2_TARGET_ENABLE_ROOT_LOGIN=y +BR2_TARGET_GENERIC_ROOT_PASSWD="" +BR2_SYSTEM_BIN_SH_BUSYBOX=y + +# +# bash, dash, mksh, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS +# +# BR2_SYSTEM_BIN_SH_NONE is not set +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="console" +BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP=y +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600 is not set +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200 is not set +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400 is not set +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 is not set +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 is not set +BR2_TARGET_GENERIC_GETTY_BAUDRATE="0" +BR2_TARGET_GENERIC_GETTY_TERM="vt100" +BR2_TARGET_GENERIC_GETTY_OPTIONS="" +BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y +BR2_SYSTEM_DHCP="eth0" +BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin" +BR2_ENABLE_LOCALE_PURGE=y +BR2_ENABLE_LOCALE_WHITELIST="C en_US" +BR2_GENERATE_LOCALE="" +# BR2_SYSTEM_ENABLE_NLS is not set +# BR2_TARGET_TZ_INFO is not set +BR2_ROOTFS_USERS_TABLES="" +BR2_ROOTFS_OVERLAY="./board/wally/rootfs_overlay" +BR2_ROOTFS_PRE_BUILD_SCRIPT="" +BR2_ROOTFS_POST_BUILD_SCRIPT="" +BR2_ROOTFS_POST_FAKEROOT_SCRIPT="" +BR2_ROOTFS_POST_IMAGE_SCRIPT="" + +# +# Kernel +# +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_LATEST_VERSION=y +# BR2_LINUX_KERNEL_LATEST_CIP_VERSION is not set +# BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION is not set +# BR2_LINUX_KERNEL_CUSTOM_VERSION is not set +# BR2_LINUX_KERNEL_CUSTOM_TARBALL is not set +# BR2_LINUX_KERNEL_CUSTOM_GIT is not set +# BR2_LINUX_KERNEL_CUSTOM_HG is not set +# BR2_LINUX_KERNEL_CUSTOM_SVN is not set +BR2_LINUX_KERNEL_VERSION="6.3.12" +BR2_LINUX_KERNEL_PATCH="" +# BR2_LINUX_KERNEL_USE_DEFCONFIG is not set +# BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG is not set +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="./board/wally/linux.config" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="" +BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH="" +BR2_LINUX_KERNEL_IMAGE=y +# BR2_LINUX_KERNEL_IMAGEGZ is not set +# BR2_LINUX_KERNEL_VMLINUX is not set +# BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM is not set +BR2_LINUX_KERNEL_GZIP=y +# BR2_LINUX_KERNEL_LZ4 is not set +# BR2_LINUX_KERNEL_LZMA is not set +# BR2_LINUX_KERNEL_LZO is not set +# BR2_LINUX_KERNEL_XZ is not set +# BR2_LINUX_KERNEL_ZSTD is not set +# BR2_LINUX_KERNEL_DTS_SUPPORT is not set +# BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL is not set +# BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF is not set +# BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE is not set + +# +# Linux Kernel Extensions +# +# BR2_LINUX_KERNEL_EXT_EV3DEV_LINUX_DRIVERS is not set +# BR2_LINUX_KERNEL_EXT_FBTFT is not set +# BR2_LINUX_KERNEL_EXT_AUFS is not set + +# +# Linux Kernel Tools +# +# BR2_PACKAGE_LINUX_TOOLS_CPUPOWER is not set +# BR2_PACKAGE_LINUX_TOOLS_GPIO is not set +# BR2_PACKAGE_LINUX_TOOLS_IIO is not set +# BR2_PACKAGE_LINUX_TOOLS_PCI is not set +# BR2_PACKAGE_LINUX_TOOLS_PERF is not set + +# +# selftests needs BR2_PACKAGE_BUSYBOX_SHOW_OTHERS and a toolchain w/ dynamic library and headers >= 3.14 +# +# BR2_PACKAGE_LINUX_TOOLS_USBTOOLS is not set +# BR2_PACKAGE_LINUX_TOOLS_TMON is not set + +# +# Target packages +# +BR2_PACKAGE_BUSYBOX=y +BR2_PACKAGE_BUSYBOX_CONFIG="./board/wally/busybox.config" +BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="" +# BR2_PACKAGE_BUSYBOX_SHOW_OTHERS is not set +# BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES is not set +# BR2_PACKAGE_BUSYBOX_WATCHDOG is not set +BR2_PACKAGE_SKELETON=y +BR2_PACKAGE_HAS_SKELETON=y +BR2_PACKAGE_PROVIDES_SKELETON="skeleton-init-sysv" +BR2_PACKAGE_SKELETON_INIT_COMMON=y +BR2_PACKAGE_SKELETON_INIT_SYSV=y + +# +# Audio and video applications +# +# BR2_PACKAGE_ALSA_UTILS is not set +# BR2_PACKAGE_ATEST is not set +# BR2_PACKAGE_AUMIX is not set +# BR2_PACKAGE_BLUEZ_ALSA is not set +# BR2_PACKAGE_DVBLAST is not set +# BR2_PACKAGE_DVDAUTHOR is not set + +# +# dvdrw-tools needs a toolchain w/ threads, C++, wchar +# + +# +# espeak needs a toolchain w/ C++, wchar, threads, dynamic library +# +# BR2_PACKAGE_FAAD2 is not set +BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS=y +# BR2_PACKAGE_FFMPEG is not set +# BR2_PACKAGE_FLAC is not set +# BR2_PACKAGE_FLITE is not set +# BR2_PACKAGE_FLUID_SOUNDFONT is not set + +# +# fluidsynth needs a toolchain w/ threads, wchar, dynamic library, C++ +# +# BR2_PACKAGE_GMRENDER_RESURRECT is not set +# BR2_PACKAGE_GSTREAMER1 is not set +# BR2_PACKAGE_JACK1 is not set + +# +# jack2 needs a toolchain w/ threads, C++, dynamic library +# +BR2_PACKAGE_KODI_ARCH_SUPPORTS=y + +# +# kodi needs python3 w/ .py modules, a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 9.x +# + +# +# kodi needs udev support for gbm +# + +# +# kodi needs an OpenGL EGL backend with OpenGL or GLES support +# +# BR2_PACKAGE_LAME is not set +# BR2_PACKAGE_MADPLAY is not set +# BR2_PACKAGE_MIMIC is not set +# BR2_PACKAGE_MINIMODEM is not set + +# +# miraclecast needs systemd and a glibc toolchain w/ threads and wchar +# + +# +# mjpegtools needs a toolchain w/ C++, threads +# + +# +# modplugtools needs a toolchain w/ C++ +# +# BR2_PACKAGE_MOTION is not set + +# +# mpd needs a toolchain w/ C++, threads, wchar, gcc >= 8, host gcc >= 8 +# +# BR2_PACKAGE_MPD_MPC is not set +# BR2_PACKAGE_MPG123 is not set + +# +# mpv needs a toolchain w/ C++, NPTL, gcc >= 4.9 +# +# BR2_PACKAGE_MULTICAT is not set +# BR2_PACKAGE_MUSEPACK is not set + +# +# ncmpc needs a toolchain w/ C++, wchar, threads, gcc >= 10 +# +# BR2_PACKAGE_OPUS_TOOLS is not set +# BR2_PACKAGE_PIPEWIRE is not set +BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC=y +# BR2_PACKAGE_PULSEAUDIO is not set +# BR2_PACKAGE_SOX is not set +# BR2_PACKAGE_SPEECHD is not set +# BR2_PACKAGE_SQUEEZELITE is not set +# BR2_PACKAGE_TINYCOMPRESS is not set + +# +# tovid needs a toolchain w/ NPTL, C++, wchar, gcc >= 4.9 +# +# BR2_PACKAGE_TSTOOLS is not set +# BR2_PACKAGE_TWOLAME is not set +# BR2_PACKAGE_UDPXY is not set + +# +# upmpdcli needs a toolchain w/ C++, NPTL, gcc >= 4.9 +# + +# +# v4l2grab needs a toolchain w/ threads, dynamic library, C++ and headers >= 3.0 +# +# BR2_PACKAGE_V4L2LOOPBACK is not set + +# +# vlc needs a toolchain w/ C++, dynamic library, wchar, threads, gcc >= 4.9, headers >= 3.7 +# +# BR2_PACKAGE_VORBIS_TOOLS is not set +# BR2_PACKAGE_WAVPACK is not set +# BR2_PACKAGE_YAVTA is not set +# BR2_PACKAGE_YMPD is not set + +# +# zynaddsubfx needs a toolchain w/ C++11 and threads +# + +# +# Compressors and decompressors +# +# BR2_PACKAGE_BROTLI is not set +# BR2_PACKAGE_BZIP2 is not set + +# +# lrzip needs a toolchain w/ wchar, threads, C++ +# + +# +# lzip needs a toolchain w/ C++ +# +# BR2_PACKAGE_LZOP is not set + +# +# p7zip needs a toolchain w/ threads, wchar, C++ +# +# BR2_PACKAGE_PIGZ is not set +# BR2_PACKAGE_PIXZ is not set + +# +# unrar needs a toolchain w/ C++, wchar, threads, gcc >= 4.8 +# +# BR2_PACKAGE_XZ is not set +# BR2_PACKAGE_ZIP is not set +# BR2_PACKAGE_ZSTD is not set + +# +# Debugging, profiling and benchmark +# +# BR2_PACKAGE_BABELTRACE2 is not set +# BR2_PACKAGE_BLKTRACE is not set + +# +# bonnie++ needs a toolchain w/ C++ +# +# BR2_PACKAGE_CACHE_CALIBRATOR is not set + +# +# clinfo needs an OpenCL provider +# + +# +# clpeak needs an OpenCL provider, a toolchain w/ C++, gcc >= 4.8 +# +# BR2_PACKAGE_COREMARK is not set +# BR2_PACKAGE_COREMARK_PRO is not set + +# +# dacapo needs OpenJDK +# +# BR2_PACKAGE_DHRYSTONE is not set +# BR2_PACKAGE_DIEHARDER is not set +# BR2_PACKAGE_DMALLOC is not set +# BR2_PACKAGE_DROPWATCH is not set +# BR2_PACKAGE_DSTAT is not set +# BR2_PACKAGE_DT is not set + +# +# duma needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_FIO is not set +BR2_PACKAGE_GDB_ARCH_SUPPORTS=y + +# +# gdb/gdbserver >= 8.x needs a toolchain w/ C++, gcc >= 4.8 +# +# BR2_PACKAGE_IOZONE is not set +# BR2_PACKAGE_KMEMD is not set +# BR2_PACKAGE_LATENCYTOP is not set +# BR2_PACKAGE_LIBBPF is not set +# BR2_PACKAGE_LMBENCH is not set +BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS=y +# BR2_PACKAGE_LTP_TESTSUITE is not set +# BR2_PACKAGE_LTTNG_BABELTRACE is not set +# BR2_PACKAGE_LTTNG_MODULES is not set +# BR2_PACKAGE_LTTNG_TOOLS is not set +# BR2_PACKAGE_MBW is not set +# BR2_PACKAGE_MEMSTAT is not set +# BR2_PACKAGE_NETPERF is not set +# BR2_PACKAGE_NETSNIFF_NG is not set +# BR2_PACKAGE_NMON is not set +# BR2_PACKAGE_PAX_UTILS is not set +BR2_PACKAGE_PERFTEST_ARCH_SUPPORTS=y +# BR2_PACKAGE_PERFTEST is not set + +# +# piglit needs a glibc or musl toolchain w/ C++ +# +# BR2_PACKAGE_POKE is not set +# BR2_PACKAGE_PV is not set +# BR2_PACKAGE_RAMSMP is not set +# BR2_PACKAGE_RAMSPEED is not set +# BR2_PACKAGE_RT_TESTS is not set + +# +# rwmem needs a toolchain w/ C++, wchar, gcc >= 5 +# + +# +# signal-estimator needs a toochain w/ C++, threads, gcc >= 7 +# +# BR2_PACKAGE_SPIDEV_TEST is not set +# BR2_PACKAGE_STRACE is not set +# BR2_PACKAGE_STRESS is not set +# BR2_PACKAGE_STRESS_NG is not set + +# +# sysdig needs a glibc toolchain w/ C++, threads, gcc >= 5, dynamic library, a Linux kernel, and luajit or lua 5.1 to be built +# +# BR2_PACKAGE_TINYMEMBENCH is not set +# BR2_PACKAGE_TRACE_CMD is not set +# BR2_PACKAGE_UCLIBC_NG_TEST is not set +# BR2_PACKAGE_VMTOUCH is not set +# BR2_PACKAGE_WHETSTONE is not set + +# +# Development tools +# +# BR2_PACKAGE_AVOCADO is not set +# BR2_PACKAGE_BINUTILS is not set +# BR2_PACKAGE_BITWISE is not set +# BR2_PACKAGE_BSDIFF is not set +# BR2_PACKAGE_CHECK is not set +BR2_PACKAGE_CMAKE_ARCH_SUPPORTS=y + +# +# ctest needs a toolchain w/ C++, wchar, dynamic library, gcc >= 4.7, NPTL +# + +# +# cppunit needs a toolchain w/ C++, dynamic library +# +# BR2_PACKAGE_CUKINIA is not set +# BR2_PACKAGE_CUNIT is not set +# BR2_PACKAGE_CVS is not set + +# +# cxxtest needs a toolchain w/ C++ support +# +# BR2_PACKAGE_FLEX is not set +# BR2_PACKAGE_GETTEXT is not set +BR2_PACKAGE_PROVIDES_HOST_GETTEXT="host-gettext-tiny" +# BR2_PACKAGE_GIT is not set + +# +# git-crypt needs a toolchain w/ C++, gcc >= 4.9 +# + +# +# gperf needs a toolchain w/ C++ +# +# BR2_PACKAGE_JO is not set +# BR2_PACKAGE_JQ is not set +# BR2_PACKAGE_LIBTOOL is not set +# BR2_PACKAGE_MAKE is not set +# BR2_PACKAGE_MAWK is not set +# BR2_PACKAGE_PKGCONF is not set +# BR2_PACKAGE_SUBVERSION is not set +# BR2_PACKAGE_TREE is not set + +# +# Filesystem and flash utilities +# +# BR2_PACKAGE_ABOOTIMG is not set +# BR2_PACKAGE_AUFS_UTIL is not set +# BR2_PACKAGE_AUTOFS is not set +# BR2_PACKAGE_BTRFS_PROGS is not set +# BR2_PACKAGE_CIFS_UTILS is not set +# BR2_PACKAGE_CPIO is not set +# BR2_PACKAGE_CRAMFS is not set +# BR2_PACKAGE_CURLFTPFS is not set +# BR2_PACKAGE_DAVFS2 is not set +# BR2_PACKAGE_DOSFSTOOLS is not set +# BR2_PACKAGE_E2FSPROGS is not set +# BR2_PACKAGE_E2TOOLS is not set +# BR2_PACKAGE_ECRYPTFS_UTILS is not set +# BR2_PACKAGE_EROFS_UTILS is not set +# BR2_PACKAGE_EXFAT is not set +# BR2_PACKAGE_EXFAT_UTILS is not set +# BR2_PACKAGE_EXFATPROGS is not set +# BR2_PACKAGE_F2FS_TOOLS is not set +# BR2_PACKAGE_FIRMWARE_UTILS is not set +# BR2_PACKAGE_FLASHBENCH is not set +# BR2_PACKAGE_FSCRYPTCTL is not set +# BR2_PACKAGE_FUSE_OVERLAYFS is not set +# BR2_PACKAGE_FWUP is not set +# BR2_PACKAGE_GENEXT2FS is not set +# BR2_PACKAGE_GENPART is not set +# BR2_PACKAGE_GENROMFS is not set +# BR2_PACKAGE_GOCRYPTFS is not set +# BR2_PACKAGE_IMX_USB_LOADER is not set +# BR2_PACKAGE_MMC_UTILS is not set +# BR2_PACKAGE_MTD is not set +# BR2_PACKAGE_MTOOLS is not set +# BR2_PACKAGE_NFS_UTILS is not set +# BR2_PACKAGE_NILFS_UTILS is not set +# BR2_PACKAGE_NTFS_3G is not set +# BR2_PACKAGE_SP_OOPS_EXTRACT is not set +# BR2_PACKAGE_SQUASHFS is not set +# BR2_PACKAGE_SSHFS is not set +# BR2_PACKAGE_UDFTOOLS is not set +# BR2_PACKAGE_UNIONFS is not set +# BR2_PACKAGE_XFSPROGS is not set +# BR2_PACKAGE_ZEROFREE is not set + +# +# zfs needs udev /dev management +# + +# +# Fonts, cursors, icons, sounds and themes +# + +# +# Cursors +# +# BR2_PACKAGE_COMIX_CURSORS is not set +# BR2_PACKAGE_OBSIDIAN_CURSORS is not set + +# +# Fonts +# +# BR2_PACKAGE_BITSTREAM_VERA is not set +# BR2_PACKAGE_CANTARELL is not set +# BR2_PACKAGE_DEJAVU is not set +# BR2_PACKAGE_FONT_AWESOME is not set +# BR2_PACKAGE_GHOSTSCRIPT_FONTS is not set +# BR2_PACKAGE_INCONSOLATA is not set +# BR2_PACKAGE_LIBERATION is not set +# BR2_PACKAGE_WQY_ZENHEI is not set + +# +# Icons +# +# BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS is not set +# BR2_PACKAGE_HICOLOR_ICON_THEME is not set + +# +# Sounds +# +# BR2_PACKAGE_SOUND_THEME_BOREALIS is not set +# BR2_PACKAGE_SOUND_THEME_FREEDESKTOP is not set + +# +# Themes +# + +# +# Games +# +# BR2_PACKAGE_ASCII_INVADERS is not set +# BR2_PACKAGE_CHOCOLATE_DOOM is not set + +# +# flare-engine needs a toolchain w/ C++, dynamic library +# +# BR2_PACKAGE_FROTZ is not set + +# +# gnuchess needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LBREAKOUT2 is not set +# BR2_PACKAGE_LTRIS is not set +# BR2_PACKAGE_OPENTYRIAN is not set +# BR2_PACKAGE_PRBOOM is not set +# BR2_PACKAGE_SL is not set + +# +# solarus needs OpenGL and a toolchain w/ C++, gcc >= 4.9, NPTL, dynamic library, and luajit or lua 5.1 +# + +# +# stella needs a toolchain w/ dynamic library, C++, threads, gcc >= 7 +# +# BR2_PACKAGE_XORCURSES is not set + +# +# Graphic libraries and applications (graphic/text) +# + +# +# Graphic applications +# + +# +# cage needs udev, EGL w/ Wayland backend and OpenGL ES support +# + +# +# cog needs wpewebkit and a toolchain w/ threads +# +# BR2_PACKAGE_FSWEBCAM is not set +# BR2_PACKAGE_GHOSTSCRIPT is not set + +# +# glmark2 needs a toolchain w/ C++, gcc >= 4.9 +# + +# +# glslsandbox-player needs openGL ES and EGL driver +# +# BR2_PACKAGE_GNUPLOT is not set +# BR2_PACKAGE_JHEAD is not set + +# +# kmscube needs EGL, GBM and OpenGL ES, and a toolchain w/ thread support +# + +# +# libva-utils needs a toolchain w/ C++, threads, dynamic library +# +BR2_PACKAGE_MIDORI_ARCH_SUPPORTS=y + +# +# midori needs a glibc toolchain w/ C++, wchar, threads, dynamic library, gcc >= 7, host gcc >= 8 +# + +# +# midori needs libgtk3 w/ X11 or wayland backend +# +BR2_PACKAGE_NETSURF_ARCH_SUPPORTS=y +# BR2_PACKAGE_NETSURF is not set +# BR2_PACKAGE_PNGQUANT is not set +# BR2_PACKAGE_RRDTOOL is not set + +# +# stellarium needs Qt5 and an OpenGL provider +# + +# +# sway needs systemd, udev, EGL w/ Wayland backend and OpenGL ES support +# + +# +# sway needs a toolchain w/ wchar, threads, C++, dynamic library, gcc >= 4.9 +# + +# +# tesseract-ocr needs a toolchain w/ threads, C++, gcc >= 7, dynamic library, wchar +# +# BR2_PACKAGE_TINIFIER is not set + +# +# Graphic libraries +# + +# +# cegui needs a toolchain w/ C++, threads, dynamic library, wchar, gcc >= 5 +# + +# +# directfb needs a glibc or uClibc toolchain w/ C++, NPTL, gcc >= 4.5, dynamic library +# + +# +# efl needs a toolchain w/ C++, dynamic library, gcc >= 4.9, host gcc >= 4.9, threads, wchar +# +# BR2_PACKAGE_FB_TEST_APP is not set +# BR2_PACKAGE_FBDUMP is not set +# BR2_PACKAGE_FBGRAB is not set + +# +# fbterm needs a toolchain w/ C++, wchar, locale +# +# BR2_PACKAGE_FBV is not set + +# +# freerdp needs a toolchain w/ wchar, dynamic library, threads, C++ +# +# BR2_PACKAGE_GRAPHICSMAGICK is not set +# BR2_PACKAGE_IMAGEMAGICK is not set +# BR2_PACKAGE_LIBGLVND is not set +# BR2_PACKAGE_LINUX_FUSION is not set + +# +# mesa3d needs a toolchain w/ gcc >=8, C++, NPTL, dynamic library +# + +# +# ocrad needs a toolchain w/ C++ +# + +# +# ogre needs a toolchain w/ C++, dynamic library, gcc >= 4.8, threads, wchar +# +# BR2_PACKAGE_PSPLASH is not set +# BR2_PACKAGE_SDL is not set +# BR2_PACKAGE_SDL2 is not set +# BR2_PACKAGE_VULKAN_HEADERS is not set + +# +# Other GUIs +# + +# +# Qt5 needs host g++ >= 5.0, and a toolchain w/ gcc >= 5.0, wchar, NPTL, C++, dynamic library +# + +# +# tekui needs a Lua interpreter and a toolchain w/ threads, dynamic library +# + +# +# weston needs udev and a toolchain w/ locale, threads, dynamic library, headers >= 3.0 +# +# BR2_PACKAGE_XORG7 is not set + +# +# apitrace needs a toolchain w/ C++, wchar, dynamic library, threads, gcc >= 7 +# + +# +# mupdf needs a toolchain w/ C++, gcc >= 4.9 +# + +# +# vte needs a uClibc or glibc toolchain w/ wchar, threads, C++, gcc >= 10 +# + +# +# vte needs an OpenGL or an OpenGL-EGL/wayland backend +# +# BR2_PACKAGE_XKEYBOARD_CONFIG is not set + +# +# Hardware handling +# + +# +# Firmware +# +# BR2_PACKAGE_ARMBIAN_FIRMWARE is not set +# BR2_PACKAGE_B43_FIRMWARE is not set +# BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI is not set +# BR2_PACKAGE_LINUX_FIRMWARE is not set +# BR2_PACKAGE_MURATA_CYW_FW is not set +# BR2_PACKAGE_ODROIDC2_FIRMWARE is not set +# BR2_PACKAGE_QCOM_DB410C_FIRMWARE is not set +# BR2_PACKAGE_RCW_SMARC_SAL28 is not set +# BR2_PACKAGE_UX500_FIRMWARE is not set +# BR2_PACKAGE_WILC1000_FIRMWARE is not set +# BR2_PACKAGE_WILC3000_FIRMWARE is not set +# BR2_PACKAGE_WILINK_BT_FIRMWARE is not set +# BR2_PACKAGE_ZD1211_FIRMWARE is not set +# BR2_PACKAGE_18XX_TI_UTILS is not set +# BR2_PACKAGE_ACPICA is not set +# BR2_PACKAGE_ACPID is not set + +# +# acpitool needs a toolchain w/ threads, C++, dynamic library +# +# BR2_PACKAGE_AER_INJECT is not set +# BR2_PACKAGE_ALTERA_STAPL is not set + +# +# apcupsd needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_AVRDUDE is not set + +# +# bcache-tools needs udev /dev management +# + +# +# brickd needs udev /dev management, a toolchain w/ threads, wchar +# +# BR2_PACKAGE_BRLTTY is not set + +# +# cc-tool needs a toolchain w/ C++, threads, wchar, gcc >= 4.9 +# +# BR2_PACKAGE_CDRKIT is not set +# BR2_PACKAGE_CRUCIBLE is not set +# BR2_PACKAGE_CRYPTSETUP is not set +# BR2_PACKAGE_CWIID is not set +# BR2_PACKAGE_DAHDI_LINUX is not set +# BR2_PACKAGE_DAHDI_TOOLS is not set +# BR2_PACKAGE_DBUS is not set + +# +# dbusbroker needs systemd and a toolchain w/ threads +# + +# +# dbus-cxx needs a toolchain w/ C++, threads, gcc >= 7 and dynamic library support +# +# BR2_PACKAGE_DFU_UTIL is not set +# BR2_PACKAGE_DMRAID is not set + +# +# dt-utils needs udev /dev management +# +# BR2_PACKAGE_DTBOCFG is not set +# BR2_PACKAGE_DTV_SCAN_TABLES is not set +# BR2_PACKAGE_DUMP1090 is not set +# BR2_PACKAGE_DVB_APPS is not set +# BR2_PACKAGE_DVBSNOOP is not set + +# +# edid-decode needs a toolchain w/ C++, gcc >= 4.7 +# + +# +# eudev needs eudev /dev management +# +# BR2_PACKAGE_EVEMU is not set +# BR2_PACKAGE_EVTEST is not set +# BR2_PACKAGE_FAN_CTRL is not set +# BR2_PACKAGE_FCONFIG is not set +BR2_PACKAGE_FLASHROM_ARCH_SUPPORTS=y +# BR2_PACKAGE_FLASHROM is not set +# BR2_PACKAGE_FMTOOLS is not set +BR2_PACKAGE_FPGA_AXI_SDC=y +# BR2_PACKAGE_FREEIPMI is not set +# BR2_PACKAGE_FXLOAD is not set +# BR2_PACKAGE_GPM is not set +# BR2_PACKAGE_GPSD is not set + +# +# gptfdisk needs a toolchain w/ C++ +# +# BR2_PACKAGE_GVFS is not set +# BR2_PACKAGE_HDDTEMP is not set +# BR2_PACKAGE_HWDATA is not set +# BR2_PACKAGE_HWLOC is not set +# BR2_PACKAGE_INPUT_EVENT_DAEMON is not set +# BR2_PACKAGE_IPMITOOL is not set +# BR2_PACKAGE_IRDA_UTILS is not set +# BR2_PACKAGE_KBD is not set +# BR2_PACKAGE_LCDPROC is not set + +# +# libiec61850 needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_LIBMANETTE is not set +# BR2_PACKAGE_LIBUBOOTENV is not set +# BR2_PACKAGE_LIBUIO is not set +# BR2_PACKAGE_LINUX_BACKPORTS is not set +# BR2_PACKAGE_LINUX_SERIAL_TEST is not set +# BR2_PACKAGE_LINUXCONSOLETOOLS is not set + +# +# lirc-tools needs a toolchain w/ threads, dynamic library, C++ +# +# BR2_PACKAGE_LM_SENSORS is not set + +# +# lshw needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_LSSCSI is not set +# BR2_PACKAGE_LSUIO is not set +# BR2_PACKAGE_LUKSMETA is not set +# BR2_PACKAGE_LVM2 is not set +# BR2_PACKAGE_MBPFAN is not set +# BR2_PACKAGE_MDADM is not set +# BR2_PACKAGE_MDEVD is not set +# BR2_PACKAGE_MDIO_TOOLS is not set +# BR2_PACKAGE_MEMTESTER is not set +# BR2_PACKAGE_MEMTOOL is not set +# BR2_PACKAGE_MINICOM is not set +# BR2_PACKAGE_NANOCOM is not set +# BR2_PACKAGE_NEARD is not set +# BR2_PACKAGE_NVIDIA_MODPROBE is not set +# BR2_PACKAGE_NVME is not set +# BR2_PACKAGE_OFONO is not set + +# +# ola needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8 +# +# BR2_PACKAGE_OPEN2300 is not set + +# +# openfpgaloader needs a toolchain w/ threads, C++, gcc >= 4.9 +# +# BR2_PACKAGE_OPENIPMI is not set +# BR2_PACKAGE_OPENOCD is not set +# BR2_PACKAGE_PARTED is not set +# BR2_PACKAGE_PCIUTILS is not set +# BR2_PACKAGE_PDBG is not set +# BR2_PACKAGE_PICOCOM is not set + +# +# powertop needs a toolchain w/ C++, threads, wchar +# +# BR2_PACKAGE_PPS_TOOLS is not set +# BR2_PACKAGE_QORIQ_CADENCE_DP_FIRMWARE is not set +# BR2_PACKAGE_RASPI_GPIO is not set +# BR2_PACKAGE_RDMA_CORE is not set +# BR2_PACKAGE_READ_EDID is not set +# BR2_PACKAGE_RNG_TOOLS is not set +# BR2_PACKAGE_RS485CONF is not set +# BR2_PACKAGE_RTC_TOOLS is not set +# BR2_PACKAGE_RTL8188EU is not set +# BR2_PACKAGE_RTL8189ES is not set +# BR2_PACKAGE_RTL8189FS is not set +# BR2_PACKAGE_RTL8192EU is not set +# BR2_PACKAGE_RTL8723BU is not set +# BR2_PACKAGE_RTL8723DS is not set +# BR2_PACKAGE_RTL8723DS_BT is not set +# BR2_PACKAGE_RTL8812AU_AIRCRACK_NG is not set +# BR2_PACKAGE_RTL8821AU is not set +# BR2_PACKAGE_RTL8821CU is not set +# BR2_PACKAGE_SANE_BACKENDS is not set +# BR2_PACKAGE_SDPARM is not set +# BR2_PACKAGE_SETSERIAL is not set +# BR2_PACKAGE_SG3_UTILS is not set +# BR2_PACKAGE_SIGROK_CLI is not set +# BR2_PACKAGE_SISPMCTL is not set + +# +# smartmontools needs a toolchain w/ C++ +# +# BR2_PACKAGE_SMSTOOLS3 is not set +# BR2_PACKAGE_SPI_TOOLS is not set +# BR2_PACKAGE_SREDIRD is not set +# BR2_PACKAGE_STATSERIAL is not set +# BR2_PACKAGE_STM32FLASH is not set +# BR2_PACKAGE_SYSSTAT is not set + +# +# targetcli-fb depends on Python +# +# BR2_PACKAGE_TI_UIM is not set +# BR2_PACKAGE_TI_UTILS is not set +# BR2_PACKAGE_TIO is not set +# BR2_PACKAGE_TRIGGERHAPPY is not set +# BR2_PACKAGE_UBOOT_TOOLS is not set +# BR2_PACKAGE_UBUS is not set + +# +# udisks needs udev /dev management +# +# BR2_PACKAGE_UHUBCTL is not set +# BR2_PACKAGE_UMTPRD is not set + +# +# upower needs udev /dev management +# +# BR2_PACKAGE_USB_MODESWITCH is not set +# BR2_PACKAGE_USB_MODESWITCH_DATA is not set + +# +# usbguard needs a toolchain w/ C++, threads, dynamic library, gcc >= 8 +# + +# +# usbmount requires udev to be enabled +# + +# +# usbutils needs udev /dev management and toolchain w/ threads, gcc >= 4.9 +# +# BR2_PACKAGE_W_SCAN is not set +# BR2_PACKAGE_WILC_DRIVER is not set +# BR2_PACKAGE_WIPE is not set +# BR2_PACKAGE_XORRISO is not set +# BR2_PACKAGE_XR819_XRADIO is not set + +# +# Interpreter languages and scripting +# +# BR2_PACKAGE_4TH is not set +# BR2_PACKAGE_ENSCRIPT is not set +BR2_PACKAGE_HOST_ERLANG_ARCH_SUPPORTS=y +BR2_PACKAGE_ERLANG_ARCH_SUPPORTS=y +# BR2_PACKAGE_ERLANG is not set +# BR2_PACKAGE_EXECLINE is not set +# BR2_PACKAGE_FICL is not set +# BR2_PACKAGE_GUILE is not set +# BR2_PACKAGE_HASERL is not set +# BR2_PACKAGE_JANET is not set +# BR2_PACKAGE_JIMTCL is not set +# BR2_PACKAGE_LUA is not set +BR2_PACKAGE_PROVIDES_HOST_LUAINTERPRETER="host-lua" +# BR2_PACKAGE_MICROPYTHON is not set +# BR2_PACKAGE_MOARVM is not set +BR2_PACKAGE_HOST_MONO_ARCH_SUPPORTS=y + +# +# octave needs a toolchain w/ C++ and fortran, gcc >= 4.8 +# +BR2_PACKAGE_HOST_OPENJDK_BIN_ARCH_SUPPORTS=y +# BR2_PACKAGE_PERL is not set +BR2_PACKAGE_PHP_ARCH_SUPPORTS=y +# BR2_PACKAGE_PHP is not set +# BR2_PACKAGE_PYTHON3 is not set +# BR2_PACKAGE_QUICKJS is not set +# BR2_PACKAGE_RUBY is not set +# BR2_PACKAGE_TCL is not set + +# +# Libraries +# + +# +# Audio/Sound +# +# BR2_PACKAGE_ALSA_LIB is not set + +# +# alure needs a toolchain w/ C++, gcc >= 4.9, NPTL, wchar +# +# BR2_PACKAGE_AUBIO is not set +# BR2_PACKAGE_BCG729 is not set + +# +# caps needs a toolchain w/ C++, dynamic library +# +# BR2_PACKAGE_LIBAO is not set + +# +# asplib needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBBROADVOICE is not set +# BR2_PACKAGE_LIBCDAUDIO is not set +# BR2_PACKAGE_LIBCDDB is not set +# BR2_PACKAGE_LIBCDIO is not set +# BR2_PACKAGE_LIBCDIO_PARANOIA is not set +# BR2_PACKAGE_LIBCODEC2 is not set +# BR2_PACKAGE_LIBCUE is not set +# BR2_PACKAGE_LIBCUEFILE is not set +# BR2_PACKAGE_LIBEBUR128 is not set +# BR2_PACKAGE_LIBG7221 is not set +# BR2_PACKAGE_LIBGSM is not set +# BR2_PACKAGE_LIBID3TAG is not set +# BR2_PACKAGE_LIBILBC is not set +# BR2_PACKAGE_LIBLO is not set +# BR2_PACKAGE_LIBMAD is not set + +# +# libmodplug needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBMPD is not set +# BR2_PACKAGE_LIBMPDCLIENT is not set +# BR2_PACKAGE_LIBREPLAYGAIN is not set +# BR2_PACKAGE_LIBSAMPLERATE is not set + +# +# libsidplay2 needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBSILK is not set +# BR2_PACKAGE_LIBSNDFILE is not set + +# +# libsoundtouch needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBSOXR is not set +# BR2_PACKAGE_LIBVORBIS is not set +# BR2_PACKAGE_LILV is not set +# BR2_PACKAGE_LV2 is not set + +# +# mp4v2 needs a toolchain w/ C++ +# +BR2_PACKAGE_OPENAL_ARCH_SUPPORTS=y + +# +# openal needs a toolchain w/ NPTL, C++, gcc >= 4.9 +# + +# +# opencore-amr needs a toolchain w/ C++ +# +# BR2_PACKAGE_OPUS is not set +# BR2_PACKAGE_OPUSFILE is not set +# BR2_PACKAGE_PORTAUDIO is not set +# BR2_PACKAGE_SBC is not set +# BR2_PACKAGE_SPANDSP is not set +# BR2_PACKAGE_SPEEX is not set +# BR2_PACKAGE_SPEEXDSP is not set +# BR2_PACKAGE_SRATOM is not set + +# +# taglib needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_TINYALSA is not set +# BR2_PACKAGE_TREMOR is not set +# BR2_PACKAGE_VO_AACENC is not set + +# +# Compression and decompression +# +# BR2_PACKAGE_LIBARCHIVE is not set +# BR2_PACKAGE_LIBDEFLATE is not set +# BR2_PACKAGE_LIBMSPACK is not set + +# +# libsquish needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBZIP is not set +# BR2_PACKAGE_LZ4 is not set +# BR2_PACKAGE_LZO is not set +# BR2_PACKAGE_MINIZIP is not set +# BR2_PACKAGE_MINIZIP_ZLIB is not set + +# +# snappy needs a toolchain w/ C++ +# +# BR2_PACKAGE_SZIP is not set +# BR2_PACKAGE_ZCHUNK is not set +BR2_PACKAGE_ZLIB_NG_ARCH_SUPPORTS=y +# BR2_PACKAGE_ZLIB is not set +BR2_PACKAGE_PROVIDES_HOST_ZLIB="host-libzlib" +# BR2_PACKAGE_ZZIPLIB is not set + +# +# Crypto +# +# BR2_PACKAGE_BEARSSL is not set +# BR2_PACKAGE_BEECRYPT is not set +BR2_PACKAGE_BOTAN_ARCH_SUPPORTS=y + +# +# botan needs a toolchain w/ C++, threads, gcc >= 4.8 +# +# BR2_PACKAGE_CA_CERTIFICATES is not set +# BR2_PACKAGE_CRYPTODEV is not set + +# +# cryptopp needs a toolchain w/ C++, dynamic library, wchar +# +# BR2_PACKAGE_GCR is not set +# BR2_PACKAGE_GNUTLS is not set +# BR2_PACKAGE_LIBARGON2 is not set +# BR2_PACKAGE_LIBASSUAN is not set +# BR2_PACKAGE_LIBB2 is not set +# BR2_PACKAGE_LIBGCRYPT is not set +BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBGPG_ERROR is not set +BR2_PACKAGE_LIBGPG_ERROR_SYSCFG="riscv64-unknown-linux-gnu" +# BR2_PACKAGE_LIBGPGME is not set +# BR2_PACKAGE_LIBKCAPI is not set +# BR2_PACKAGE_LIBKSBA is not set +# BR2_PACKAGE_LIBMD is not set +# BR2_PACKAGE_LIBMHASH is not set +# BR2_PACKAGE_LIBNSS is not set + +# +# libolm needs a toolchain w/ C++, gcc >= 4.8 +# +# BR2_PACKAGE_LIBP11 is not set +# BR2_PACKAGE_LIBSCRYPT is not set +# BR2_PACKAGE_LIBSECRET is not set +# BR2_PACKAGE_LIBSHA1 is not set +# BR2_PACKAGE_LIBSODIUM is not set +# BR2_PACKAGE_LIBSSH is not set +# BR2_PACKAGE_LIBSSH2 is not set +# BR2_PACKAGE_LIBTOMCRYPT is not set +# BR2_PACKAGE_LIBUECC is not set +# BR2_PACKAGE_LIBXCRYPT is not set +# BR2_PACKAGE_MBEDTLS is not set +# BR2_PACKAGE_NETTLE is not set +# BR2_PACKAGE_OPENSSL is not set +BR2_PACKAGE_PROVIDES_HOST_OPENSSL="host-libopenssl" +# BR2_PACKAGE_PKCS11_HELPER is not set +# BR2_PACKAGE_RHASH is not set +# BR2_PACKAGE_TINYDTLS is not set +# BR2_PACKAGE_TPM2_PKCS11 is not set +# BR2_PACKAGE_TPM2_TSS is not set +# BR2_PACKAGE_TROUSERS is not set +# BR2_PACKAGE_USTREAM_SSL is not set +BR2_PACKAGE_WOLFSSL_ASM_SUPPORTS=y +# BR2_PACKAGE_WOLFSSL is not set +# BR2_PACKAGE_WOLFTPM is not set + +# +# Database +# +# BR2_PACKAGE_BERKELEYDB is not set +# BR2_PACKAGE_GDBM is not set +# BR2_PACKAGE_HIREDIS is not set + +# +# kompexsqlite needs a toolchain w/ C++, wchar, threads, dynamic library +# + +# +# leveldb needs a toolchain w/ C++, threads, gcc >= 4.8 +# +# BR2_PACKAGE_LIBDBI is not set +# BR2_PACKAGE_LIBDBI_DRIVERS is not set +# BR2_PACKAGE_LIBGIT2 is not set +# BR2_PACKAGE_LIBMDBX is not set + +# +# libodb needs a toolchain w/ C++, threads +# + +# +# mysql needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_POSTGRESQL is not set +# BR2_PACKAGE_REDIS is not set +# BR2_PACKAGE_SQLCIPHER is not set +# BR2_PACKAGE_SQLITE is not set +# BR2_PACKAGE_UNIXODBC is not set + +# +# Filesystem +# +# BR2_PACKAGE_GAMIN is not set +# BR2_PACKAGE_LIBCONFIG is not set +# BR2_PACKAGE_LIBCONFUSE is not set +# BR2_PACKAGE_LIBFUSE is not set +# BR2_PACKAGE_LIBFUSE3 is not set +# BR2_PACKAGE_LIBLOCKFILE is not set +# BR2_PACKAGE_LIBNFS is not set +# BR2_PACKAGE_LIBSYSFS is not set +# BR2_PACKAGE_LOCKDEV is not set + +# +# physfs needs a toolchain w/ C++, threads +# + +# +# Graphics +# + +# +# assimp needs a toolchain w/ C++, wchar, gcc >= 7 +# +# BR2_PACKAGE_AT_SPI2_CORE is not set + +# +# atkmm needs a toolchain w/ C++, wchar, threads, gcc >= 7 +# + +# +# atkmm (2.28.x) needs a toolchain w/ C++, wchar, threads, gcc >= 4.9 +# + +# +# bullet needs a toolchain w/ C++, dynamic library, threads, wchar +# +# BR2_PACKAGE_CAIRO is not set + +# +# cairomm needs a toolchain w/ C++, wchar, threads, gcc >= 7 +# + +# +# cairomm (1.14.x) needs a toolchain w/ C++, wchar, threads, gcc >= 4.9 +# + +# +# chipmunk needs an OpenGL backend +# + +# +# exempi needs a toolchain w/ C++, dynamic library, threads, wchar +# + +# +# exiv2 needs a uClibc or glibc toolchain w/ C++, wchar, dynamic library, threads +# +# BR2_PACKAGE_FONTCONFIG is not set +# BR2_PACKAGE_FREETYPE is not set +# BR2_PACKAGE_GD is not set +# BR2_PACKAGE_GDK_PIXBUF is not set +# BR2_PACKAGE_GIFLIB is not set + +# +# granite needs libgtk3 and a toolchain w/ wchar, threads, gcc >= 4.9 +# + +# +# graphite2 needs a toolchain w/ C++ +# + +# +# gtkmm3 needs libgtk3 and a toolchain w/ C++, wchar, threads, gcc >= 4.9 +# + +# +# harfbuzz needs a toolchain w/ C++, gcc >= 4.9 +# +# BR2_PACKAGE_IJS is not set +# BR2_PACKAGE_IMLIB2 is not set + +# +# intel-gmmlib needs a toolchain w/ dynamic library, C++, threads +# + +# +# irrlicht needs a toolchain w/ C++ +# +# BR2_PACKAGE_JASPER is not set +# BR2_PACKAGE_JBIG2DEC is not set +# BR2_PACKAGE_JPEG is not set + +# +# kms++ needs a toolchain w/ threads, C++, gcc >= 4.8, headers >= 4.11, wchar +# +# BR2_PACKAGE_LCMS2 is not set + +# +# lensfun needs a toolchain w/ C++, threads, wchar +# +# BR2_PACKAGE_LEPTONICA is not set +# BR2_PACKAGE_LIBART is not set +# BR2_PACKAGE_LIBDMTX is not set +# BR2_PACKAGE_LIBDRM is not set + +# +# libepoxy needs an OpenGL and/or OpenGL EGL backend +# +# BR2_PACKAGE_LIBEXIF is not set + +# +# libfm needs X.org and a toolchain w/ wchar, threads, C++, gcc >= 4.9 +# +# BR2_PACKAGE_LIBFM_EXTRA is not set + +# +# libfreeglut depends on X.org and needs an OpenGL backend +# + +# +# libfreeimage needs a toolchain w/ C++, dynamic library, wchar +# + +# +# libgeotiff needs a toolchain w/ C++, gcc >= 4.7, threads, wchar +# + +# +# libglew depends on X.org and needs an OpenGL backend +# + +# +# libglfw depends on X.org or Wayland and an OpenGL or GLES backend +# + +# +# libglu needs an OpenGL backend +# +# BR2_PACKAGE_LIBGTA is not set + +# +# libgtk3 needs a toolchain w/ wchar, threads, C++, gcc >= 4.9 +# + +# +# libgtk3 needs an OpenGL or an OpenGL-EGL/wayland backend +# + +# +# libjxl needs a toolchain with C++, threads, gcc >= 7, dynamic library +# +# BR2_PACKAGE_LIBMEDIAART is not set +# BR2_PACKAGE_LIBMNG is not set +# BR2_PACKAGE_LIBPNG is not set +# BR2_PACKAGE_LIBQRENCODE is not set + +# +# libraw needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBSVG is not set +# BR2_PACKAGE_LIBSVG_CAIRO is not set +# BR2_PACKAGE_LIBSVGTINY is not set +# BR2_PACKAGE_LIBVA is not set + +# +# libvips needs a toolchain w/ wchar, threads, C++ +# + +# +# libwpe needs a toolchain w/ C++, dynamic library and an OpenEGL-capable backend +# +# BR2_PACKAGE_MENU_CACHE is not set + +# +# opencv3 needs a toolchain w/ C++, NPTL, wchar, dynamic library +# + +# +# opencv4 needs a toolchain w/ C++, NPTL, wchar, dynamic library, gcc >= 4.8 +# +# BR2_PACKAGE_OPENJPEG is not set + +# +# pango needs a toolchain w/ wchar, threads, C++, gcc >= 4.9 +# + +# +# pangomm needs a toolchain w/ C++, wchar, threads, gcc >= 7 +# + +# +# pangomm (2.46.x) needs a toolchain w/ C++, wchar, threads, gcc >= 4.9 +# +# BR2_PACKAGE_PIXMAN is not set + +# +# poppler needs a toolchain w/ wchar, C++, threads, dynamic library, gcc >= 7 +# +# BR2_PACKAGE_STB is not set +# BR2_PACKAGE_TIFF is not set +# BR2_PACKAGE_WAYLAND is not set +BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS=y + +# +# webkitgtk needs libgtk3 and a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 8, host gcc >= 4.9 +# +# BR2_PACKAGE_WEBP is not set + +# +# wlroots needs udev, EGL w/ Wayland backend and OpenGL ES support +# + +# +# woff2 needs a toolchain w/ C++ +# + +# +# wpebackend-fdo needs a toolchain w/ C++, wchar, threads, dynamic library and an OpenEGL-capable Wayland backend +# +BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS=y + +# +# wpewebkit needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 7, host gcc >= 4.9 +# + +# +# wpewebkit needs an OpenGL ES w/ EGL-capable Wayland backend +# + +# +# zbar needs a toolchain w/ threads, C++ and headers >= 3.0 +# + +# +# zxing-cpp needs a toolchain w/ C++, wchar, dynamic library +# + +# +# Hardware handling +# +# BR2_PACKAGE_ACSCCID is not set +# BR2_PACKAGE_C_PERIPHERY is not set +# BR2_PACKAGE_CCID is not set +# BR2_PACKAGE_DTC is not set +# BR2_PACKAGE_HACKRF is not set + +# +# hidapi needs udev /dev management and a toolchain w/ NPTL, threads, gcc >= 4.9 +# +# BR2_PACKAGE_JITTERENTROPY_LIBRARY is not set + +# +# lcdapi needs a toolchain w/ C++, threads +# + +# +# let-me-create needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_LIBAIO is not set + +# +# libatasmart requires udev to be enabled +# + +# +# libblockdev needs udev /dev management and a toolchain w/ wchar, threads, dynamic library, locale +# + +# +# libcec needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 4.7 +# +# BR2_PACKAGE_LIBFREEFARE is not set +# BR2_PACKAGE_LIBFTDI is not set +# BR2_PACKAGE_LIBFTDI1 is not set +# BR2_PACKAGE_LIBGPHOTO2 is not set +# BR2_PACKAGE_LIBGPIOD is not set + +# +# libgudev needs udev /dev handling and a toolchain w/ wchar, threads +# +# BR2_PACKAGE_LIBHID is not set +# BR2_PACKAGE_LIBIIO is not set + +# +# libinput needs udev /dev management +# +# BR2_PACKAGE_LIBIQRF is not set +# BR2_PACKAGE_LIBLLCP is not set +# BR2_PACKAGE_LIBMBIM is not set +# BR2_PACKAGE_LIBNFC is not set +# BR2_PACKAGE_LIBPCIACCESS is not set +# BR2_PACKAGE_LIBPHIDGET is not set +# BR2_PACKAGE_LIBPRI is not set +# BR2_PACKAGE_LIBQMI is not set +# BR2_PACKAGE_LIBQRTR_GLIB is not set +# BR2_PACKAGE_LIBRAW1394 is not set +# BR2_PACKAGE_LIBRTLSDR is not set + +# +# libserial needs a toolchain w/ C++, gcc >= 5, threads, wchar +# +# BR2_PACKAGE_LIBSERIALPORT is not set +# BR2_PACKAGE_LIBSIGROK is not set +# BR2_PACKAGE_LIBSIGROKDECODE is not set +# BR2_PACKAGE_LIBSOC is not set +# BR2_PACKAGE_LIBSS7 is not set +# BR2_PACKAGE_LIBUSB is not set +# BR2_PACKAGE_LIBUSBGX is not set + +# +# libv4l needs a toolchain w/ threads, C++ and headers >= 3.0 +# +# BR2_PACKAGE_LIBXKBCOMMON is not set +# BR2_PACKAGE_MTDEV is not set +# BR2_PACKAGE_NEARDAL is not set +# BR2_PACKAGE_OPENSC is not set +# BR2_PACKAGE_OWFS is not set +# BR2_PACKAGE_PCSC_LITE is not set +# BR2_PACKAGE_TSLIB is not set + +# +# uhd needs a toolchain w/ C++, NPTL, wchar, dynamic library, gcc >= 5 +# + +# +# urg needs a toolchain w/ C++ +# + +# +# Javascript +# +# BR2_PACKAGE_ANGULARJS is not set +# BR2_PACKAGE_BOOTSTRAP is not set +# BR2_PACKAGE_CHARTJS is not set +# BR2_PACKAGE_DATATABLES is not set +# BR2_PACKAGE_DUKTAPE is not set +# BR2_PACKAGE_EXPLORERCANVAS is not set +# BR2_PACKAGE_FLOT is not set +# BR2_PACKAGE_FORGE is not set +# BR2_PACKAGE_JQUERY is not set +# BR2_PACKAGE_JSMIN is not set +# BR2_PACKAGE_JSON_JAVASCRIPT is not set +# BR2_PACKAGE_JSZIP is not set +# BR2_PACKAGE_OPENLAYERS is not set +# BR2_PACKAGE_POPPERJS is not set +# BR2_PACKAGE_VIS_NETWORK is not set +# BR2_PACKAGE_VUEJS is not set + +# +# JSON/XML +# + +# +# benejson needs a toolchain w/ C++ +# +# BR2_PACKAGE_CJSON is not set +# BR2_PACKAGE_EXPAT is not set +# BR2_PACKAGE_JANSSON is not set +# BR2_PACKAGE_JOSE is not set +# BR2_PACKAGE_JSMN is not set +# BR2_PACKAGE_JSON_C is not set + +# +# json-for-modern-cpp needs a toolchain w/ C++, gcc >= 4.9 +# +# BR2_PACKAGE_JSON_GLIB is not set + +# +# jsoncpp needs a toolchain w/ C++, gcc >= 4.7 +# +# BR2_PACKAGE_LIBBSON is not set +# BR2_PACKAGE_LIBFASTJSON is not set + +# +# libjson needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBROXML is not set +# BR2_PACKAGE_LIBUCL is not set +# BR2_PACKAGE_LIBXML2 is not set + +# +# libxml++ needs a toolchain w/ C++, wchar, threads, gcc >= 7 +# +# BR2_PACKAGE_LIBXMLRPC is not set +# BR2_PACKAGE_LIBXSLT is not set +# BR2_PACKAGE_LIBYAML is not set +# BR2_PACKAGE_MXML is not set + +# +# pugixml needs a toolchain w/ C++ +# + +# +# rapidjson needs a toolchain w/ C++ +# +# BR2_PACKAGE_RAPIDXML is not set +# BR2_PACKAGE_RAPTOR is not set +# BR2_PACKAGE_SERD is not set +# BR2_PACKAGE_SORD is not set + +# +# tinyxml needs a toolchain w/ C++ +# + +# +# tinyxml2 needs a toolchain w/ C++ +# + +# +# valijson needs a toolchain w/ C++ +# + +# +# xerces-c++ needs a toolchain w/ C++, dynamic library, wchar +# + +# +# xml-security-c needs a toolchain w/ C++, wchar, dynamic library, threads, gcc >= 4.7 +# +# BR2_PACKAGE_YAJL is not set + +# +# yaml-cpp needs a toolchain w/ C++, gcc >= 4.7 +# + +# +# Logging +# + +# +# glog needs a toolchain w/ C++ +# + +# +# hawktracer needs a toolchain w/ C++, gcc >= 4.8 +# +# BR2_PACKAGE_LIBLOG4C_LOCALTIME is not set +# BR2_PACKAGE_LIBLOGGING is not set + +# +# log4cplus needs a toolchain w/ C++, wchar, threads, gcc >= 4.8 +# + +# +# log4cpp needs a toolchain w/ C++, threads +# + +# +# log4cxx needs a toolchain w/ C++, threads, dynamic library +# + +# +# log4qt needs qt5 +# + +# +# opentracing-cpp needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8 +# + +# +# spdlog needs a toolchain w/ C++, threads, wchar +# + +# +# ulog needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_ZLOG is not set + +# +# Multimedia +# + +# +# bento4 support needs a toolchain with C++ +# +# BR2_PACKAGE_BITSTREAM is not set +# BR2_PACKAGE_DAV1D is not set + +# +# kvazaar needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBAACS is not set + +# +# libass needs a toolchain w/ C++, gcc >= 4.9 +# +# BR2_PACKAGE_LIBBDPLUS is not set +# BR2_PACKAGE_LIBBLURAY is not set +BR2_PACKAGE_LIBCAMERA_ARCH_SUPPORTS=y + +# +# libcamera needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 8 +# + +# +# libcamera-apps needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 8 +# +# BR2_PACKAGE_LIBDVBCSA is not set +# BR2_PACKAGE_LIBDVBPSI is not set + +# +# libdvbsi++ needs a toolchain w/ C++, wchar, threads +# +# BR2_PACKAGE_LIBDVDCSS is not set +# BR2_PACKAGE_LIBDVDNAV is not set +# BR2_PACKAGE_LIBDVDREAD is not set + +# +# libebml needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_LIBHDHOMERUN is not set + +# +# libmatroska needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_LIBMMS is not set +# BR2_PACKAGE_LIBMPEG2 is not set +# BR2_PACKAGE_LIBOGG is not set +# BR2_PACKAGE_LIBOPENAPTX is not set +# BR2_PACKAGE_LIBOPUSENC is not set +# BR2_PACKAGE_LIBTHEORA is not set +# BR2_PACKAGE_LIBUDFREAD is not set +# BR2_PACKAGE_LIBVPX is not set + +# +# libyuv needs a toolchain w/ C++, dynamic library +# + +# +# live555 needs a toolchain w/ C++ +# + +# +# mediastreamer needs a toolchain w/ threads, C++, dynamic library, gcc >= 5 +# +# BR2_PACKAGE_X264 is not set + +# +# x265 needs a toolchain w/ C++, threads, dynamic library +# + +# +# Networking +# + +# +# agent++ needs a toolchain w/ threads, C++, dynamic library +# + +# +# azmq needs a toolchain w/ C++11, wchar and threads +# + +# +# azure-iot-sdk-c needs a toolchain w/ C++, NPTL and wchar +# +# BR2_PACKAGE_BATMAN_ADV is not set + +# +# belle-sip needs a toolchain w/ threads, C++, dynamic library, wchar +# +# BR2_PACKAGE_C_ARES is not set +# BR2_PACKAGE_CGIC is not set +# BR2_PACKAGE_CNI_PLUGINS is not set + +# +# cppzmq needs a toolchain w/ C++, threads +# + +# +# curlpp needs a toolchain w/ C++, dynamic library +# + +# +# czmq needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_DAQ is not set +# BR2_PACKAGE_DAQ3 is not set +# BR2_PACKAGE_DAVICI is not set +# BR2_PACKAGE_DHT is not set +# BR2_PACKAGE_ENET is not set + +# +# filemq needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_FLICKCURL is not set +# BR2_PACKAGE_FREERADIUS_CLIENT is not set +# BR2_PACKAGE_GENSIO is not set +# BR2_PACKAGE_GEOIP is not set +# BR2_PACKAGE_GLIB_NETWORKING is not set + +# +# grpc needs a toolchain w/ C++, threads, dynamic library, gcc >= 5 +# +# BR2_PACKAGE_GSSDP is not set +# BR2_PACKAGE_GUPNP is not set +# BR2_PACKAGE_GUPNP_AV is not set +# BR2_PACKAGE_GUPNP_DLNA is not set + +# +# ibrcommon needs a toolchain w/ C++, threads +# + +# +# ibrdtn needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBCGI is not set + +# +# libcgicc needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBCOAP is not set + +# +# libcpprestsdk needs a toolchain w/ NPTL, C++, wchar, locale +# +# BR2_PACKAGE_LIBCURL is not set +# BR2_PACKAGE_LIBDNET is not set +# BR2_PACKAGE_LIBEXOSIP2 is not set +# BR2_PACKAGE_LIBEST is not set +# BR2_PACKAGE_LIBFCGI is not set +# BR2_PACKAGE_LIBGSASL is not set +# BR2_PACKAGE_LIBHTP is not set +# BR2_PACKAGE_LIBHTTPPARSER is not set + +# +# libhttpserver needs a toolchain w/ C++, threads, gcc >= 5 +# +# BR2_PACKAGE_LIBIDN is not set +# BR2_PACKAGE_LIBIDN2 is not set +# BR2_PACKAGE_LIBISCSI is not set +# BR2_PACKAGE_LIBKRB5 is not set +# BR2_PACKAGE_LIBLDNS is not set +# BR2_PACKAGE_LIBMAXMINDDB is not set +# BR2_PACKAGE_LIBMBUS is not set + +# +# libmemcached needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBMICROHTTPD is not set +# BR2_PACKAGE_LIBMINIUPNPC is not set +# BR2_PACKAGE_LIBMNL is not set +# BR2_PACKAGE_LIBMODBUS is not set + +# +# libmodsecurity needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_LIBNATPMP is not set +# BR2_PACKAGE_LIBNDP is not set +# BR2_PACKAGE_LIBNET is not set +# BR2_PACKAGE_LIBNETCONF2 is not set +# BR2_PACKAGE_LIBNETFILTER_ACCT is not set +# BR2_PACKAGE_LIBNETFILTER_CONNTRACK is not set +# BR2_PACKAGE_LIBNETFILTER_CTHELPER is not set +# BR2_PACKAGE_LIBNETFILTER_CTTIMEOUT is not set +# BR2_PACKAGE_LIBNETFILTER_LOG is not set +# BR2_PACKAGE_LIBNETFILTER_QUEUE is not set +# BR2_PACKAGE_LIBNFNETLINK is not set +# BR2_PACKAGE_LIBNFTNL is not set +# BR2_PACKAGE_LIBNICE is not set +# BR2_PACKAGE_LIBNIDS is not set +# BR2_PACKAGE_LIBNL is not set + +# +# libnpupnp needs a toolchain w/ C++, threads, gcc >= 4.9 +# +# BR2_PACKAGE_LIBOAUTH is not set +# BR2_PACKAGE_LIBOPING is not set +# BR2_PACKAGE_LIBOSIP2 is not set +# BR2_PACKAGE_LIBPAGEKITE is not set +# BR2_PACKAGE_LIBPCAP is not set + +# +# libpjsip needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBPSL is not set +# BR2_PACKAGE_LIBRELP is not set +# BR2_PACKAGE_LIBRSYNC is not set +# BR2_PACKAGE_LIBSHAIRPLAY is not set +# BR2_PACKAGE_LIBSHOUT is not set +# BR2_PACKAGE_LIBSOCKETCAN is not set +# BR2_PACKAGE_LIBSOUP is not set +# BR2_PACKAGE_LIBSRTP is not set +# BR2_PACKAGE_LIBSTROPHE is not set +# BR2_PACKAGE_LIBTEAM is not set +# BR2_PACKAGE_LIBTELNET is not set +# BR2_PACKAGE_LIBTIRPC is not set + +# +# libtorrent needs a toolchain w/ C++, threads +# + +# +# libtorrent-rasterbar needs a toolchain w/ C++, threads, wchar, gcc >= 4.9 +# +# BR2_PACKAGE_LIBUEV is not set +# BR2_PACKAGE_LIBUHTTPD is not set + +# +# libuhttpd needs a toolchain w/ gcc >= 4.9 +# +# BR2_PACKAGE_LIBUPNP is not set + +# +# libupnpp needs a toolchain w/ C++, threads, gcc >= 4.9 +# +# BR2_PACKAGE_LIBURIPARSER is not set + +# +# libutp support needs a toolchain with C++ +# +# BR2_PACKAGE_LIBUWSC is not set +# BR2_PACKAGE_LIBVNCSERVER is not set +# BR2_PACKAGE_LIBWEBSOCK is not set +# BR2_PACKAGE_LIBWEBSOCKETS is not set +# BR2_PACKAGE_LIBYANG is not set +# BR2_PACKAGE_LKSCTP_TOOLS is not set +# BR2_PACKAGE_MBUFFER is not set +# BR2_PACKAGE_MONGOOSE is not set +# BR2_PACKAGE_NANOMSG is not set +# BR2_PACKAGE_NEON is not set + +# +# netopeer2 needs a toolchain w/ gcc >= 4.8, C++, threads, dynamic library +# +# BR2_PACKAGE_NGHTTP2 is not set + +# +# norm needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_NSS_MYHOSTNAME is not set +# BR2_PACKAGE_NSS_PAM_LDAPD is not set + +# +# omniORB needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_OPEN_ISNS is not set +# BR2_PACKAGE_OPEN62541 is not set +# BR2_PACKAGE_OPENLDAP is not set + +# +# openmpi needs a toolchain w/ dynamic library, NPTL, wchar, C++ +# +# BR2_PACKAGE_OPENPGM is not set + +# +# openzwave needs a toolchain w/ C++, dynamic library, NPTL, wchar +# + +# +# ortp needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_PAHO_MQTT_C is not set + +# +# paho-mqtt-cpp needs a toolchain w/ threads, C++ +# + +# +# pistache needs a toolchain w/ C++, gcc >= 7, threads, wchar, not binutils bug 27597 +# +# BR2_PACKAGE_QDECODER is not set + +# +# qpid-proton needs a toolchain w/ C++, dynamic library, threads +# +# BR2_PACKAGE_RABBITMQ_C is not set + +# +# resiprocate needs a toolchain w/ C++, threads, wchar +# + +# +# restclient-cpp needs a toolchain w/ C++, gcc >= 4.8 +# +# BR2_PACKAGE_RTMPDUMP is not set +# BR2_PACKAGE_SIPROXD is not set +# BR2_PACKAGE_SLIRP is not set +# BR2_PACKAGE_SLIRP4NETNS is not set + +# +# snmp++ needs a toolchain w/ threads, C++, dynamic library +# +# BR2_PACKAGE_SOFIA_SIP is not set +# BR2_PACKAGE_SSCEP is not set + +# +# sysrepo needs a toolchain w/ C++, NPTL, dynamic library, gcc >= 4.8 +# + +# +# thrift needs a toolchain w/ C++, wchar, threads +# +# BR2_PACKAGE_USBREDIR is not set + +# +# wampcc needs a toolchain w/ C++, NPTL, dynamic library +# + +# +# websocketpp needs a toolchain w/ C++ and gcc >= 4.8 +# + +# +# zeromq needs a toolchain w/ C++, threads +# + +# +# zmqpp needs a toolchain w/ C++, threads, gcc >= 4.7 +# + +# +# zyre needs a toolchain w/ C++, threads +# + +# +# Other +# + +# +# ACE needs a glibc toolchain, dynamic library, C++, gcc >= 4.8 +# +# BR2_PACKAGE_APR is not set +# BR2_PACKAGE_APR_UTIL is not set + +# +# armadillo needs a toolchain w/ fortran, C++ +# + +# +# atf needs a toolchain w/ C++ +# +# BR2_PACKAGE_AVRO_C is not set + +# +# bctoolbox needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_BDWGC is not set + +# +# belr needs a toolchain w/ threads, C++ +# + +# +# boost needs a toolchain w/ C++, threads, wchar +# + +# +# c-capnproto needs host and target gcc >= 5 w/ C++14, threads, atomic, ucontext and not gcc bug 64735 +# + +# +# capnproto needs host and target gcc >= 5 w/ C++14, threads, atomic, ucontext and not gcc bug 64735 +# + +# +# catch2 needs a toolchain w/ C++, wchar, threads, gcc >= 5 +# + +# +# cctz needs a toolchain w/ C++, threads, gcc >= 4.8 +# + +# +# cereal needs a toolchain w/ C++, gcc >= 4.7, threads, wchar +# + +# +# clang needs a toolchain w/ wchar, threads, C++, gcc >= 5, dynamic library, host gcc >= 5 +# +# BR2_PACKAGE_CMOCKA is not set + +# +# cppcms needs a toolchain w/ C++, NPTL, wchar, dynamic library +# +# BR2_PACKAGE_CRACKLIB is not set + +# +# dawgdic needs a toolchain w/ C++, gcc >= 4.6 +# +# BR2_PACKAGE_DING_LIBS is not set +# BR2_PACKAGE_DOTCONF is not set + +# +# double-conversion needs a toolchain w/ C++ +# + +# +# eigen needs a toolchain w/ C++ +# +# BR2_PACKAGE_ELFUTILS is not set +# BR2_PACKAGE_ELL is not set +# BR2_PACKAGE_FFTW is not set + +# +# flann needs a toolchain w/ C++, dynamic library, gcc >= 4.7 +# + +# +# flatbuffers needs a toolchain w/ C++, gcc >= 4.7 +# +# BR2_PACKAGE_FLATCC is not set +# BR2_PACKAGE_FXDIV is not set +# BR2_PACKAGE_GCONF is not set + +# +# gdal needs a toolchain w/ C++, dynamic library, gcc >= 4.7, not binutils bug 27597, threads, wchar +# + +# +# gflags needs a toolchain w/ C++ +# + +# +# gli needs a toolchain w/ C++ +# + +# +# glibmm needs a toolchain w/ C++, wchar, threads, gcc >= 7 +# + +# +# glibmm (2.66.x) needs a toolchain w/ C++, wchar, threads, gcc >= 4.9 +# + +# +# glm needs a toolchain w/ C++ +# +# BR2_PACKAGE_GMP is not set +BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS=y + +# +# gobject-introspection needs python3 +# +# BR2_PACKAGE_GSL is not set + +# +# gtest needs a toolchain w/ C++, wchar, threads, gcc >= 5 +# +# BR2_PACKAGE_GUMBO_PARSER is not set + +# +# highway needs a toolchain w/ C++, gcc >= 7 +# +BR2_PACKAGE_JEMALLOC_ARCH_SUPPORTS=y +# BR2_PACKAGE_JEMALLOC is not set +BR2_PACKAGE_LAPACK_ARCH_SUPPORTS=y + +# +# lapack/blas needs a toolchain w/ fortran +# +BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS=y + +# +# libabseil-cpp needs a toolchain w/ gcc >= 4.9, C++, threads, dynamic library +# +# BR2_PACKAGE_LIBARGTABLE2 is not set +BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBATOMIC_OPS is not set +# BR2_PACKAGE_LIBAVL is not set +# BR2_PACKAGE_LIBB64 is not set +# BR2_PACKAGE_LIBBACKTRACE is not set +BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBBSD is not set +# BR2_PACKAGE_LIBBYTESIZE is not set +# BR2_PACKAGE_LIBCAP is not set +# BR2_PACKAGE_LIBCAP_NG is not set + +# +# libcgroup needs a glibc toolchain w/ C++ +# +# BR2_PACKAGE_LIBCLC is not set +# BR2_PACKAGE_LIBCORRECT is not set + +# +# libcrossguid needs a toolchain w/ C++, gcc >= 4.7 +# +# BR2_PACKAGE_LIBCSV is not set +# BR2_PACKAGE_LIBDAEMON is not set +# BR2_PACKAGE_LIBDILL is not set +# BR2_PACKAGE_LIBEE is not set +# BR2_PACKAGE_LIBEV is not set +# BR2_PACKAGE_LIBEVDEV is not set +# BR2_PACKAGE_LIBEVENT is not set + +# +# libexecinfo needs a musl or uclibc toolchain w/ dynamic library +# +# BR2_PACKAGE_LIBFFI is not set + +# +# libfutils needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBGEE is not set + +# +# libgeos needs a toolchain w/ C++, wchar, threads not binutils bug 27597 +# +# BR2_PACKAGE_LIBGLIB2 is not set +# BR2_PACKAGE_LIBGLOB is not set + +# +# libical needs a toolchain w/ C++, dynamic library, wchar +# +# BR2_PACKAGE_LIBITE is not set + +# +# libks needs a toolchain w/ C++, NPTL, dynamic library +# + +# +# liblinear needs a toolchain w/ C++ +# + +# +# libloki needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBNPTH is not set +BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT=y +# BR2_PACKAGE_LIBNSPR is not set + +# +# libosmium needs a toolchain w/ C++, wchar, threads, gcc >= 4.7 +# + +# +# libpeas needs python3 +# +# BR2_PACKAGE_LIBPFM4 is not set + +# +# libplist needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBPTHREAD_STUBS is not set +# BR2_PACKAGE_LIBPTHSEM is not set +# BR2_PACKAGE_LIBPWQUALITY is not set +# BR2_PACKAGE_LIBQB is not set +BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBSECCOMP is not set + +# +# libshdata needs a toolchain w/ C++, threads +# + +# +# libsigc++ needs a toolchain w/ C++, gcc >= 7 +# + +# +# libsigc++ (2.x.x) needs a toolchain w/ C++, gcc >= 4.9 +# +BR2_PACKAGE_LIBSIGSEGV_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBSIGSEGV is not set +# BR2_PACKAGE_LIBSOLV is not set + +# +# libspatialindex needs a toolchain w/ C++, gcc >= 4.7 +# +# BR2_PACKAGE_LIBTALLOC is not set +# BR2_PACKAGE_LIBTASN1 is not set +# BR2_PACKAGE_LIBTOMMATH is not set +# BR2_PACKAGE_LIBTPL is not set +# BR2_PACKAGE_LIBUBOX is not set +# BR2_PACKAGE_LIBUCI is not set +BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBURCU is not set +# BR2_PACKAGE_LIBURING is not set +# BR2_PACKAGE_LIBUV is not set +# BR2_PACKAGE_LIGHTNING is not set +# BR2_PACKAGE_LINUX_PAM is not set +# BR2_PACKAGE_LIQUID_DSP is not set +BR2_PACKAGE_LLVM_ARCH_SUPPORTS=y +BR2_PACKAGE_LLVM_TARGET_ARCH="riscv64" + +# +# llvm needs a toolchain w/ wchar, threads, C++, gcc >= 5, dynamic library, host gcc >= 5 +# +# BR2_PACKAGE_LTTNG_LIBUST is not set +# BR2_PACKAGE_MATIO is not set +# BR2_PACKAGE_MPC is not set +# BR2_PACKAGE_MPDECIMAL is not set +# BR2_PACKAGE_MPFR is not set +# BR2_PACKAGE_MPIR is not set + +# +# msgpack needs a toolchain w/ C++ +# +# BR2_PACKAGE_NEON_2_SSE is not set +# BR2_PACKAGE_ORC is not set +# BR2_PACKAGE_P11_KIT is not set +BR2_PACKAGE_POCO_ARCH_SUPPORTS=y + +# +# poco needs a toolchain w/ wchar, NPTL, C++, dynamic library, gcc >= 5 w/ C++14 +# +BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS=y +BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS=y + +# +# protobuf needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8 +# + +# +# protobuf-c needs a toolchain w/ C++, threads +# + +# +# protozero needs a toolchain w/ C++, gcc >= 4.7 +# + +# +# qhull needs a toolchain w/ C++, gcc >= 4.4 +# +# BR2_PACKAGE_QLIBC is not set +# BR2_PACKAGE_REPROC is not set + +# +# riemann-c-client needs a toolchain w/ C++, threads +# + +# +# shapelib needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_SKALIBS is not set +# BR2_PACKAGE_SPHINXBASE is not set + +# +# tbb needs a glibc or musl toolchain w/ dynamic library, threads, C++ +# +# BR2_PACKAGE_TINYCBOR is not set + +# +# tl-expected needs a toolchain w/ C++, gcc >= 4.8 +# + +# +# uvw needs a toolchain w/ NPTL, dynamic library, C++, gcc >= 7 +# + +# +# volk needs a toolchain w/ C++, NPTL, wchar, dynamic library +# + +# +# xapian needs a toolchain w/ C++ +# + +# +# Security +# +# BR2_PACKAGE_LIBAPPARMOR is not set +# BR2_PACKAGE_LIBSELINUX is not set +# BR2_PACKAGE_LIBSEPOL is not set +# BR2_PACKAGE_SAFECLIB is not set + +# +# softhsm2 needs a toolchain w/ C++, threads, gcc >= 4.8 and dynamic library support +# + +# +# Text and terminal handling +# +# BR2_PACKAGE_AUGEAS is not set + +# +# cli11 needs a toolchain w/ C++, gcc >= 4.8 +# + +# +# docopt-cpp needs a toolchain w/ C++, gcc >= 4.7 +# + +# +# enchant needs a toolchain w/ C++, threads, wchar +# + +# +# fmt needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_FSTRCMP is not set + +# +# icu needs a toolchain w/ C++, wchar, threads, gcc >= 4.9, host gcc >= 4.9 +# +# BR2_PACKAGE_INIH is not set +# BR2_PACKAGE_LIBCLI is not set +# BR2_PACKAGE_LIBEDIT is not set +# BR2_PACKAGE_LIBENCA is not set +# BR2_PACKAGE_LIBESTR is not set +# BR2_PACKAGE_LIBFRIBIDI is not set +# BR2_PACKAGE_LIBUNIBREAK is not set +# BR2_PACKAGE_LIBUNISTRING is not set +# BR2_PACKAGE_LINENOISE is not set +# BR2_PACKAGE_NCURSES is not set +# BR2_PACKAGE_NEWT is not set +# BR2_PACKAGE_ONIGURUMA is not set +# BR2_PACKAGE_PCRE is not set +# BR2_PACKAGE_PCRE2 is not set +# BR2_PACKAGE_POPT is not set + +# +# re2 needs a toolchain w/ C++, threads, gcc >= 4.8 +# +# BR2_PACKAGE_READLINE is not set +# BR2_PACKAGE_SLANG is not set + +# +# tclap needs a toolchain w/ C++ +# + +# +# termcolor needs a toolchain w/ C++, gcc >= 4.8 +# +# BR2_PACKAGE_UTF8PROC is not set + +# +# Mail +# +# BR2_PACKAGE_DOVECOT is not set +# BR2_PACKAGE_EXIM is not set +# BR2_PACKAGE_FETCHMAIL is not set +# BR2_PACKAGE_HEIRLOOM_MAILX is not set +# BR2_PACKAGE_LIBESMTP is not set +# BR2_PACKAGE_MSMTP is not set +# BR2_PACKAGE_MUTT is not set + +# +# Miscellaneous +# +# BR2_PACKAGE_AESPIPE is not set +# BR2_PACKAGE_BC is not set +BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS=y + +# +# bitcoin needs a toolchain w/ C++, threads, wchar +# +# BR2_PACKAGE_COLLECTD is not set +# BR2_PACKAGE_COLLECTL is not set + +# +# domoticz needs lua 5.3 and a toolchain w/ C++, gcc >= 6, NPTL, wchar, dynamic library +# +# BR2_PACKAGE_EMPTY is not set +# BR2_PACKAGE_GITLAB_RUNNER is not set + +# +# gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library, gcc >= 8 +# +# BR2_PACKAGE_GOOGLEFONTDIRECTORY is not set + +# +# gqrx needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 8 +# + +# +# gqrx needs qt5 +# +# BR2_PACKAGE_GSETTINGS_DESKTOP_SCHEMAS is not set +# BR2_PACKAGE_HAVEGED is not set +# BR2_PACKAGE_LINUX_SYSCALL_SUPPORT is not set +# BR2_PACKAGE_MOBILE_BROADBAND_PROVIDER_INFO is not set +# BR2_PACKAGE_NETDATA is not set + +# +# proj needs a toolchain w/ C++, gcc >= 4.7, threads, wchar +# +BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET=y +# BR2_PACKAGE_QEMU is not set + +# +# qpdf needs a toolchain w/ C++, gcc >= 5 +# +# BR2_PACKAGE_RTL_433 is not set +# BR2_PACKAGE_SHARED_MIME_INFO is not set + +# +# sunwait needs a toolchain w/ C++ +# + +# +# taskd needs a toolchain w/ C++, wchar, dynamic library +# +# BR2_PACKAGE_XUTIL_UTIL_MACROS is not set +BR2_PACKAGE_Z3_ARCH_SUPPORTS=y + +# +# Networking applications +# + +# +# aircrack-ng needs a toolchain w/ dynamic library, threads, C++ +# +# BR2_PACKAGE_ALFRED is not set +# BR2_PACKAGE_AOETOOLS is not set +# BR2_PACKAGE_APACHE is not set +# BR2_PACKAGE_ARGUS is not set +# BR2_PACKAGE_ARP_SCAN is not set +# BR2_PACKAGE_ARPTABLES is not set + +# +# asterisk needs a glibc or uClibc toolchain w/ C++, dynamic library, threads, wchar +# +# BR2_PACKAGE_ATFTP is not set +# BR2_PACKAGE_AVAHI is not set +# BR2_PACKAGE_AXEL is not set +# BR2_PACKAGE_BABELD is not set +# BR2_PACKAGE_BANDWIDTHD is not set +# BR2_PACKAGE_BATCTL is not set + +# +# bcusdk needs a toolchain w/ C++ +# +# BR2_PACKAGE_BIND is not set +# BR2_PACKAGE_BIRD is not set +# BR2_PACKAGE_BLUEZ5_UTILS is not set +# BR2_PACKAGE_BMON is not set +# BR2_PACKAGE_BMX7 is not set + +# +# boinc needs a toolchain w/ dynamic library, C++, threads, gcc >= 4.8 +# +# BR2_PACKAGE_BRCM_PATCHRAM_PLUS is not set +# BR2_PACKAGE_BRIDGE_UTILS is not set +# BR2_PACKAGE_BWM_NG is not set +# BR2_PACKAGE_C_ICAP is not set +# BR2_PACKAGE_CAN_UTILS is not set + +# +# cannelloni needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8 +# +# BR2_PACKAGE_CASYNC is not set +# BR2_PACKAGE_CFM is not set +# BR2_PACKAGE_CHRONY is not set +# BR2_PACKAGE_CIVETWEB is not set +# BR2_PACKAGE_CONNMAN is not set + +# +# connman-gtk needs libgtk3 and a glibc or uClibc toolchain w/ wchar, threads, resolver, dynamic library +# +# BR2_PACKAGE_CONNTRACK_TOOLS is not set +# BR2_PACKAGE_CORKSCREW is not set +# BR2_PACKAGE_CRDA is not set + +# +# ctorrent needs a toolchain w/ C++ +# + +# +# cups needs a toolchain w/ C++, threads +# + +# +# cups-filters needs a toolchain w/ wchar, C++, threads and dynamic library, gcc >= 5 +# +# BR2_PACKAGE_DANTE is not set +# BR2_PACKAGE_DARKHTTPD is not set +# BR2_PACKAGE_DEHYDRATED is not set +# BR2_PACKAGE_DHCPCD is not set +# BR2_PACKAGE_DHCPDUMP is not set +# BR2_PACKAGE_DNSMASQ is not set +# BR2_PACKAGE_DRBD_UTILS is not set +# BR2_PACKAGE_DROPBEAR is not set +# BR2_PACKAGE_EASYFRAMES is not set +# BR2_PACKAGE_EBTABLES is not set + +# +# ejabberd needs erlang, toolchain w/ C++ +# +# BR2_PACKAGE_ETHTOOL is not set +# BR2_PACKAGE_FAIFA is not set +# BR2_PACKAGE_FASTD is not set +# BR2_PACKAGE_FCGIWRAP is not set +# BR2_PACKAGE_FLANNEL is not set +# BR2_PACKAGE_FPING is not set +# BR2_PACKAGE_FREERADIUS_SERVER is not set + +# +# freeswitch needs a toolchain w/ C++, dynamic library, threads, wchar +# +# BR2_PACKAGE_FRR is not set + +# +# gerbera needs a toolchain w/ C++, dynamic library, threads, wchar, gcc >= 8 +# +# BR2_PACKAGE_GESFTPSERVER is not set + +# +# gloox needs a toolchain w/ C++ +# +# BR2_PACKAGE_GLORYTUN is not set + +# +# gupnp-tools needs libgtk3 +# + +# +# hans needs a toolchain w/ C++ +# +BR2_PACKAGE_HAPROXY_ARCH_SUPPORTS=y +# BR2_PACKAGE_HAPROXY is not set +# BR2_PACKAGE_HIAWATHA is not set +# BR2_PACKAGE_HOSTAPD is not set +# BR2_PACKAGE_HTPDATE is not set +# BR2_PACKAGE_HTTPING is not set + +# +# i2pd needs a toolchain w/ C++, NPTL, wchar +# + +# +# ibrdtn-tools needs a toolchain w/ C++, threads +# + +# +# ibrdtnd needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_IFMETRIC is not set +# BR2_PACKAGE_IFTOP is not set +BR2_PACKAGE_IFUPDOWN_SCRIPTS=y +# BR2_PACKAGE_IGD2_FOR_LINUX is not set +# BR2_PACKAGE_IGH_ETHERCAT is not set +# BR2_PACKAGE_IGMPPROXY is not set +# BR2_PACKAGE_INADYN is not set +# BR2_PACKAGE_IODINE is not set + +# +# iperf needs a toolchain w/ C++ +# +# BR2_PACKAGE_IPERF3 is not set +# BR2_PACKAGE_IPROUTE2 is not set +# BR2_PACKAGE_IPSET is not set +# BR2_PACKAGE_IPTABLES is not set +# BR2_PACKAGE_IPTRAF_NG is not set +# BR2_PACKAGE_IPUTILS is not set +# BR2_PACKAGE_IRSSI is not set +# BR2_PACKAGE_IW is not set +# BR2_PACKAGE_IWD is not set +# BR2_PACKAGE_JANUS_GATEWAY is not set +# BR2_PACKAGE_KEEPALIVED is not set + +# +# kismet needs a toolchain w/ threads, C++, gcc >= 5 +# +# BR2_PACKAGE_KNOCK is not set +# BR2_PACKAGE_KSMBD_TOOLS is not set +# BR2_PACKAGE_LEAFNODE2 is not set +# BR2_PACKAGE_LFT is not set + +# +# lftp requires a toolchain w/ C++, wchar +# +# BR2_PACKAGE_LIGHTTPD is not set + +# +# linknx needs a toolchain w/ C++ +# +# BR2_PACKAGE_LINKS is not set + +# +# linphone needs a toolchain w/ threads, C++, dynamic library, wchar, gcc >= 5 +# +# BR2_PACKAGE_LINUX_ZIGBEE is not set +# BR2_PACKAGE_LINUXPTP is not set +# BR2_PACKAGE_LLDPD is not set +# BR2_PACKAGE_LRZSZ is not set +# BR2_PACKAGE_LYNX is not set +# BR2_PACKAGE_MACCHANGER is not set +# BR2_PACKAGE_MEMCACHED is not set +# BR2_PACKAGE_MII_DIAG is not set +# BR2_PACKAGE_MINI_SNMPD is not set +# BR2_PACKAGE_MINIDLNA is not set +# BR2_PACKAGE_MINISSDPD is not set +# BR2_PACKAGE_MJPG_STREAMER is not set +# BR2_PACKAGE_MODEM_MANAGER is not set +BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS=y + +# +# mongrel2 needs a uClibc or glibc toolchain w/ C++, threads, dynamic library +# + +# +# mosh needs a toolchain w/ C++, threads, dynamic library, wchar, gcc >= 4.8 +# +# BR2_PACKAGE_MOSQUITTO is not set +# BR2_PACKAGE_MROUTED is not set +# BR2_PACKAGE_MRP is not set +# BR2_PACKAGE_MSTPD is not set +# BR2_PACKAGE_MTR is not set +# BR2_PACKAGE_NBD is not set +# BR2_PACKAGE_NCFTP is not set +# BR2_PACKAGE_NDISC6 is not set +# BR2_PACKAGE_NETATALK is not set +# BR2_PACKAGE_NETCALC is not set +# BR2_PACKAGE_NETPLUG is not set +# BR2_PACKAGE_NETSNMP is not set +# BR2_PACKAGE_NETSTAT_NAT is not set + +# +# NetworkManager needs udev /dev management and a glibc toolchain w/ headers >= 4.6, dynamic library, wchar, threads, gcc >= 4.9 +# +# BR2_PACKAGE_NFACCT is not set +# BR2_PACKAGE_NFTABLES is not set +# BR2_PACKAGE_NGINX is not set +# BR2_PACKAGE_NGIRCD is not set +# BR2_PACKAGE_NGREP is not set + +# +# nload needs a toolchain w/ C++ +# + +# +# nmap-nmap needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_NOIP is not set +# BR2_PACKAGE_NTP is not set +# BR2_PACKAGE_NTPSEC is not set +# BR2_PACKAGE_NUTTCP is not set +# BR2_PACKAGE_ODHCP6C is not set +# BR2_PACKAGE_ODHCPLOC is not set +# BR2_PACKAGE_OLSR is not set +# BR2_PACKAGE_OPEN_ISCSI is not set +# BR2_PACKAGE_OPEN_LLDP is not set +# BR2_PACKAGE_OPEN_PLC_UTILS is not set +# BR2_PACKAGE_OPENNTPD is not set +# BR2_PACKAGE_OPENOBEX is not set +# BR2_PACKAGE_OPENRESOLV is not set +# BR2_PACKAGE_OPENSSH is not set +# BR2_PACKAGE_OPENSWAN is not set +# BR2_PACKAGE_OPENVPN is not set +# BR2_PACKAGE_P910ND is not set +# BR2_PACKAGE_PARPROUTED is not set +# BR2_PACKAGE_PHIDGETWEBSERVICE is not set +# BR2_PACKAGE_PHYTOOL is not set +# BR2_PACKAGE_PIMD is not set +# BR2_PACKAGE_PIXIEWPS is not set +# BR2_PACKAGE_POUND is not set +# BR2_PACKAGE_PPPD is not set +# BR2_PACKAGE_PPTP_LINUX is not set +# BR2_PACKAGE_PRIVOXY is not set +# BR2_PACKAGE_PROFTPD is not set + +# +# prosody needs the lua interpreter, dynamic library +# +# BR2_PACKAGE_PROXYCHAINS_NG is not set +# BR2_PACKAGE_PTPD is not set +# BR2_PACKAGE_PTPD2 is not set +# BR2_PACKAGE_PURE_FTPD is not set +# BR2_PACKAGE_PUTTY is not set +# BR2_PACKAGE_QUAGGA is not set +# BR2_PACKAGE_RADVD is not set +# BR2_PACKAGE_REAVER is not set +# BR2_PACKAGE_REDIR is not set +# BR2_PACKAGE_RP_PPPOE is not set +# BR2_PACKAGE_RPCBIND is not set +# BR2_PACKAGE_RSH_REDONE is not set +# BR2_PACKAGE_RSYNC is not set + +# +# rtorrent needs a toolchain w/ C++, threads, wchar, gcc >= 4.9 +# +# BR2_PACKAGE_RTPTOOLS is not set + +# +# rygel needs python3 and a glibc toolchain w/ wchar, threads, gcc >= 4.9, host gcc >= 8 +# +# BR2_PACKAGE_S6_DNS is not set +# BR2_PACKAGE_S6_NETWORKING is not set +# BR2_PACKAGE_SAMBA4 is not set + +# +# sconeserver needs a toolchain with dynamic library, C++, NPTL +# +# BR2_PACKAGE_SER2NET is not set +# BR2_PACKAGE_SHADOWSOCKS_LIBEV is not set + +# +# shairport-sync needs a toolchain w/ C++, NPTL +# +# BR2_PACKAGE_SHELLINABOX is not set +# BR2_PACKAGE_SMCROUTE is not set +# BR2_PACKAGE_SNGREP is not set +# BR2_PACKAGE_SNORT is not set +# BR2_PACKAGE_SOCAT is not set +# BR2_PACKAGE_SOCKETCAND is not set +# BR2_PACKAGE_SOFTETHER is not set +# BR2_PACKAGE_SPAWN_FCGI is not set +# BR2_PACKAGE_SPICE_PROTOCOL is not set + +# +# squid needs a toolchain w/ C++, threads, gcc >= 4.8 not affected by bug 64735 +# +# BR2_PACKAGE_SSDP_RESPONDER is not set +# BR2_PACKAGE_SSHGUARD is not set +# BR2_PACKAGE_SSHPASS is not set +# BR2_PACKAGE_SSLH is not set +# BR2_PACKAGE_STRONGSWAN is not set +# BR2_PACKAGE_STUNNEL is not set +# BR2_PACKAGE_TCPDUMP is not set +# BR2_PACKAGE_TCPING is not set +# BR2_PACKAGE_TCPREPLAY is not set +# BR2_PACKAGE_THTTPD is not set +# BR2_PACKAGE_TINC is not set +# BR2_PACKAGE_TINYPROXY is not set +# BR2_PACKAGE_TINYSSH is not set +# BR2_PACKAGE_TOR is not set +# BR2_PACKAGE_TRACEROUTE is not set + +# +# transmission needs a toolchain w/ dynamic library, threads, C++, gcc >= 7 +# +# BR2_PACKAGE_TUNCTL is not set +# BR2_PACKAGE_TVHEADEND is not set +# BR2_PACKAGE_UACME is not set +# BR2_PACKAGE_UDPCAST is not set +# BR2_PACKAGE_UFTP is not set +# BR2_PACKAGE_UHTTPD is not set +# BR2_PACKAGE_ULOGD is not set +# BR2_PACKAGE_UNBOUND is not set +# BR2_PACKAGE_UQMI is not set +# BR2_PACKAGE_UREDIR is not set +# BR2_PACKAGE_USHARE is not set +# BR2_PACKAGE_USSP_PUSH is not set +# BR2_PACKAGE_VDE2 is not set + +# +# vdr needs a toolchain w/ C++, dynamic library, NPTL, wchar, headers >= 3.9 +# +# BR2_PACKAGE_VNSTAT is not set +# BR2_PACKAGE_VPNC is not set +# BR2_PACKAGE_VSFTPD is not set +# BR2_PACKAGE_VTUN is not set +# BR2_PACKAGE_WAVEMON is not set +# BR2_PACKAGE_WIREGUARD_TOOLS is not set +# BR2_PACKAGE_WIRELESS_REGDB is not set +# BR2_PACKAGE_WIRELESS_TOOLS is not set + +# +# wireshark needs a toolchain w/ wchar, threads, dynamic library, C++ +# +# BR2_PACKAGE_WPA_SUPPLICANT is not set +# BR2_PACKAGE_WPAN_TOOLS is not set +# BR2_PACKAGE_XINETD is not set +# BR2_PACKAGE_XL2TP is not set +# BR2_PACKAGE_XTABLES_ADDONS is not set +# BR2_PACKAGE_ZABBIX is not set + +# +# zeek needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 7, host gcc >= 7 +# + +# +# znc needs a toolchain w/ C++, dynamic library, gcc >= 4.8, threads +# + +# +# Package managers +# + +# +# ------------------------------------------------------- +# + +# +# Please note: +# + +# +# - Buildroot does *not* generate binary packages, +# + +# +# - Buildroot does *not* install any package database. +# + +# +# * +# + +# +# It is up to you to provide those by yourself if you +# + +# +# want to use any of those package managers. +# + +# +# * +# + +# +# See the manual: +# + +# +# http://buildroot.org/manual.html#faq-no-binary-packages +# + +# +# ------------------------------------------------------- +# +# BR2_PACKAGE_OPKG is not set +# BR2_PACKAGE_OPKG_UTILS is not set + +# +# Real-Time +# +# BR2_PACKAGE_XENOMAI is not set + +# +# Security +# + +# +# apparmor needs a toolchain w/ headers >= 3.16, threads, C++ +# +# BR2_PACKAGE_CHECKPOLICY is not set +# BR2_PACKAGE_IMA_EVM_UTILS is not set +# BR2_PACKAGE_OPTEE_CLIENT is not set +# BR2_PACKAGE_PAXTEST is not set +# BR2_PACKAGE_REFPOLICY is not set +# BR2_PACKAGE_RESTORECOND is not set +# BR2_PACKAGE_SELINUX_PYTHON is not set +# BR2_PACKAGE_SEMODULE_UTILS is not set + +# +# setools needs python3 +# +BR2_PACKAGE_URANDOM_SCRIPTS=y + +# +# Shell and utilities +# + +# +# Shells +# +# BR2_PACKAGE_MKSH is not set +# BR2_PACKAGE_ZSH is not set + +# +# Utilities +# +# BR2_PACKAGE_APG is not set +# BR2_PACKAGE_AT is not set +# BR2_PACKAGE_CATATONIT is not set +# BR2_PACKAGE_CCRYPT is not set +# BR2_PACKAGE_DIALOG is not set +# BR2_PACKAGE_DTACH is not set +# BR2_PACKAGE_EASY_RSA is not set +# BR2_PACKAGE_FILE is not set +# BR2_PACKAGE_GNUPG is not set +BR2_PACKAGE_GNUPG2_DEPENDS=y +# BR2_PACKAGE_GNUPG2 is not set +# BR2_PACKAGE_INOTIFY_TOOLS is not set +# BR2_PACKAGE_LOCKFILE_PROGS is not set +# BR2_PACKAGE_LOGROTATE is not set +# BR2_PACKAGE_LOGSURFER is not set +# BR2_PACKAGE_PDMENU is not set +# BR2_PACKAGE_PINENTRY is not set +# BR2_PACKAGE_QPRINT is not set +# BR2_PACKAGE_RANGER is not set +# BR2_PACKAGE_RTTY is not set +# BR2_PACKAGE_SCREEN is not set +# BR2_PACKAGE_SEXPECT is not set +# BR2_PACKAGE_SUDO is not set +# BR2_PACKAGE_TINI is not set +# BR2_PACKAGE_TMUX is not set +# BR2_PACKAGE_TTYD is not set +# BR2_PACKAGE_WTFUTIL is not set +# BR2_PACKAGE_XMLSTARLET is not set +# BR2_PACKAGE_XXHASH is not set +# BR2_PACKAGE_YTREE is not set + +# +# System tools +# +# BR2_PACKAGE_ACL is not set +# BR2_PACKAGE_ANDROID_TOOLS is not set +# BR2_PACKAGE_ATOP is not set +# BR2_PACKAGE_ATTR is not set +# BR2_PACKAGE_BALENA_ENGINE is not set +# BR2_PACKAGE_BUBBLEWRAP is not set +# BR2_PACKAGE_CGROUPFS_MOUNT is not set + +# +# circus needs Python 3 and a toolchain w/ C++, threads +# +# BR2_PACKAGE_CONTAINERD is not set +# BR2_PACKAGE_CPULIMIT is not set +# BR2_PACKAGE_CPULOAD is not set +# BR2_PACKAGE_CRUN is not set +# BR2_PACKAGE_DAEMON is not set +# BR2_PACKAGE_DC3DD is not set + +# +# ddrescue needs a toolchain w/ C++ +# +# BR2_PACKAGE_DOCKER_CLI is not set + +# +# docker-compose needs docker-cli and a toolchain w/ threads +# +# BR2_PACKAGE_DOCKER_ENGINE is not set +# BR2_PACKAGE_EARLYOOM is not set +# BR2_PACKAGE_EMBIGGEN_DISK is not set +# BR2_PACKAGE_EMLOG is not set +# BR2_PACKAGE_FLUENT_BIT is not set +# BR2_PACKAGE_FTOP is not set +# BR2_PACKAGE_GETENT is not set +# BR2_PACKAGE_GKRELLM is not set +# BR2_PACKAGE_HTOP is not set +# BR2_PACKAGE_IBM_SW_TPM2 is not set +BR2_PACKAGE_INITSCRIPTS=y + +# +# iotop depends on python3 +# +# BR2_PACKAGE_IPRUTILS is not set +# BR2_PACKAGE_IRQBALANCE is not set +# BR2_PACKAGE_KEYUTILS is not set +# BR2_PACKAGE_KMOD is not set +# BR2_PACKAGE_LIBOSTREE is not set +# BR2_PACKAGE_LXC is not set +# BR2_PACKAGE_MENDER is not set +# BR2_PACKAGE_MENDER_CONNECT is not set +# BR2_PACKAGE_MFOC is not set +# BR2_PACKAGE_MOBY_BUILDKIT is not set +# BR2_PACKAGE_MONIT is not set + +# +# multipath-tools needs udev and a toolchain w/ threads, dynamic library +# +# BR2_PACKAGE_NCDU is not set +# BR2_PACKAGE_NERDCTL is not set + +# +# netifrc needs openrc as init system +# +# BR2_PACKAGE_NUMACTL is not set + +# +# nut needs a toolchain w/ C++ +# + +# +# pamtester depends on linux-pam +# +# BR2_PACKAGE_POLKIT is not set +# BR2_PACKAGE_PROCRANK_LINUX is not set +# BR2_PACKAGE_PWGEN is not set +# BR2_PACKAGE_QUOTA is not set +# BR2_PACKAGE_QUOTATOOL is not set +# BR2_PACKAGE_RAUC is not set +# BR2_PACKAGE_RUNC is not set +# BR2_PACKAGE_S6 is not set +# BR2_PACKAGE_S6_LINUX_INIT is not set +# BR2_PACKAGE_S6_LINUX_UTILS is not set +# BR2_PACKAGE_S6_PORTABLE_UTILS is not set +# BR2_PACKAGE_S6_RC is not set +# BR2_PACKAGE_SCRUB is not set +# BR2_PACKAGE_SCRYPT is not set + +# +# sdbus-c++ needs systemd and a toolchain w/ C++, gcc >= 7 +# + +# +# sdbusplus needs systemd and a toolchain w/ C++, gcc >= 7 +# +# BR2_PACKAGE_SEATD is not set +# BR2_PACKAGE_SHADOW is not set +# BR2_PACKAGE_SMACK is not set + +# +# supervisor needs a python interpreter +# +# BR2_PACKAGE_SWUPDATE is not set +BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS=y +# BR2_PACKAGE_TPM_TOOLS is not set +# BR2_PACKAGE_TPM2_ABRMD is not set +# BR2_PACKAGE_TPM2_TOOLS is not set +# BR2_PACKAGE_TPM2_TOTP is not set +# BR2_PACKAGE_UNSCD is not set +# BR2_PACKAGE_UTIL_LINUX is not set +# BR2_PACKAGE_WATCHDOG is not set +# BR2_PACKAGE_WATCHDOGD is not set +# BR2_PACKAGE_XDG_DBUS_PROXY is not set +BR2_PACKAGE_XVISOR_ARCH_SUPPORTS=y +# BR2_PACKAGE_XVISOR is not set + +# +# Text editors and viewers +# +# BR2_PACKAGE_ED is not set +# BR2_PACKAGE_JOE is not set +# BR2_PACKAGE_MC is not set +# BR2_PACKAGE_MG is not set +# BR2_PACKAGE_MOST is not set +# BR2_PACKAGE_NANO is not set +# BR2_PACKAGE_UEMACS is not set + +# +# Filesystem images +# +# BR2_TARGET_ROOTFS_AXFS is not set +# BR2_TARGET_ROOTFS_BTRFS is not set +# BR2_TARGET_ROOTFS_CLOOP is not set +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_FULL=y +# BR2_TARGET_ROOTFS_CPIO_DRACUT is not set +BR2_TARGET_ROOTFS_CPIO_NONE=y +# BR2_TARGET_ROOTFS_CPIO_GZIP is not set +# BR2_TARGET_ROOTFS_CPIO_BZIP2 is not set +# BR2_TARGET_ROOTFS_CPIO_LZ4 is not set +# BR2_TARGET_ROOTFS_CPIO_LZMA is not set +# BR2_TARGET_ROOTFS_CPIO_LZO is not set +# BR2_TARGET_ROOTFS_CPIO_XZ is not set +# BR2_TARGET_ROOTFS_CPIO_ZSTD is not set +# BR2_TARGET_ROOTFS_CPIO_UIMAGE is not set +# BR2_TARGET_ROOTFS_CRAMFS is not set +# BR2_TARGET_ROOTFS_EROFS is not set +# BR2_TARGET_ROOTFS_EXT2 is not set +# BR2_TARGET_ROOTFS_F2FS is not set +BR2_TARGET_ROOTFS_INITRAMFS=y +# BR2_TARGET_ROOTFS_JFFS2 is not set +# BR2_TARGET_ROOTFS_OCI is not set +# BR2_TARGET_ROOTFS_ROMFS is not set +# BR2_TARGET_ROOTFS_SQUASHFS is not set +# BR2_TARGET_ROOTFS_TAR is not set +# BR2_TARGET_ROOTFS_UBI is not set +# BR2_TARGET_ROOTFS_UBIFS is not set +# BR2_TARGET_ROOTFS_YAFFS2 is not set + +# +# Bootloaders +# +# BR2_TARGET_BAREBOX is not set +# BR2_TARGET_BEAGLEV_DDRINIT is not set +# BR2_TARGET_BEAGLEV_SECONDBOOT is not set +BR2_TARGET_OPENSBI=y +BR2_TARGET_OPENSBI_LATEST_VERSION=y +# BR2_TARGET_OPENSBI_CUSTOM_VERSION is not set +# BR2_TARGET_OPENSBI_CUSTOM_TARBALL is not set +# BR2_TARGET_OPENSBI_CUSTOM_GIT is not set +BR2_TARGET_OPENSBI_VERSION="1.2" +BR2_TARGET_OPENSBI_PLAT="generic" +BR2_TARGET_OPENSBI_INSTALL_DYNAMIC_IMG=y +BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG=y +# BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG is not set +# BR2_TARGET_OPENSBI_LINUX_PAYLOAD is not set +BR2_TARGET_OPENSBI_ADDITIONAL_VARIABLES="" +# BR2_TARGET_UBOOT is not set + +# +# Host utilities +# +# BR2_PACKAGE_HOST_ABOOTIMG is not set +# BR2_PACKAGE_HOST_AESPIPE is not set +# BR2_PACKAGE_HOST_AGENT_PROXY is not set +# BR2_PACKAGE_HOST_ANDROID_TOOLS is not set +# BR2_PACKAGE_HOST_ASN1C is not set +# BR2_PACKAGE_HOST_BABELTRACE2 is not set +# BR2_PACKAGE_HOST_BMAP_TOOLS is not set +# BR2_PACKAGE_HOST_BOOTGEN is not set +# BR2_PACKAGE_HOST_BTRFS_PROGS is not set +# BR2_PACKAGE_HOST_CHECKPOLICY is not set +# BR2_PACKAGE_HOST_CHECKSEC is not set +# BR2_PACKAGE_HOST_CMAKE is not set +BR2_HOST_CMAKE_AT_LEAST="3.18" +# BR2_PACKAGE_HOST_CRAMFS is not set +# BR2_PACKAGE_HOST_CRUDINI is not set +# BR2_PACKAGE_HOST_CRYPTSETUP is not set +# BR2_PACKAGE_HOST_DBUS_PYTHON is not set +# BR2_PACKAGE_HOST_DELVE is not set +# BR2_PACKAGE_HOST_DFU_UTIL is not set +# BR2_PACKAGE_HOST_DOS2UNIX is not set +# BR2_PACKAGE_HOST_DOSFSTOOLS is not set +# BR2_PACKAGE_HOST_DOXYGEN is not set +# BR2_PACKAGE_HOST_DTC is not set +BR2_PACKAGE_HOST_E2FSPROGS=y +# BR2_PACKAGE_HOST_E2TOOLS is not set +# BR2_PACKAGE_HOST_ENVIRONMENT_SETUP is not set +# BR2_PACKAGE_HOST_EROFS_UTILS is not set +# BR2_PACKAGE_HOST_EXFATPROGS is not set +# BR2_PACKAGE_HOST_F2FS_TOOLS is not set +# BR2_PACKAGE_HOST_FAKETIME is not set +# BR2_PACKAGE_HOST_FATCAT is not set +# BR2_PACKAGE_HOST_FIRMWARE_UTILS is not set +# BR2_PACKAGE_HOST_FWUP is not set +# BR2_PACKAGE_HOST_GENEXT2FS is not set +# BR2_PACKAGE_HOST_GENIMAGE is not set +# BR2_PACKAGE_HOST_GENPART is not set +# BR2_PACKAGE_HOST_GNUPG is not set +BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS=y +BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_GO_BOOTSTRAP_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS=y +# BR2_PACKAGE_HOST_GPTFDISK is not set +# BR2_PACKAGE_HOST_IMAGEMAGICK is not set +# BR2_PACKAGE_HOST_IMX_MKIMAGE is not set +# BR2_PACKAGE_HOST_JH71XX_TOOLS is not set +# BR2_PACKAGE_HOST_JQ is not set +# BR2_PACKAGE_HOST_JSMIN is not set +BR2_PACKAGE_HOST_KMOD=y +# BR2_PACKAGE_HOST_KMOD_GZ is not set +# BR2_PACKAGE_HOST_KMOD_ZSTD is not set +# BR2_PACKAGE_HOST_KMOD_XZ is not set +# BR2_PACKAGE_HOST_LIBP11 is not set +# BR2_PACKAGE_HOST_LLD is not set +# BR2_PACKAGE_HOST_LPC3250LOADER is not set +# BR2_PACKAGE_HOST_LTTNG_BABELTRACE is not set +# BR2_PACKAGE_HOST_LZMA_ALONE is not set +# BR2_PACKAGE_HOST_MENDER_ARTIFACT is not set +# BR2_PACKAGE_HOST_MESON_TOOLS is not set +# BR2_PACKAGE_HOST_MKPASSWD is not set +# BR2_PACKAGE_HOST_MOBY_BUILDKIT is not set +# BR2_PACKAGE_HOST_MOSQUITTO is not set +# BR2_PACKAGE_HOST_MTD is not set +# BR2_PACKAGE_HOST_MTOOLS is not set +# BR2_PACKAGE_HOST_NODEJS is not set +# BR2_PACKAGE_HOST_ODB is not set +# BR2_PACKAGE_HOST_OPENOCD is not set +# BR2_PACKAGE_HOST_OPKG_UTILS is not set +# BR2_PACKAGE_HOST_PAHOLE is not set +# BR2_PACKAGE_HOST_PARTED is not set +BR2_PACKAGE_HOST_PATCHELF=y +# BR2_PACKAGE_HOST_PIGZ is not set +# BR2_PACKAGE_HOST_PKGCONF is not set +# BR2_PACKAGE_HOST_PWGEN is not set +# BR2_PACKAGE_HOST_PYTHON_CYTHON is not set +# BR2_PACKAGE_HOST_PYTHON_GREENLET is not set +# BR2_PACKAGE_HOST_PYTHON_INIPARSE is not set +# BR2_PACKAGE_HOST_PYTHON_LXML is not set +# BR2_PACKAGE_HOST_PYTHON_PYYAML is not set +# BR2_PACKAGE_HOST_PYTHON_SIX is not set +# BR2_PACKAGE_HOST_PYTHON_XLRD is not set +# BR2_PACKAGE_HOST_PYTHON3 is not set +BR2_PACKAGE_HOST_QEMU_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_QEMU_USER_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_QEMU=y + +# +# Emulators selection +# +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y +# BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE is not set +# BR2_PACKAGE_HOST_QEMU_VDE2 is not set +# BR2_PACKAGE_HOST_QEMU_VIRTFS is not set +# BR2_PACKAGE_HOST_QEMU_USB is not set +# BR2_PACKAGE_HOST_QORIQ_RCW is not set +# BR2_PACKAGE_HOST_RAUC is not set +# BR2_PACKAGE_HOST_RISCV_ISA_SIM is not set +# BR2_PACKAGE_HOST_RUNC is not set +BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_RUSTC_ARCH="riscv64gc" +# BR2_PACKAGE_HOST_RUSTC is not set +BR2_PACKAGE_PROVIDES_HOST_RUSTC="host-rust-bin" +# BR2_PACKAGE_HOST_SAM_BA is not set +# BR2_PACKAGE_HOST_SDBUSPLUS is not set +# BR2_PACKAGE_HOST_SENTRY_CLI is not set +# BR2_PACKAGE_HOST_SLOCI_IMAGE is not set +# BR2_PACKAGE_HOST_SQUASHFS is not set +# BR2_PACKAGE_HOST_SWIG is not set +# BR2_PACKAGE_HOST_UBOOT_TOOLS is not set +BR2_PACKAGE_HOST_UTIL_LINUX=y +# BR2_PACKAGE_HOST_UTP_COM is not set +# BR2_PACKAGE_HOST_UUU is not set +# BR2_PACKAGE_HOST_VBOOT_UTILS is not set +# BR2_PACKAGE_HOST_XORRISO is not set +# BR2_PACKAGE_HOST_ZIP is not set +# BR2_PACKAGE_HOST_ZSTD is not set + +# +# Legacy config options +# + +# +# Legacy options removed in 2023.05 +# +# BR2_KERNEL_HEADERS_6_2 is not set +# BR2_PACKAGE_ATK is not set +# BR2_PACKAGE_AT_SPI2_ATK is not set +# BR2_PACKAGE_OPTEE_BENCHMARK is not set +# BR2_PACAKGE_OPENFPGALOADER_CMSIS is not set + +# +# Legacy options removed in 2023.02 +# +# BR2_PACKAGE_PUGIXML_HEADER_ONLY is not set +# BR2_PACKAGE_UCCP420WLAN is not set +# BR2_PACKAGE_IMX_GPU_G2D_EXAMPLES is not set +# BR2_KERNEL_HEADERS_6_0 is not set +# BR2_KERNEL_HEADERS_4_9 is not set +# BR2_PACKAGE_DOCKER_PROXY is not set +# BR2_PACKAGE_PYTHON_BUNCH is not set +# BR2_TARGET_GUMMIBOOT is not set +# BR2_PACKAGE_IPUTILS_NINFOD is not set +# BR2_PACKAGE_IPUTILS_RARPD is not set +# BR2_PACKAGE_IPUTILS_RDISC is not set +# BR2_PACKAGE_IPUTILS_RDISC_SERVER is not set +# BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_XINGMUX is not set +# BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOSCALE is not set +# BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT is not set +# BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11 is not set +# BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX_VIV is not set +BR2_PACKAGE_QEMU_CUSTOM_TARGETS="" +# BR2_PACKAGE_XDRIVER_XF86_INPUT_KEYBOARD is not set +# BR2_TARGET_SUN20I_D1_SPL is not set +# BR2_PACKAGE_PYTHON_M2R is not set +# BR2_PACKAGE_MESA3D_XVMC is not set +# BR2_KERNEL_HEADERS_5_19 is not set +# BR2_PACKAGE_XDRIVER_XF86_VIDEO_TGA is not set +# BR2_PACKAGE_XDRIVER_XF86_VIDEO_GLINT is not set +# BR2_PACKAGE_USBREDIR_SERVER is not set + +# +# Legacy options removed in 2022.11 +# +# BR2_BINUTILS_VERSION_2_36_X is not set +# BR2_PACKAGE_RABBITMQ_SERVER is not set +# BR2_PACKAGE_LIBOPENSSL_ENABLE_RC5 is not set +# BR2_PACKAGE_LIBDCADEC is not set +# BR2_KERNEL_HEADERS_5_17 is not set +# BR2_iwmmxt is not set +# BR2_PACKAGE_UHD_N230 is not set +# BR2_PACKAGE_UHD_RFNOC is not set +# BR2_PACKAGE_GPSD_OLDSTYLE is not set +# BR2_GDB_VERSION_9_2 is not set + +# +# Legacy options removed in 2022.08 +# +# BR2_ECLIPSE_REGISTER is not set +# BR2_csky is not set +# BR2_PACKAGE_MESA3D_DRI_DRIVER_I915 is not set +# BR2_PACKAGE_MESA3D_DRI_DRIVER_I965 is not set +# BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU is not set +# BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON is not set +# BR2_GCC_VERSION_9_X is not set +# BR2_PACKAGE_PHP_EXT_WDDX is not set +# BR2_nds32 is not set +# BR2_PACKAGE_RTL8723BS is not set + +# +# Legacy options removed in 2022.05 +# +# BR2_PACKAGE_KTAP is not set +# BR2_KERNEL_HEADERS_5_16 is not set +# BR2_KERNEL_HEADERS_4_4 is not set +# BR2_BINUTILS_VERSION_2_32_X is not set +# BR2_sh2a is not set +# BR2_BINUTILS_VERSION_2_35_X is not set +# BR2_PACKAGE_BOOST_LAYOUT_TAGGED is not set +# BR2_PACKAGE_BOOST_LAYOUT_VERSIONED is not set + +# +# Legacy options removed in 2022.02 +# +BR2_TARGET_ROOTFS_OCI_ENTRYPOINT_ARGS="" +# BR2_PACKAGE_LIBCURL_LIBNSS is not set +# BR2_PACKAGE_WESTON_DEFAULT_FBDEV is not set +# BR2_PACKAGE_WESTON_FBDEV is not set +# BR2_PACKAGE_PYTHON_PYCLI is not set +# BR2_PACKAGE_LINUX_TOOLS_BPFTOOL is not set +# BR2_TARGET_UBOOT_NEEDS_PYTHON2 is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIBMMS is not set +# BR2_PACKAGE_PYTHON_FUNCTOOLS32 is not set +# BR2_PACKAGE_PYTHON_ENUM34 is not set +# BR2_PACKAGE_PYTHON_ENUM is not set +# BR2_PACKAGE_PYTHON_DIALOG is not set +# BR2_PACKAGE_PYTHON_CONFIGOBJ is not set +# BR2_PACKAGE_PYTHON_YIELDFROM is not set +# BR2_PACKAGE_PYTHON_TYPING is not set +# BR2_PACKAGE_PYTHON_SUBPROCESS32 is not set +# BR2_PACKAGE_PYTHON_SINGLEDISPATCH is not set +# BR2_PACKAGE_PYTHON_PYRO is not set +# BR2_PACKAGE_PYTHON_PYPCAP is not set +# BR2_PACKAGE_PYTHON_PATHLIB2 is not set +# BR2_PACKAGE_PYTHON_PAM is not set +# BR2_PACKAGE_PYTHON_NFC is not set +# BR2_PACKAGE_PYTHON_MAD is not set +# BR2_PACKAGE_PYTHON_IPADDRESS is not set +# BR2_PACKAGE_PYTHON_IPADDR is not set +# BR2_PACKAGE_PYTHON_ID3 is not set +# BR2_PACKAGE_PYTHON_FUTURES is not set +# BR2_PACKAGE_PYTHON_BACKPORTS_SSL_MATCH_HOSTNAME is not set +# BR2_PACKAGE_PYTHON_BACKPORTS_SHUTIL_GET_TERMINAL_SIZE is not set +# BR2_PACKAGE_PYTHON_BACKPORTS_ABC is not set +# BR2_PACKAGE_PYTHON is not set +# BR2_TARGET_UBOOT_ZYNQ_IMAGE is not set +# BR2_PACKAGE_HOST_GDB_PYTHON is not set +# BR2_PACKAGE_GSTREAMER1_MM is not set +# BR2_KERNEL_HEADERS_5_14 is not set +# BR2_PACKAGE_PYTHON_BACKPORTS_FUNCTOOLS_LRU_CACHE is not set +# BR2_PACKAGE_CIVETWEB_WITH_LUA is not set +# BR2_PACKAGE_SUNXI_MALI_MAINLINE_DRIVER is not set +# BR2_PACKAGE_SUNXI_MALI_MAINLINE is not set +# BR2_PACKAGE_SUNXI_MALI_MAINLINE_R6P2 is not set +# BR2_PACKAGE_SUNXI_MALI_MAINLINE_R8P1 is not set +# BR2_PACKAGE_QT5WEBKIT_EXAMPLES is not set +# BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_GLIBC_BLEEDING_EDGE is not set +# BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_MUSL_BLEEDING_EDGE is not set +# BR2_PACKAGE_IPUTILS_TFTPD is not set +# BR2_PACKAGE_IPUTILS_TRACEROUTE6 is not set +# BR2_PACKAGE_LIBMEDIAART_BACKEND_NONE is not set +# BR2_PACKAGE_MPD_UPNP is not set + +# +# Legacy options removed in 2021.11 +# +# BR2_OPENJDK_VERSION_LTS is not set +# BR2_OPENJDK_VERSION_LATEST is not set +# BR2_PACKAGE_MPD_TIDAL is not set +# BR2_PACKAGE_MROUTED_RSRR is not set +# BR2_BINUTILS_VERSION_CSKY is not set +# BR2_GCC_VERSION_CSKY is not set +# BR2_PACKAGE_CANFESTIVAL is not set +# BR2_PACKAGE_NMAP_NDIFF is not set +# BR2_GDB_VERSION_8_3 is not set +# BR2_PACKAGE_PYTHON_MELD3 is not set +# BR2_PACKAGE_STRONGSWAN_EAP is not set +# BR2_PACKAGE_GNURADIO_PAGER is not set +# BR2_KERNEL_HEADERS_5_11 is not set +# BR2_KERNEL_HEADERS_5_12 is not set +# BR2_KERNEL_HEADERS_5_13 is not set + +# +# Legacy options removed in 2021.08 +# +BR2_TARGET_GRUB2_BUILTIN_MODULES="" +BR2_TARGET_GRUB2_BUILTIN_CONFIG="" +# BR2_PACKAGE_LIBMCRYPT is not set +# BR2_PACKAGE_MCRYPT is not set +# BR2_PACKAGE_PHP_EXT_MCRYPT is not set +# BR2_BINUTILS_VERSION_2_34_X is not set +# BR2_PACKAGE_LIBSOIL is not set +# BR2_PACKAGE_CLAPACK is not set +# BR2_PACKAGE_SPIDERMONKEY is not set +# BR2_PACKAGE_KODI_LIBVA is not set +# BR2_PACKAGE_PYTHON_COHERENCE is not set +# BR2_PACKAGE_PHP_EXT_XMLRPC is not set +# BR2_GCC_VERSION_8_X is not set + +# +# Legacy options removed in 2021.05 +# +# BR2_PACKAGE_UDISKS_LVM2 is not set +# BR2_PACKAGE_LVM2_APP_LIBRARY is not set +# BR2_PACKAGE_LVM2_LVMETAD is not set +# BR2_PACKAGE_MONKEY is not set +# BR2_PACKAGE_DOCKER_CONTAINERD is not set +# BR2_PACKAGE_IOSTAT is not set +# BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE is not set +# BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_EVDEV is not set +# BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_KBD is not set +# BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_MOUSE is not set +# BR2_PACKAGE_MESA3D_OSMESA_CLASSIC is not set +# BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST is not set +# BR2_PACKAGE_KODI_SCREENSAVER_CRYSTALMORPH is not set + +# +# Legacy options removed in 2021.02 +# +# BR2_PACKAGE_MPD_AUDIOFILE is not set +# BR2_PACKAGE_AUDIOFILE is not set +# BR2_BINUTILS_VERSION_2_33_X is not set +# BR2_PACKAGE_LIBUPNP18 is not set +# BR2_PACKAGE_BOA is not set +# BR2_PACKAGE_LINUX_FIRMWARE_IMX_SDMA is not set +# BR2_GDB_VERSION_8_2 is not set +# BR2_PACKAGE_HOST_RCW is not set +# BR2_KERNEL_HEADERS_5_9 is not set +# BR2_KERNEL_HEADERS_5_8 is not set +# BR2_powerpc_601 is not set +# BR2_PACKAGE_TI_SGX_LIBGBM is not set +# BR2_PACKAGE_IPSEC_TOOLS is not set + +# +# Legacy options removed in 2020.11 +# +# BR2_PACKAGE_GPSD_FIXED_PORT_SPEED is not set +# BR2_PACKAGE_GPSD_RECONFIGURE is not set +# BR2_PACKAGE_GPSD_CONTROLSEND is not set +# BR2_PACKAGE_OPENCV is not set +# BR2_PACKAGE_LIBCROCO is not set +# BR2_PACKAGE_BELLAGIO is not set +# BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY is not set +# BR2_TARGET_UBOOT_BOOT_SCRIPT is not set +# BR2_TARGET_UBOOT_ENVIMAGE is not set +# BR2_PACKAGE_KISMET_CLIENT is not set +# BR2_PACKAGE_KISMET_DRONE is not set +# BR2_GCC_VERSION_7_X is not set +# BR2_PACKAGE_GST1_VALIDATE is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_YADIF is not set +# BR2_PACKAGE_GQVIEW is not set +# BR2_PACKAGE_WESTON_IMX is not set +# BR2_KERNEL_HEADERS_5_7 is not set +# BR2_PACKAGE_TINYHTTPD is not set +# BR2_PACKAGE_XSERVER_XORG_SERVER_AIGLX is not set +# BR2_PACKAGE_AMD_CATALYST is not set +# BR2_PACKAGE_NVIDIA_TEGRA23 is not set +# BR2_GDB_VERSION_8_1 is not set + +# +# Legacy options removed in 2020.08 +# +# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64 is not set +# BR2_KERNEL_HEADERS_5_6 is not set +# BR2_KERNEL_HEADERS_5_5 is not set +# BR2_BINUTILS_VERSION_2_31_X is not set +# BR2_PACKAGE_KODI_PERIPHERAL_STEAMCONTROLLER is not set + +# +# Legacy options removed in 2020.05 +# +# BR2_PACKAGE_WIRINGPI is not set +# BR2_PACKAGE_PYTHON_PYCRYPTO is not set +# BR2_PACKAGE_MTDEV2TUIO is not set +# BR2_PACKAGE_EZXML is not set +# BR2_PACKAGE_COLLECTD_LVM is not set +# BR2_PACKAGE_PYTHON_PYASN is not set +# BR2_PACKAGE_PYTHON_PYASN_MODULES is not set +# BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA6174 is not set +# BR2_PACKAGE_QT5CANVAS3D is not set +# BR2_PACKAGE_KODI_LIBTHEORA is not set +# BR2_PACKAGE_CEGUI06 is not set +# BR2_GCC_VERSION_5_X is not set + +# +# Legacy options removed in 2020.02 +# +# BR2_PACKAGE_JAMVM is not set +# BR2_PACKAGE_CLASSPATH is not set +# BR2_PACKAGE_QT5_VERSION_5_6 is not set +# BR2_PACKAGE_CURL is not set +# BR2_PACKAGE_GSTREAMER is not set +# BR2_PACKAGE_NVIDIA_TEGRA23_BINARIES_GSTREAMER_PLUGINS is not set +# BR2_PACKAGE_NVIDIA_TEGRA23_BINARIES_NV_SAMPLE_APPS is not set +# BR2_PACKAGE_FREERDP_GSTREAMER is not set +# BR2_PACKAGE_OPENCV3_WITH_GSTREAMER is not set +# BR2_PACKAGE_OPENCV_WITH_GSTREAMER is not set +# BR2_PACKAGE_LIBPLAYER is not set +# BR2_GCC_VERSION_OR1K is not set +# BR2_PACKAGE_BLUEZ_UTILS is not set +# BR2_PACKAGE_GADGETFS_TEST is not set +# BR2_PACKAGE_FIS is not set +BR2_PACKAGE_REFPOLICY_POLICY_VERSION="" +# BR2_PACKAGE_CELT051 is not set +# BR2_PACKAGE_WIREGUARD is not set +# BR2_PACKAGE_PERL_NET_PING is not set +# BR2_PACKAGE_PERL_MIME_BASE64 is not set +# BR2_PACKAGE_PERL_DIGEST_MD5 is not set +# BR2_PACKAGE_ERLANG_P1_ICONV is not set +# BR2_KERNEL_HEADERS_5_3 is not set +# BR2_PACKAGE_PYTHON_SCAPY3K is not set +# BR2_BINUTILS_VERSION_2_30_X is not set +# BR2_PACKAGE_RPI_USERLAND_START_VCFILED is not set +# BR2_PACKAGE_TI_SGX_KM_AM335X is not set +# BR2_PACKAGE_TI_SGX_KM_AM437X is not set +# BR2_PACKAGE_TI_SGX_KM_AM4430 is not set +# BR2_PACKAGE_TI_SGX_KM_AM5430 is not set + +# +# Legacy options removed in 2019.11 +# +# BR2_PACKAGE_OPENVMTOOLS_PROCPS is not set +# BR2_PACKAGE_ALLJOYN is not set +# BR2_PACKAGE_ALLJOYN_BASE is not set +# BR2_PACKAGE_ALLJOYN_BASE_CONTROLPANEL is not set +# BR2_PACKAGE_ALLJOYN_BASE_NOTIFICATION is not set +# BR2_PACKAGE_ALLJOYN_BASE_ONBOARDING is not set +# BR2_PACKAGE_ALLJOYN_TCL_BASE is not set +# BR2_PACKAGE_ALLJOYN_TCL is not set +BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS="" +# BR2_PACKAGE_PYTHON_PYSNMP_APPS is not set +# BR2_KERNEL_HEADERS_5_2 is not set +# BR2_TARGET_RISCV_PK is not set +# BR2_PACKAGE_SQLITE_STAT3 is not set +# BR2_KERNEL_HEADERS_5_1 is not set +# BR2_PACKAGE_DEVMEM2 is not set +# BR2_PACKAGE_USTR is not set +# BR2_PACKAGE_KODI_SCREENSAVER_PLANESTATE is not set +# BR2_PACKAGE_KODI_VISUALISATION_WAVEFORHUE is not set +# BR2_PACKAGE_KODI_AUDIODECODER_OPUS is not set +# BR2_PACKAGE_MESA3D_OSMESA is not set +# BR2_PACKAGE_HOSTAPD_DRIVER_RTW is not set +# BR2_PACKAGE_WPA_SUPPLICANT_DBUS_NEW is not set +# BR2_PACKAGE_WPA_SUPPLICANT_DBUS_OLD is not set + +# +# Legacy options removed in 2019.08 +# +# BR2_TARGET_TS4800_MBRBOOT is not set +# BR2_PACKAGE_LIBAMCODEC is not set +# BR2_PACKAGE_ODROID_SCRIPTS is not set +# BR2_PACKAGE_ODROID_MALI is not set +# BR2_PACKAGE_KODI_PLATFORM_AML is not set +# BR2_GCC_VERSION_6_X is not set +# BR2_GCC_VERSION_4_9_X is not set +# BR2_GDB_VERSION_7_12 is not set +# BR2_PACKAGE_XAPP_MKFONTDIR is not set +# BR2_GDB_VERSION_8_0 is not set +# BR2_KERNEL_HEADERS_4_20 is not set +# BR2_KERNEL_HEADERS_5_0 is not set + +# +# Legacy options removed in 2019.05 +# +# BR2_CSKY_DSP is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_COMPOSITOR is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IQA is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENCV is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_STEREO is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VCD is not set +# BR2_PACKAGE_LUNIT is not set +# BR2_PACKAGE_FFMPEG_FFSERVER is not set +# BR2_PACKAGE_LIBUMP is not set +# BR2_PACKAGE_SUNXI_MALI is not set +# BR2_BINUTILS_VERSION_2_29_X is not set +# BR2_BINUTILS_VERSION_2_28_X is not set +# BR2_PACKAGE_GST_PLUGINS_BAD_PLUGIN_APEXSINK is not set + +# +# Legacy options removed in 2019.02 +# +# BR2_PACKAGE_QT is not set +# BR2_PACKAGE_QTUIO is not set +# BR2_PACKAGE_PINENTRY_QT4 is not set +# BR2_PACKAGE_POPPLER_QT is not set +# BR2_PACKAGE_OPENCV3_WITH_QT is not set +# BR2_PACKAGE_OPENCV_WITH_QT is not set +# BR2_PACKAGE_AMD_CATALYST_CCCLE is not set +# BR2_PACKAGE_SDL_QTOPIA is not set +# BR2_PACKAGE_PYTHON_PYQT is not set +# BR2_PACKAGE_LUACRYPTO is not set +# BR2_PACKAGE_TN5250 is not set +# BR2_PACKAGE_BOOST_SIGNALS is not set +# BR2_PACKAGE_FFTW_PRECISION_SINGLE is not set +# BR2_PACKAGE_FFTW_PRECISION_DOUBLE is not set +# BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE is not set +# BR2_PACKAGE_LUA_5_2 is not set +# BR2_TARGET_GENERIC_PASSWD_MD5 is not set + +# +# Legacy options removed in 2018.11 +# +# BR2_TARGET_XLOADER is not set +# BR2_PACKAGE_TIDSP_BINARIES is not set +# BR2_PACKAGE_DSP_TOOLS is not set +# BR2_PACKAGE_GST_DSP is not set +# BR2_PACKAGE_BOOTUTILS is not set +# BR2_PACKAGE_EXPEDITE is not set +# BR2_PACKAGE_MESA3D_OPENGL_TEXTURE_FLOAT is not set +# BR2_KERNEL_HEADERS_4_10 is not set +# BR2_KERNEL_HEADERS_4_11 is not set +# BR2_KERNEL_HEADERS_4_12 is not set +# BR2_KERNEL_HEADERS_4_13 is not set +# BR2_KERNEL_HEADERS_4_15 is not set +# BR2_KERNEL_HEADERS_4_17 is not set +# BR2_PACKAGE_LIBNFTNL_XML is not set +# BR2_KERNEL_HEADERS_3_2 is not set +# BR2_KERNEL_HEADERS_4_1 is not set +# BR2_KERNEL_HEADERS_4_16 is not set +# BR2_KERNEL_HEADERS_4_18 is not set + +# +# Legacy options removed in 2018.08 +# +# BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT is not set +# BR2_PACKAGE_XPROTO_APPLEWMPROTO is not set +# BR2_PACKAGE_XPROTO_BIGREQSPROTO is not set +# BR2_PACKAGE_XPROTO_COMPOSITEPROTO is not set +# BR2_PACKAGE_XPROTO_DAMAGEPROTO is not set +# BR2_PACKAGE_XPROTO_DMXPROTO is not set +# BR2_PACKAGE_XPROTO_DRI2PROTO is not set +# BR2_PACKAGE_XPROTO_DRI3PROTO is not set +# BR2_PACKAGE_XPROTO_FIXESPROTO is not set +# BR2_PACKAGE_XPROTO_FONTCACHEPROTO is not set +# BR2_PACKAGE_XPROTO_FONTSPROTO is not set +# BR2_PACKAGE_XPROTO_GLPROTO is not set +# BR2_PACKAGE_XPROTO_INPUTPROTO is not set +# BR2_PACKAGE_XPROTO_KBPROTO is not set +# BR2_PACKAGE_XPROTO_PRESENTPROTO is not set +# BR2_PACKAGE_XPROTO_RANDRPROTO is not set +# BR2_PACKAGE_XPROTO_RECORDPROTO is not set +# BR2_PACKAGE_XPROTO_RENDERPROTO is not set +# BR2_PACKAGE_XPROTO_RESOURCEPROTO is not set +# BR2_PACKAGE_XPROTO_SCRNSAVERPROTO is not set +# BR2_PACKAGE_XPROTO_VIDEOPROTO is not set +# BR2_PACKAGE_XPROTO_WINDOWSWMPROTO is not set +# BR2_PACKAGE_XPROTO_XCMISCPROTO is not set +# BR2_PACKAGE_XPROTO_XEXTPROTO is not set +# BR2_PACKAGE_XPROTO_XF86BIGFONTPROTO is not set +# BR2_PACKAGE_XPROTO_XF86DGAPROTO is not set +# BR2_PACKAGE_XPROTO_XF86DRIPROTO is not set +# BR2_PACKAGE_XPROTO_XF86VIDMODEPROTO is not set +# BR2_PACKAGE_XPROTO_XINERAMAPROTO is not set +# BR2_PACKAGE_XPROTO_XPROTO is not set +# BR2_PACKAGE_XPROTO_XPROXYMANAGEMENTPROTOCOL is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_OPENGL is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_GLES2 is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_GLX is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_EGL is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_X11 is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_WAYLAND is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_DISPMANX is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOMIXER is not set +# BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_LAME is not set +# BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPG123 is not set +# BR2_GDB_VERSION_7_11 is not set +# BR2_GDB_VERSION_7_10 is not set + +# +# Legacy options removed in 2018.05 +# +# BR2_PACKAGE_MEDIAART_BACKEND_NONE is not set +# BR2_PACKAGE_MEDIAART_BACKEND_GDK_PIXBUF is not set +# BR2_PACKAGE_MEDIAART_BACKEND_QT is not set +# BR2_PACKAGE_TI_SGX_AM335X is not set +# BR2_PACKAGE_TI_SGX_AM437X is not set +# BR2_PACKAGE_TI_SGX_AM4430 is not set +# BR2_PACKAGE_TI_SGX_AM5430 is not set +# BR2_PACKAGE_JANUS_AUDIO_BRIDGE is not set +# BR2_PACKAGE_JANUS_ECHO_TEST is not set +# BR2_PACKAGE_JANUS_RECORDPLAY is not set +# BR2_PACKAGE_JANUS_SIP_GATEWAY is not set +# BR2_PACKAGE_JANUS_STREAMING is not set +# BR2_PACKAGE_JANUS_TEXT_ROOM is not set +# BR2_PACKAGE_JANUS_VIDEO_CALL is not set +# BR2_PACKAGE_JANUS_VIDEO_ROOM is not set +# BR2_PACKAGE_JANUS_MQTT is not set +# BR2_PACKAGE_JANUS_RABBITMQ is not set +# BR2_PACKAGE_JANUS_REST is not set +# BR2_PACKAGE_JANUS_UNIX_SOCKETS is not set +# BR2_PACKAGE_JANUS_WEBSOCKETS is not set +# BR2_PACKAGE_IPSEC_SECCTX_DISABLE is not set +# BR2_PACKAGE_IPSEC_SECCTX_ENABLE is not set +# BR2_PACKAGE_IPSEC_SECCTX_KERNEL is not set +# BR2_PACKAGE_LIBTFDI_CPP is not set +# BR2_PACKAGE_JQUERY_UI_THEME_BLACK_TIE is not set +# BR2_PACKAGE_JQUERY_UI_THEME_BLITZER is not set +# BR2_PACKAGE_JQUERY_UI_THEME_CUPERTINO is not set +# BR2_PACKAGE_JQUERY_UI_THEME_DARK_HIVE is not set +# BR2_PACKAGE_JQUERY_UI_THEME_DOT_LUV is not set +# BR2_PACKAGE_JQUERY_UI_THEME_EGGPLANT is not set +# BR2_PACKAGE_JQUERY_UI_THEME_EXCITE_BIKE is not set +# BR2_PACKAGE_JQUERY_UI_THEME_FLICK is not set +# BR2_PACKAGE_JQUERY_UI_THEME_HOT_SNEAKS is not set +# BR2_PACKAGE_JQUERY_UI_THEME_HUMANITY is not set +# BR2_PACKAGE_JQUERY_UI_THEME_LE_FROG is not set +# BR2_PACKAGE_JQUERY_UI_THEME_MINT_CHOC is not set +# BR2_PACKAGE_JQUERY_UI_THEME_OVERCAST is not set +# BR2_PACKAGE_JQUERY_UI_THEME_PEPPER_GRINDER is not set +# BR2_PACKAGE_JQUERY_UI_THEME_REDMOND is not set +# BR2_PACKAGE_JQUERY_UI_THEME_SMOOTHNESS is not set +# BR2_PACKAGE_JQUERY_UI_THEME_SOUTH_STREET is not set +# BR2_PACKAGE_JQUERY_UI_THEME_START is not set +# BR2_PACKAGE_JQUERY_UI_THEME_SUNNY is not set +# BR2_PACKAGE_JQUERY_UI_THEME_SWANKY_PURSE is not set +# BR2_PACKAGE_JQUERY_UI_THEME_TRONTASTIC is not set +# BR2_PACKAGE_JQUERY_UI_THEME_UI_DARKNESS is not set +# BR2_PACKAGE_JQUERY_UI_THEME_UI_LIGHTNESS is not set +# BR2_PACKAGE_JQUERY_UI_THEME_VADER is not set +# BR2_PACKAGE_BLUEZ5_PLUGINS_HEALTH is not set +# BR2_PACKAGE_BLUEZ5_PLUGINS_MIDI is not set +# BR2_PACKAGE_BLUEZ5_PLUGINS_NFC is not set +# BR2_PACKAGE_BLUEZ5_PLUGINS_SAP is not set +# BR2_PACKAGE_BLUEZ5_PLUGINS_SIXAXIS is not set +# BR2_PACKAGE_TRANSMISSION_REMOTE is not set +# BR2_PACKAGE_LIBKCAPI_APPS is not set +# BR2_PACKAGE_MPLAYER is not set +# BR2_PACKAGE_MPLAYER_MPLAYER is not set +# BR2_PACKAGE_MPLAYER_MENCODER is not set +# BR2_PACKAGE_LIBPLAYER_MPLAYER is not set +# BR2_PACKAGE_IQVLINUX is not set +# BR2_BINFMT_FLAT_SEP_DATA is not set +# BR2_bfin is not set +# BR2_PACKAGE_KODI_ADSP_BASIC is not set +# BR2_PACKAGE_KODI_ADSP_FREESURROUND is not set + +# +# Legacy options removed in 2018.02 +# +# BR2_KERNEL_HEADERS_3_4 is not set +# BR2_KERNEL_HEADERS_3_10 is not set +# BR2_KERNEL_HEADERS_3_12 is not set +# BR2_BINUTILS_VERSION_2_27_X is not set +# BR2_PACKAGE_EEPROG is not set +# BR2_PACKAGE_GNUPG2_GPGV2 is not set +# BR2_PACKAGE_IMX_GPU_VIV_APITRACE is not set +# BR2_PACKAGE_IMX_GPU_VIV_G2D is not set + +# +# Legacy options removed in 2017.11 +# +# BR2_PACKAGE_RFKILL is not set +# BR2_PACKAGE_UTIL_LINUX_RESET is not set +# BR2_PACKAGE_POLICYCOREUTILS_AUDIT2ALLOW is not set +# BR2_PACKAGE_POLICYCOREUTILS_RESTORECOND is not set +# BR2_PACKAGE_SEPOLGEN is not set +# BR2_PACKAGE_OPENOBEX_BLUEZ is not set +# BR2_PACKAGE_OPENOBEX_LIBUSB is not set +# BR2_PACKAGE_OPENOBEX_APPS is not set +# BR2_PACKAGE_OPENOBEX_SYSLOG is not set +# BR2_PACKAGE_OPENOBEX_DUMP is not set +# BR2_PACKAGE_AICCU is not set +# BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS is not set + +# +# Legacy options removed in 2017.08 +# +# BR2_TARGET_GRUB is not set +# BR2_PACKAGE_SIMICSFS is not set +# BR2_BINUTILS_VERSION_2_26_X is not set +BR2_XTENSA_OVERLAY_DIR="" +BR2_XTENSA_CUSTOM_NAME="" +# BR2_PACKAGE_HOST_MKE2IMG is not set +BR2_TARGET_ROOTFS_EXT2_BLOCKS=0 +BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES=0 +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CDXAPARSE is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DATAURISRC is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DCCP is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HDVPARSE is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MVE is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NUVDEMUX is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PATCHDETECT is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDI is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TTA is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOMEASURE is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_APEXSINK is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDL is not set +# BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MAD is not set +# BR2_STRIP_none is not set +# BR2_PACKAGE_BEECRYPT_CPP is not set +# BR2_PACKAGE_SPICE_CLIENT is not set +# BR2_PACKAGE_SPICE_GUI is not set +# BR2_PACKAGE_SPICE_TUNNEL is not set +# BR2_PACKAGE_INPUT_TOOLS is not set +# BR2_PACKAGE_INPUT_TOOLS_INPUTATTACH is not set +# BR2_PACKAGE_INPUT_TOOLS_JSCAL is not set +# BR2_PACKAGE_INPUT_TOOLS_JSTEST is not set +# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH is not set +# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86 is not set +# BR2_GCC_VERSION_4_8_X is not set + +# +# Legacy options removed in 2017.05 +# +# BR2_PACKAGE_SUNXI_MALI_R2P4 is not set +# BR2_PACKAGE_NODEJS_MODULES_COFFEESCRIPT is not set +# BR2_PACKAGE_NODEJS_MODULES_EXPRESS is not set +# BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL is not set +# BR2_PACKAGE_OPENOCD_FT2XXX is not set +# BR2_PACKAGE_KODI_RTMPDUMP is not set +# BR2_PACKAGE_KODI_VISUALISATION_FOUNTAIN is not set +# BR2_PACKAGE_PORTMAP is not set +# BR2_BINUTILS_VERSION_2_25_X is not set +# BR2_TOOLCHAIN_BUILDROOT_INET_RPC is not set +BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS=0 +# BR2_PACKAGE_SYSTEMD_KDBUS is not set +# BR2_PACKAGE_POLARSSL is not set +# BR2_NBD_CLIENT is not set +# BR2_NBD_SERVER is not set +# BR2_PACKAGE_GMOCK is not set +# BR2_KERNEL_HEADERS_4_8 is not set +# BR2_KERNEL_HEADERS_3_18 is not set +# BR2_GLIBC_VERSION_2_22 is not set + +# +# Legacy options removed in 2017.02 +# +# BR2_PACKAGE_PERL_DB_FILE is not set +# BR2_KERNEL_HEADERS_4_7 is not set +# BR2_KERNEL_HEADERS_4_6 is not set +# BR2_KERNEL_HEADERS_4_5 is not set +# BR2_KERNEL_HEADERS_3_14 is not set +# BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS is not set +# BR2_UCLIBC_INSTALL_TEST_SUITE is not set +# BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX is not set +# BR2_PACKAGE_MAKEDEVS is not set +# BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A is not set +# BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE is not set +# BR2_PACKAGE_SNOWBALL_HDMISERVICE is not set +# BR2_PACKAGE_SNOWBALL_INIT is not set +# BR2_GDB_VERSION_7_9 is not set + +# +# Legacy options removed in 2016.11 +# +# BR2_PACKAGE_PHP_SAPI_CLI_CGI is not set +# BR2_PACKAGE_PHP_SAPI_CLI_FPM is not set +# BR2_PACKAGE_WVSTREAMS is not set +# BR2_PACKAGE_WVDIAL is not set +# BR2_PACKAGE_WEBKITGTK24 is not set +# BR2_PACKAGE_TORSMO is not set +# BR2_PACKAGE_SSTRIP is not set +# BR2_KERNEL_HEADERS_4_3 is not set +# BR2_KERNEL_HEADERS_4_2 is not set +# BR2_PACKAGE_KODI_ADDON_XVDR is not set +# BR2_PACKAGE_IPKG is not set +# BR2_GCC_VERSION_4_7_X is not set +# BR2_BINUTILS_VERSION_2_24_X is not set +# BR2_PACKAGE_WESTON_RPI is not set +# BR2_LINUX_KERNEL_TOOL_CPUPOWER is not set +# BR2_LINUX_KERNEL_TOOL_PERF is not set +# BR2_LINUX_KERNEL_TOOL_SELFTESTS is not set +# BR2_GCC_VERSION_4_8_ARC is not set +# BR2_KERNEL_HEADERS_4_0 is not set +# BR2_KERNEL_HEADERS_3_19 is not set +# BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS is not set +# BR2_PACKAGE_ELEMENTARY is not set +# BR2_LINUX_KERNEL_CUSTOM_LOCAL is not set + +# +# Legacy options removed in 2016.08 +# +# BR2_PACKAGE_EFL_JP2K is not set +# BR2_PACKAGE_SYSTEMD_COMPAT is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIVEADDER is not set +# BR2_PACKAGE_LIBFSLVPUWRAP is not set +# BR2_PACKAGE_LIBFSLPARSER is not set +# BR2_PACKAGE_LIBFSLCODEC is not set +# BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT is not set +# BR2_PTHREADS_OLD is not set +# BR2_BINUTILS_VERSION_2_23_X is not set +# BR2_TOOLCHAIN_BUILDROOT_EGLIBC is not set +# BR2_GDB_VERSION_7_8 is not set + +# +# Legacy options removed in 2016.05 +# +# BR2_PACKAGE_OPENVPN_CRYPTO_POLARSSL is not set +# BR2_PACKAGE_NGINX_HTTP_SPDY_MODULE is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTP is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPG123 is not set +# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC is not set +# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC_E500V2 is not set +# BR2_x86_i386 is not set +# BR2_PACKAGE_QT5QUICK1 is not set +BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR="" +# BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID is not set +# BR2_KERNEL_HEADERS_3_17 is not set +# BR2_GDB_VERSION_7_7 is not set +# BR2_PACKAGE_FOOMATIC_FILTERS is not set +# BR2_PACKAGE_SAMBA is not set +# BR2_PACKAGE_KODI_WAVPACK is not set +# BR2_PACKAGE_KODI_RSXS is not set +# BR2_PACKAGE_KODI_GOOM is not set +# BR2_PACKAGE_SYSTEMD_ALL_EXTRAS is not set +# BR2_GCC_VERSION_4_5_X is not set +# BR2_PACKAGE_SQLITE_READLINE is not set + +# +# Legacy options removed in 2016.02 +# +# BR2_PACKAGE_DOVECOT_BZIP2 is not set +# BR2_PACKAGE_DOVECOT_ZLIB is not set +# BR2_PACKAGE_E2FSPROGS_FINDFS is not set +# BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL is not set +# BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE is not set +# BR2_PACKAGE_OPENPOWERLINK_LIBPCAP is not set +# BR2_LINUX_KERNEL_SAME_AS_HEADERS is not set +# BR2_PACKAGE_CUPS_PDFTOPS is not set +# BR2_KERNEL_HEADERS_3_16 is not set +# BR2_PACKAGE_PYTHON_PYXML is not set +# BR2_ENABLE_SSP is not set +# BR2_PACKAGE_DIRECTFB_CLE266 is not set +# BR2_PACKAGE_DIRECTFB_UNICHROME is not set +# BR2_PACKAGE_LIBELEMENTARY is not set +# BR2_PACKAGE_LIBEINA is not set +# BR2_PACKAGE_LIBEET is not set +# BR2_PACKAGE_LIBEVAS is not set +# BR2_PACKAGE_LIBECORE is not set +# BR2_PACKAGE_LIBEDBUS is not set +# BR2_PACKAGE_LIBEFREET is not set +# BR2_PACKAGE_LIBEIO is not set +# BR2_PACKAGE_LIBEMBRYO is not set +# BR2_PACKAGE_LIBEDJE is not set +# BR2_PACKAGE_LIBETHUMB is not set +# BR2_PACKAGE_INFOZIP is not set +# BR2_BR2_PACKAGE_NODEJS_0_10_X is not set +# BR2_BR2_PACKAGE_NODEJS_0_12_X is not set +# BR2_BR2_PACKAGE_NODEJS_4_X is not set + +# +# Legacy options removed in 2015.11 +# +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_REAL is not set +# BR2_PACKAGE_MEDIA_CTL is not set +# BR2_PACKAGE_SCHIFRA is not set +# BR2_PACKAGE_ZXING is not set +# BR2_PACKAGE_BLACKBOX is not set +# BR2_KERNEL_HEADERS_3_0 is not set +# BR2_KERNEL_HEADERS_3_11 is not set +# BR2_KERNEL_HEADERS_3_13 is not set +# BR2_KERNEL_HEADERS_3_15 is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_ANDI is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_BLTLOAD is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_CPULOAD is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_DATABUFFER is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_DIOLOAD is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_DOK is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_DRIVERTEST is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_FIRE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_FLIP is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_FONTS is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_INPUT is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_JOYSTICK is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_KNUCKLES is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_LAYER is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX_WATER is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_NEO is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_NETLOAD is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_PALETTE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_PARTICLE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_PORTER is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_STRESS is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_TEXTURE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO_PARTICLE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_WINDOW is not set +# BR2_PACKAGE_KOBS_NG is not set +# BR2_PACKAGE_SAWMAN is not set +# BR2_PACKAGE_DIVINE is not set + +# +# Legacy options removed in 2015.08 +# +# BR2_PACKAGE_KODI_PVR_ADDONS is not set +# BR2_BINUTILS_VERSION_2_23_2 is not set +# BR2_BINUTILS_VERSION_2_24 is not set +# BR2_BINUTILS_VERSION_2_25 is not set +# BR2_PACKAGE_PERF is not set +# BR2_BINUTILS_VERSION_2_22 is not set +# BR2_PACKAGE_GPU_VIV_BIN_MX6Q is not set +# BR2_TARGET_UBOOT_NETWORK is not set diff --git a/linux/buildroot-packages/package-2023.05.1.patch b/linux/buildroot-packages/package-2023.05.1.patch new file mode 100644 index 000000000..844cbd4f9 --- /dev/null +++ b/linux/buildroot-packages/package-2023.05.1.patch @@ -0,0 +1,12 @@ +diff --git a/package/Config.in b/package/Config.in +index ad438667d2..810bf0897e 100644 +--- a/package/Config.in ++++ b/package/Config.in +@@ -503,6 +503,7 @@ endmenu + source "package/fconfig/Config.in" + source "package/flashrom/Config.in" + source "package/fmtools/Config.in" ++ source "package/fpga-axi-sdc/Config.in" + source "package/freeipmi/Config.in" + source "package/freescale-imx/Config.in" + source "package/fxload/Config.in" From 337f5fadc7636b270c69b3a6618f63f68ba760cf Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Tue, 1 Aug 2023 12:56:16 -0500 Subject: [PATCH 37/59] Updated driver for latest version of linux --- linux/buildroot-packages/package-source/fpga-axi-sdc.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/linux/buildroot-packages/package-source/fpga-axi-sdc.c b/linux/buildroot-packages/package-source/fpga-axi-sdc.c index ebe916a4c..15bd95a90 100644 --- a/linux/buildroot-packages/package-source/fpga-axi-sdc.c +++ b/linux/buildroot-packages/package-source/fpga-axi-sdc.c @@ -379,15 +379,11 @@ static irqreturn_t sdc_isr(int irq, void * dev_id) { /*---------------------------------------------------------------------*/ -// JACOB: Had to modify this to resemble the older version of Linux -// Used to be called hw_reset in older versions. Now it's -// called .card_hw_reset to make it unambiguous what it's -// resetting. When I update Linux, this will be changed back. static const struct mmc_host_ops axi_sdc_ops = { .request = sdc_request, .set_ios = sdc_set_ios, .get_cd = sdc_get_cd, - .hw_reset = sdc_card_reset, + .card_hw_reset = sdc_card_reset, }; static int axi_sdc_probe(struct platform_device * pdev) { From 068a0d10fdc0ecaffbdb75384a2240aeed345e9f Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Wed, 2 Aug 2023 14:28:17 -0500 Subject: [PATCH 38/59] Added a Makefile to the Linux directory to take care of the Buildroot setup and other dependencies. --- linux/Makefile | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 linux/Makefile diff --git a/linux/Makefile b/linux/Makefile new file mode 100644 index 000000000..dfb938f70 --- /dev/null +++ b/linux/Makefile @@ -0,0 +1,23 @@ +RISCV := /opt/riscv +BUILDROOT := ${RISCV}/buildroot +IMAGES := ${BUILDROOT}/output/images +WALLYLINUX := $(shell pwd) + +.PHONY: all clean patch + +all: + +patch: $(BUILDROOT) + @ echo "${WALLYLINUX}" + cp -r $(WALLYLINUX)/buildroot-config-src/wally $ Date: Wed, 2 Aug 2023 14:56:23 -0500 Subject: [PATCH 39/59] Linux makefile now copies the package contents with the correct package source. --- linux/Makefile | 8 ++++++-- linux/buildroot-packages/fpga-axi-sdc/fpga-axi-sdc.mk | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/linux/Makefile b/linux/Makefile index dfb938f70..bb5086e59 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -2,15 +2,19 @@ RISCV := /opt/riscv BUILDROOT := ${RISCV}/buildroot IMAGES := ${BUILDROOT}/output/images WALLYLINUX := $(shell pwd) +PACKAGE_SOURCE := ${WALLYLINUX}/buildroot-packages/package-source +FPGA_AXI_SDC := ${WALLYLINUX}/buildroot-packages/fpga-axi-sdc .PHONY: all clean patch -all: +all: + sed -i 's|FPGA_AXI_SDC_SITE = __site__|FPGA_AXI_SDC_SITE = $(PACKAGE_SOURCE)|1' $(FPGA_AXI_SDC)/fpga-axi-sdc.mk -patch: $(BUILDROOT) +patch: $(BUILDROOT) @ echo "${WALLYLINUX}" cp -r $(WALLYLINUX)/buildroot-config-src/wally $ Date: Wed, 2 Aug 2023 14:59:20 -0500 Subject: [PATCH 40/59] Removed duplicate line in Makefile. --- linux/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/Makefile b/linux/Makefile index bb5086e59..621653aaa 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -8,7 +8,7 @@ FPGA_AXI_SDC := ${WALLYLINUX}/buildroot-packages/fpga-axi-sdc .PHONY: all clean patch all: - sed -i 's|FPGA_AXI_SDC_SITE = __site__|FPGA_AXI_SDC_SITE = $(PACKAGE_SOURCE)|1' $(FPGA_AXI_SDC)/fpga-axi-sdc.mk + patch: $(BUILDROOT) @ echo "${WALLYLINUX}" From 064e86347647e0b5bc08646a8622bbf21dc1e597 Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Wed, 2 Aug 2023 16:12:26 -0500 Subject: [PATCH 41/59] Buildroot can now be set up with the new Linux Makefile. The driver can now also be loaded from addins/vivado-risc-v and should be removed from the main Wally repo. A sed command customizes the package source location for the new buildroot directory. --- linux/Makefile | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/linux/Makefile b/linux/Makefile index 621653aaa..ccabbeffe 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -1,27 +1,32 @@ RISCV := /opt/riscv BUILDROOT := ${RISCV}/buildroot IMAGES := ${BUILDROOT}/output/images +WALLY := $(shell dirname $(shell pwd)) WALLYLINUX := $(shell pwd) PACKAGE_SOURCE := ${WALLYLINUX}/buildroot-packages/package-source FPGA_AXI_SDC := ${WALLYLINUX}/buildroot-packages/fpga-axi-sdc +DRIVER := ${PACKAGE_SOURCE}/fpga-axi-sdc.c .PHONY: all clean patch -all: - +all: $(IMAGES) -patch: $(BUILDROOT) +patch: $(BUILDROOT) $(DRIVER) @ echo "${WALLYLINUX}" + cp ../addins/vivado-risc-v/patches/fpga-axi-sdc.c $(DRIVER) cp -r $(WALLYLINUX)/buildroot-config-src/wally $ Date: Wed, 2 Aug 2023 16:24:20 -0500 Subject: [PATCH 42/59] Adjusted the new makefile. --- linux/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux/Makefile b/linux/Makefile index ccabbeffe..cfe2d7328 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -12,8 +12,7 @@ DRIVER := ${PACKAGE_SOURCE}/fpga-axi-sdc.c all: $(IMAGES) patch: $(BUILDROOT) $(DRIVER) - @ echo "${WALLYLINUX}" - cp ../addins/vivado-risc-v/patches/fpga-axi-sdc.c $(DRIVER) + @ echo "Patching buildroot directory at: $<" cp -r $(WALLYLINUX)/buildroot-config-src/wally $ Date: Wed, 2 Aug 2023 18:59:42 -0500 Subject: [PATCH 43/59] Updated linux config. Works in QEMU now. --- linux/Makefile | 11 +- .../buildroot-2023.05.1/linux.config | 107 ++++++++++-------- 2 files changed, 66 insertions(+), 52 deletions(-) diff --git a/linux/Makefile b/linux/Makefile index cfe2d7328..1d8107c24 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -7,10 +7,12 @@ PACKAGE_SOURCE := ${WALLYLINUX}/buildroot-packages/package-source FPGA_AXI_SDC := ${WALLYLINUX}/buildroot-packages/fpga-axi-sdc DRIVER := ${PACKAGE_SOURCE}/fpga-axi-sdc.c -.PHONY: all clean patch +.PHONY: generate clean patch -all: $(IMAGES) +generate: $(IMAGES) + +# This directive should be run as: make patch BUILDROOT=path/to/buildroot patch: $(BUILDROOT) $(DRIVER) @ echo "Patching buildroot directory at: $<" cp -r $(WALLYLINUX)/buildroot-config-src/wally $ Date: Wed, 2 Aug 2023 19:26:35 -0500 Subject: [PATCH 44/59] Added device tree generation to Linux directory Makefile. Exits on not finding output/images folder in buildroot directory. --- linux/Makefile | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/linux/Makefile b/linux/Makefile index 1d8107c24..41d9e00df 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -7,15 +7,29 @@ PACKAGE_SOURCE := ${WALLYLINUX}/buildroot-packages/package-source FPGA_AXI_SDC := ${WALLYLINUX}/buildroot-packages/fpga-axi-sdc DRIVER := ${PACKAGE_SOURCE}/fpga-axi-sdc.c -.PHONY: generate clean patch +DTS ?= $(shell find -type f -regex ".*\.dts" | sort) -generate: $(IMAGES) - +.PHONY: generate cleanDriver patch + +# Generate device tree binaries from device tree source files +# Currently supported fpga device tree binaries are also generated +generate: $(DTS) $(IMAGES) + dtc -I dts -O dtb devicetree/wally-virt.dts > ${IMAGES}/wally-virt.dtb + dtc -I dts -O dtb devicetree/wally-vcu108.dts > ${IMAGES}/wally-vcu108.dtb + dtc -I dts -O dtb devicetree/wally-vcu118.dts > ${IMAGES}/wally-vcu118.dtb + dtc -I dts -O dtb devicetree/wally-vcu118.dts > ${IMAGES}/wally-artya7.dtb + +disassemble: + +# Generating new Buildroot directories -------------------------------- # This directive should be run as: make patch BUILDROOT=path/to/buildroot patch: $(BUILDROOT) $(DRIVER) @ echo "Patching buildroot directory at: $<" + @ echo "Copying wally configuration files and rootfs_overlay to buildroot." cp -r $(WALLYLINUX)/buildroot-config-src/wally $ Date: Fri, 4 Aug 2023 13:56:03 -0500 Subject: [PATCH 45/59] Makefile dynamically generates all device tree files now. --- linux/Makefile | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/linux/Makefile b/linux/Makefile index 41d9e00df..d846db791 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -7,17 +7,20 @@ PACKAGE_SOURCE := ${WALLYLINUX}/buildroot-packages/package-source FPGA_AXI_SDC := ${WALLYLINUX}/buildroot-packages/fpga-axi-sdc DRIVER := ${PACKAGE_SOURCE}/fpga-axi-sdc.c -DTS ?= $(shell find -type f -regex ".*\.dts" | sort) +# Device tree file +DTS ?= $(shell find -type f -regex ".*\.dts" | sort) +DTB := $(DTS:%.dts=%.dtb) +DTB := $(foreach name, $(DTB), $(IMAGES)/$(shell basename $(name))) -.PHONY: generate cleanDriver patch +.PHONY: generate cleanDriver patch clean -# Generate device tree binaries from device tree source files -# Currently supported fpga device tree binaries are also generated -generate: $(DTS) $(IMAGES) - dtc -I dts -O dtb devicetree/wally-virt.dts > ${IMAGES}/wally-virt.dtb - dtc -I dts -O dtb devicetree/wally-vcu108.dts > ${IMAGES}/wally-vcu108.dtb - dtc -I dts -O dtb devicetree/wally-vcu118.dts > ${IMAGES}/wally-vcu118.dtb - dtc -I dts -O dtb devicetree/wally-vcu118.dts > ${IMAGES}/wally-artya7.dtb +# Generate all device trees +# TODO: Add configuration for only generating device tree for specified +# supported FPGA. +generate: $(DTB) + +$(DTB): $(DTS) + dtc -I dts -O dtb $< > $@ disassemble: @@ -29,12 +32,20 @@ patch: $(BUILDROOT) $(DRIVER) @ echo "Copying wally configuration files and rootfs_overlay to buildroot." cp -r $(WALLYLINUX)/buildroot-config-src/wally $ Date: Fri, 4 Aug 2023 17:28:22 -0500 Subject: [PATCH 46/59] flash-sd.sh fixed. GPT table is now destroyed before re-partioning, thus avoiding backup table collisions. --- linux/sdcard/flash-sd.sh | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/linux/sdcard/flash-sd.sh b/linux/sdcard/flash-sd.sh index d864e2c31..f41fdfe7d 100755 --- a/linux/sdcard/flash-sd.sh +++ b/linux/sdcard/flash-sd.sh @@ -1,7 +1,7 @@ #!/bin/bash # Exit on any error (return code != 0) -set -e +# set -e # Output colors GREEN='\033[1;32m' @@ -11,10 +11,10 @@ NAME="$GREEN"${0:2}"$NC" # File location variables RISCV=/opt/riscv -IMAGES=/home/ross/repos/buildroot/output/images/ +IMAGES=$RISCV/buildroot/output/images/ FW_JUMP=$IMAGES/fw_jump.bin LINUX_KERNEL=$IMAGES/Image -DEVICE_TREE=$IMAGES/wally-artya7.dtb +DEVICE_TREE=$IMAGES/wally-vcu108.dtb # Mount Directory MNT_DIR=wallyimg @@ -61,12 +61,19 @@ echo -e "$NAME: Device tree block size: $DST_SIZE" echo -e "$NAME: OpenSBI FW_JUMP block size: $FW_JUMP_SIZE" echo -e "$NAME: Kernel block size: $KERNEL_SIZE" -read -p "Warning: " -n 1 -r +read -p "Warning: Doing this will replace all data on this card.\nContinue? y/n: " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]] ; then - # Make empty image - #echo -e "$NAME: Creating blank image" - #sudo dd if=/dev/zero of=$1 bs=4k conv=noerror status=progress && sync + DEVBASENAME=$(basename $1) + CHECKMOUNT=$(lsblk | grep "sdb4" | tr -s ' ' | cut -d' ' -f 7) + + if [ ! -z $CHECKMOUNT ] ; then + sudo umount -v $CHECKMOUNT + fi + + #Make empty image + echo -e "$NAME: Creating blank image" + sudo dd if=/dev/zero of=$1 bs=64k status=progress && sync # GUID Partition Tables (GPT) # =============================================== @@ -76,12 +83,10 @@ if [[ $REPLY =~ ^[Yy]$ ]] ; then # to 1 sector boundaries I think? This would normally be set to 2048 # apparently. - # sudo sgdisk -g --clear --set-alignment=1 \ - # --new=1:34:+$FW_JUMP_SIZE: --change-name=1:'opensbi' --typecode=1:2E54B353-1271-4842-806F-E436D6AF6985 \ - # --new=2:$KERNEL_START:+$KERNEL_SIZE --change-name=2:'kernel' --typecode=2:3000 \ - # --new=3:$FS_START:-0 --change-name=3:'filesystem' \ - # $1 + sudo sgdisk -z $1 + sleep 1 + echo -e "$NAME: Creating GUID Partition Table" sudo sgdisk -g --clear --set-alignment=1 \ --new=1:34:+$DST_SIZE: --change-name=1:'fdt' \ @@ -92,6 +97,8 @@ if [[ $REPLY =~ ^[Yy]$ ]] ; then sudo partprobe $1 + sleep 3 + echo -e "$NAME: Copying binaries into their partitions." DD_FLAGS="bs=4k iflag=fullblock oflag=direct conv=fsync status=progress" From ca1a9c577cb07e31aa3e678018becea4daa7e838 Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Sat, 5 Aug 2023 13:28:33 -0500 Subject: [PATCH 47/59] Created dependency tree for patch target in the linux subdirectory Makefile. --- linux/Makefile | 62 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 55 insertions(+), 7 deletions(-) diff --git a/linux/Makefile b/linux/Makefile index d846db791..8469bc589 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -3,31 +3,53 @@ BUILDROOT := ${RISCV}/buildroot IMAGES := ${BUILDROOT}/output/images WALLY := $(shell dirname $(shell pwd)) WALLYLINUX := $(shell pwd) +DIS := ${IMAGES}/disassembly +BRPACKAGES := $(WALLYLINUX)/buildroot-packages + +# Buildroot Config Stuff +WALLYBOARDSRC := $(WALLYLINUX)/buildroot-config-src/wally +WALLYBOARD := $(BUILDROOT)/board/wally + +# Buildroot Package Stuff PACKAGE_SOURCE := ${WALLYLINUX}/buildroot-packages/package-source FPGA_AXI_SDC := ${WALLYLINUX}/buildroot-packages/fpga-axi-sdc DRIVER := ${PACKAGE_SOURCE}/fpga-axi-sdc.c +PATCHFILE := $(BRPACKAGES)/package.patch -# Device tree file +# Device tree files DTS ?= $(shell find -type f -regex ".*\.dts" | sort) DTB := $(DTS:%.dts=%.dtb) DTB := $(foreach name, $(DTB), $(IMAGES)/$(shell basename $(name))) +# Disassembly stuff +BINARIES := fw_jump.elf vmlinux busybox +BINARIES := $(foreach name, $(BINARIES), $(shell find -type f -regex ".*$(name)")) +OBJDUMPS := fw_jump.objdump vmlinux.objdump busybox.objdump +OBJDUMPS := $(foreach name, $(OBJDUMPS), $(DIS)/$(name)) + .PHONY: generate cleanDriver patch clean # Generate all device trees # TODO: Add configuration for only generating device tree for specified # supported FPGA. +test: + generate: $(DTB) $(DTB): $(DTS) dtc -I dts -O dtb $< > $@ disassemble: + mkdir -p $(DIS) + make -j $(OBJDUMPS) + +$(OBJDUMPS): $(BINARIES) + riscv64-unknown-elf-objdump -DS $< >> $@ # Generating new Buildroot directories -------------------------------- -# This directive should be run as: make patch BUILDROOT=path/to/buildroot -patch: $(BUILDROOT) $(DRIVER) +# This directive should be run as: make newbr BUILDROOT=path/to/buildroot +newbr: $(BUILDROOT) $(DRIVER) @ echo "Patching buildroot directory at: $<" @ echo "Copying wally configuration files and rootfs_overlay to buildroot." cp -r $(WALLYLINUX)/buildroot-config-src/wally $ Date: Sat, 5 Aug 2023 15:27:17 -0500 Subject: [PATCH 48/59] Fixed Makefile bugs, and removed old code. --- linux/Makefile | 47 +++++++++++++---------------------------------- 1 file changed, 13 insertions(+), 34 deletions(-) diff --git a/linux/Makefile b/linux/Makefile index 8469bc589..0c5d66a1d 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -36,8 +36,12 @@ test: generate: $(DTB) -$(DTB): $(DTS) - dtc -I dts -O dtb $< > $@ +$(DTB): $(DTS) $(IMAGES) + dtc -I dts -O dtb $< > $@ + +$(IMAGES): + @ echo "No output/images directory in buildroot." + @ echo "Run make --jobs in buildroot directory before generating device tree binaries."; exit 1 disassemble: mkdir -p $(DIS) @@ -48,33 +52,9 @@ $(OBJDUMPS): $(BINARIES) # Generating new Buildroot directories -------------------------------- -# This directive should be run as: make newbr BUILDROOT=path/to/buildroot -newbr: $(BUILDROOT) $(DRIVER) - @ echo "Patching buildroot directory at: $<" - @ echo "Copying wally configuration files and rootfs_overlay to buildroot." - cp -r $(WALLYLINUX)/buildroot-config-src/wally $ Date: Sun, 6 Aug 2023 18:50:37 -0500 Subject: [PATCH 49/59] Stopped makefile from crashing when patch is already applied. --- linux/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/Makefile b/linux/Makefile index 0c5d66a1d..28edebeda 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -70,7 +70,7 @@ $(WALLYBOARD): $(BUILDROOT) $(BUILDROOT)/package/fpga-axi-sdc: $(BUILDROOT) $(PATCHFILE) $(BRPACKAGES)/fpga-axi-sdc cp -r $(BRPACKAGES)/fpga-axi-sdc $(BUILDROOT)/package sed -i 's|FPGA_AXI_SDC_SITE =|FPGA_AXI_SDC_SITE = $(PACKAGE_SOURCE)|1' $(BUILDROOT)/package/fpga-axi-sdc/fpga-axi-sdc.mk - cd $(BUILDROOT); git apply $(PATCHFILE) + cd $(BUILDROOT); if git apply --check $(PATCHFILE) > /dev/null ; then git apply $(PATCHFILE); fi $(PATCHFILE): cd $(BUILDROOT); git apply $(PATCHFILE) From 1582376d71ac24a38cc5621b3ef6154aa6854705 Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Wed, 9 Aug 2023 00:22:20 -0500 Subject: [PATCH 50/59] Fixed device tree generation make rule. Make targets are simplified. --- linux/Makefile | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/linux/Makefile b/linux/Makefile index 28edebeda..520536fe0 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -23,37 +23,48 @@ DTB := $(foreach name, $(DTB), $(IMAGES)/$(shell basename $(name))) # Disassembly stuff BINARIES := fw_jump.elf vmlinux busybox -BINARIES := $(foreach name, $(BINARIES), $(shell find -type f -regex ".*$(name)")) +BINARIES := $(foreach name, $(BINARIES), $(IMAGES)/$(name)) +#BINARIES := $(foreach name, $(BINARIES), $(shell find -type f -regex ".*$(name)")) OBJDUMPS := fw_jump.objdump vmlinux.objdump busybox.objdump OBJDUMPS := $(foreach name, $(OBJDUMPS), $(DIS)/$(name)) -.PHONY: generate cleanDriver patch clean +.PHONY: generate disassemble install clean cleanDTB cleanDriver -# Generate all device trees +# Generate all device trees ------------------------------------------- # TODO: Add configuration for only generating device tree for specified # supported FPGA. -test: -generate: $(DTB) +generate: $(DTB) $(IMAGES) -$(DTB): $(DTS) $(IMAGES) +$(IMAGES)/%.dtb: ./devicetree/%.dts dtc -I dts -O dtb $< > $@ $(IMAGES): @ echo "No output/images directory in buildroot." @ echo "Run make --jobs in buildroot directory before generating device tree binaries."; exit 1 +# Disassembly rules --------------------------------------------------- + disassemble: mkdir -p $(DIS) make -j $(OBJDUMPS) -$(OBJDUMPS): $(BINARIES) +$(DIS)/%.objdump: $(IMAGES)/%.elf riscv64-unknown-elf-objdump -DS $< >> $@ +$(DIS)/%.objdump: $(IMAGES)/% + riscv64-unknown-elf-objdump -S $< >> $@ + +$(IMAGES)/vmlinux: $(BUILDROOT)/output/build/linux-5.10.7/vmlinux + cp $< $@ + +$(IMAGES)/busybox: $(BUILDROOT)/output/build/busybox-1.33.0/busybox + cp $< $@ + # Generating new Buildroot directories -------------------------------- -# This directive should be run as: make patch BUILDROOT=path/to/buildroot -patch: $(BUILDROOT)/package/fpga-axi-sdc $(WALLYBOARD)/main.config $(WALLYBOARD)/linux.config $(DRIVER) +# This directive should be run as: make install BUILDROOT=path/to/buildroot +install: $(BUILDROOT)/package/fpga-axi-sdc $(WALLYBOARD)/main.config $(WALLYBOARD)/linux.config $(DRIVER) cp $(WALLYBOARD)/main.config $(BUILDROOT)/.config # CONFIG DEPENDENCIES 2021.05 ----------------------------------------- @@ -91,6 +102,9 @@ $(DRIVER): cleanDriver: rm -f $(DRIVER) +cleanDTB: + rm -f $(IMAGES)/*.dtb + clean: ls $(IMAGES) rm -rf $(IMAGES)/*.dtb From 40096ac662297930a0f212471f2b9f0246b15882 Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Wed, 9 Aug 2023 12:31:14 -0500 Subject: [PATCH 51/59] Fixed bugs. Added an 'all' target that performs the whole process of building the images needed for booting linux, including device tree files. --- linux/Makefile | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/linux/Makefile b/linux/Makefile index 520536fe0..7c85e0ee4 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -23,17 +23,25 @@ DTB := $(foreach name, $(DTB), $(IMAGES)/$(shell basename $(name))) # Disassembly stuff BINARIES := fw_jump.elf vmlinux busybox -BINARIES := $(foreach name, $(BINARIES), $(IMAGES)/$(name)) -#BINARIES := $(foreach name, $(BINARIES), $(shell find -type f -regex ".*$(name)")) -OBJDUMPS := fw_jump.objdump vmlinux.objdump busybox.objdump -OBJDUMPS := $(foreach name, $(OBJDUMPS), $(DIS)/$(name)) +OBJDUMPS := $(foreach name, $(BINARIES), $(basename $(name) .elf)) +OBJDUMPS := $(foreach name, $(OBJDUMPS), $(DIS)/$(name).objdump) -.PHONY: generate disassemble install clean cleanDTB cleanDriver +.PHONY: all generate disassemble install clean cleanDTB cleanDriver test # Generate all device trees ------------------------------------------- # TODO: Add configuration for only generating device tree for specified # supported FPGA. +all: + $(MAKE) install + make -C $(BUILDROOT) --jobs + $(MAKE) generate + # TODO: Need to find a way to set the PATH for child processes. + # source ../setup.sh; $(MAKE) disassemble + +test: + @echo $(OBJDUMPS) + generate: $(DTB) $(IMAGES) $(IMAGES)/%.dtb: ./devicetree/%.dts @@ -43,6 +51,10 @@ $(IMAGES): @ echo "No output/images directory in buildroot." @ echo "Run make --jobs in buildroot directory before generating device tree binaries."; exit 1 +$(RISCV): + @ echo "ERROR: No $(RISCV) directory. Make sure you have installed the Wally Toolchain." + @ echo "this can be done with /bin/wally-tool-chain-install.sh" + # Disassembly rules --------------------------------------------------- disassemble: @@ -64,18 +76,20 @@ $(IMAGES)/busybox: $(BUILDROOT)/output/build/busybox-1.33.0/busybox # Generating new Buildroot directories -------------------------------- # This directive should be run as: make install BUILDROOT=path/to/buildroot -install: $(BUILDROOT)/package/fpga-axi-sdc $(WALLYBOARD)/main.config $(WALLYBOARD)/linux.config $(DRIVER) +install: $(BUILDROOT)/package/fpga-axi-sdc $(WALLYBOARD) $(DRIVER) cp $(WALLYBOARD)/main.config $(BUILDROOT)/.config # CONFIG DEPENDENCIES 2021.05 ----------------------------------------- -$(WALLYBOARD)/main.config: $(WALLYBOARD) $(BRPACKAGES)/wally.config - cp $(BRPACKAGES)/wally.config $@ +# $(WALLYBOARD)/main.config: $(WALLYBOARD) $(BRPACKAGES)/wally.config +# cp $(BRPACKAGES)/wally.config $@ -$(WALLYBOARD)/linux.config: $(WALLYBOARD) $(BRPACKAGES)/linux.config - cp $(BRPACKAGES)/linux.config $@ +# $(WALLYBOARD)/linux.config: $(BRPACKAGES)/linux.config $(WALLYBOARD) +# cp $(BRPACKAGES)/linux.config $@ $(WALLYBOARD): $(BUILDROOT) cp -r $(WALLYBOARDSRC) $(BUILDROOT)/board + cp $(BRPACKAGES)/wally.config $(WALLYBOARD)/main.config + cp $(BRPACKAGES)/linux.config $(WALLYBOARD)/linux.config # Buildroot Package --------------------------------------------------- $(BUILDROOT)/package/fpga-axi-sdc: $(BUILDROOT) $(PATCHFILE) $(BRPACKAGES)/fpga-axi-sdc From 027190ecc90f8c13255082cd2d02e178d835d728 Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Fri, 11 Aug 2023 12:11:56 -0500 Subject: [PATCH 52/59] Added a README.md for the linux directory. WIP. --- linux/README.MD | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 linux/README.MD diff --git a/linux/README.MD b/linux/README.MD new file mode 100644 index 000000000..d753c7ab3 --- /dev/null +++ b/linux/README.MD @@ -0,0 +1,26 @@ +# Linux for core-v-wally + +## Setting up Buildroot + +In order to generate the Linux and boot stage binaries compatible with Wally, Buildroot is used for cross-compilation. To set up a Buildroot directory, configuration files for Buildroot, Linux, and Busybox must be copied into the correct locations inside the main Buildroot directory. This can be done automatically using the Makefile inside Wally's Linux subdirectory (this one). To install and patch a fresh Buildroot directory, type: + + $ make install BUILDROOT=path/to/buildroot + +In addition to copying the configuration files, it will install the buildroot package needed to build the SD card driver for Linux. + +To install a new buildroot directory, build the binaries, and generate the device tree binaries in one command, use: + + $ make BUILDROOT=path/to/buildroot + +Or simply use the default buildroot location in /opt/riscv: + + $ make + +Note that the `$RISCV` variable cannot be set prior to building in buildroot or the build will fail. It is best to run `source ./setup.sh` to alter your `$PATH` and set the `$RISCV` variable after buildroot has succesfully built the binaries. If you're new to buildroot, you can find the binaries in `/output/images`. + +## Generating Device Tree Binaries + + +## Creating a Bootable SD Card + + From 5f0edbd82531dac41ba301a4d75e54e68b7cbf3f Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Fri, 11 Aug 2023 12:27:23 -0500 Subject: [PATCH 53/59] Added details to the README.md for linux. --- linux/README.MD | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/linux/README.MD b/linux/README.MD index d753c7ab3..3e47f58e5 100644 --- a/linux/README.MD +++ b/linux/README.MD @@ -6,13 +6,13 @@ In order to generate the Linux and boot stage binaries compatible with Wally, Bu $ make install BUILDROOT=path/to/buildroot -In addition to copying the configuration files, it will install the buildroot package needed to build the SD card driver for Linux. +You can override the `BUILDROOT` variable to place buildroot where you want it. By default it will be placed at `/opt/riscv/buildroot`. In addition to copying the configuration files, it will install the buildroot package needed to build the SD card driver for Linux. To install a new buildroot directory, build the binaries, and generate the device tree binaries in one command, use: $ make BUILDROOT=path/to/buildroot -Or simply use the default buildroot location in /opt/riscv: +Or simply use the default buildroot location in `/opt/riscv`: $ make @@ -20,6 +20,13 @@ Note that the `$RISCV` variable cannot be set prior to building in buildroot or ## Generating Device Tree Binaries +The device tree files for the various FPGA's Wally supports, as well as QEMU's device tree for the virt machine, are located in the `./devicetree` subdirectory. These device tree files are necessary for the boot process. In order to build the device tree binaries (.dtb) from the device tree sources (.dts), we can build all of them at once using: + + $ make generate BUILDROOT=path/to/buildroot + + Or for the default buildroot location: + + $ make generate ## Creating a Bootable SD Card From 4b22d137f841bc37e08d4d4685875e90c80a96e7 Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Fri, 11 Aug 2023 13:11:06 -0500 Subject: [PATCH 54/59] Added instructions on disassembly to the README for Linux. --- linux/README.MD | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/linux/README.MD b/linux/README.MD index 3e47f58e5..c87b107a9 100644 --- a/linux/README.MD +++ b/linux/README.MD @@ -27,6 +27,18 @@ The device tree files for the various FPGA's Wally supports, as well as QEMU's d Or for the default buildroot location: $ make generate + +The .dts files will end up in the `/output/images` folder of your chosen buildroot directory. + +## Disassembling the Binaries for Debugging + +By using the `riscv64-unknown-elf-objdump` utility, we can disassemble the binaries in `/output/images` so that we can explore the resulting machine code instructions and see what assembly or C code the instructions came from, along with the corresponding addresses. This is useful during debugging in order to trace how code is being executed. + +To create the disassembled binaries, run: + + $ make disassemble BUILDROOT=path/to/buildroot + +You'll find the resulting disassembled files in `/output/images/disassembly`. ## Creating a Bootable SD Card From 2be76bd6f8856f139ae7771813d388916349d64e Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Fri, 11 Aug 2023 15:48:49 -0500 Subject: [PATCH 55/59] Added a table of contents to the linux readme. --- linux/README.MD | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/linux/README.MD b/linux/README.MD index c87b107a9..68de94f03 100644 --- a/linux/README.MD +++ b/linux/README.MD @@ -1,6 +1,13 @@ # Linux for core-v-wally -## Setting up Buildroot +## Table of Contents + +1. [Setting up Buildroot](#buildroot) +2. [Generating Device Tree Binaries](#devicetree) +3. [Disassembling the Binaries for Debugging](#disassembly) +4. [Creating a Bootable SD Card](#sdcard) + +## Setting up Buildroot In order to generate the Linux and boot stage binaries compatible with Wally, Buildroot is used for cross-compilation. To set up a Buildroot directory, configuration files for Buildroot, Linux, and Busybox must be copied into the correct locations inside the main Buildroot directory. This can be done automatically using the Makefile inside Wally's Linux subdirectory (this one). To install and patch a fresh Buildroot directory, type: @@ -18,7 +25,7 @@ Or simply use the default buildroot location in `/opt/riscv`: Note that the `$RISCV` variable cannot be set prior to building in buildroot or the build will fail. It is best to run `source ./setup.sh` to alter your `$PATH` and set the `$RISCV` variable after buildroot has succesfully built the binaries. If you're new to buildroot, you can find the binaries in `/output/images`. -## Generating Device Tree Binaries +## Generating Device Tree Binaries The device tree files for the various FPGA's Wally supports, as well as QEMU's device tree for the virt machine, are located in the `./devicetree` subdirectory. These device tree files are necessary for the boot process. In order to build the device tree binaries (.dtb) from the device tree sources (.dts), we can build all of them at once using: @@ -30,7 +37,7 @@ The device tree files for the various FPGA's Wally supports, as well as QEMU's d The .dts files will end up in the `/output/images` folder of your chosen buildroot directory. -## Disassembling the Binaries for Debugging +## Disassembling the Binaries for Debugging By using the `riscv64-unknown-elf-objdump` utility, we can disassemble the binaries in `/output/images` so that we can explore the resulting machine code instructions and see what assembly or C code the instructions came from, along with the corresponding addresses. This is useful during debugging in order to trace how code is being executed. @@ -40,6 +47,6 @@ To create the disassembled binaries, run: You'll find the resulting disassembled files in `/output/images/disassembly`. -## Creating a Bootable SD Card +## Creating a Bootable SD Card From bb8d3806d63cdce5a36e6c34944cae003b5c6d64 Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Fri, 11 Aug 2023 16:22:12 -0500 Subject: [PATCH 56/59] Cleaned up some things. --- linux/Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/linux/Makefile b/linux/Makefile index 7c85e0ee4..abbf4a51a 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -39,6 +39,7 @@ all: # TODO: Need to find a way to set the PATH for child processes. # source ../setup.sh; $(MAKE) disassemble +# Temp rule for debugging test: @echo $(OBJDUMPS) @@ -120,7 +121,4 @@ cleanDTB: rm -f $(IMAGES)/*.dtb clean: - ls $(IMAGES) - rm -rf $(IMAGES)/*.dtb rm -rf $(DIS) - ls $(IMAGES) From 63e901e981e61860f5348a111de1ee562726f7d4 Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Wed, 16 Aug 2023 12:12:31 -0500 Subject: [PATCH 57/59] Added probe script to generate a single probe for the fpga. --- fpga/probe | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100755 fpga/probe diff --git a/fpga/probe b/fpga/probe new file mode 100755 index 000000000..f95c8c2b7 --- /dev/null +++ b/fpga/probe @@ -0,0 +1,74 @@ +#!/usr/bin/python3 + +import sys + +def usage(): + print("Usage: ./probes name width probenum") + exit(1) + +def header(): + return """create_debug_core u_ila_0 ila + +set_property C_DATA_DEPTH 16384 [get_debug_cores u_ila_0] +set_property C_TRIGIN_EN false [get_debug_cores u_ila_0] +set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0] +set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0] +set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0] +set_property C_EN_STRG_QUAL false [get_debug_cores u_ila_0] +set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0] +set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0] +startgroup +set_property C_EN_STRG_QUAL true [get_debug_cores u_ila_0 ] +set_property C_ADV_TRIGGER true [get_debug_cores u_ila_0 ] +set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0 ] +set_property ALL_PROBE_SAME_MU_CNT 4 [get_debug_cores u_ila_0 ] +endgroup +connect_debug_port u_ila_0/clk [get_nets [list xlnx_ddr4_c0/inst/u_ddr4_infrastructure/addn_ui_clkout1 ]]""" + +def convertLine(x): + temp = x.split() + temp[1] = int(temp[1]) + return tuple(temp) + +def probeBits( probe ): + str = '' + + if (probe[1] > 1): + for i in range(probe[1]): + if i != (probe[1]-1): + str = str + f"{{{probe[0]}[{i}]}} " + else: + str = str + f"{{{probe[0]}[{i}]}} " + + else: + str = f'{{{probe[0]}}}' + + return str + +def printProbe( probe, i ): + bits = probeBits(probe) + + return ( + f'create_debug_port u_ila_0 probe\n' + f'set_property port_width {probe[1]} [get_debug_ports u_ila_0/probe{i}]\n' + f'set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe{i}]\n' + f'connect_debug_port u_ila_0/probe{i} [get_nets [list {bits}]]\n\n' + ) + +def main(args): + if (len(args) != 3): + usage() + + name = args[0] + width = int(args[1]) + probeNum = int(args[2]) + + + probe = (name, width) + + print(printProbe(probe, probeNum)) + +if __name__ == '__main__': + main(sys.argv[1:]) + + From c2f2bef4333fff9f0b9e2f7f559d39fa0c5162c5 Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Wed, 16 Aug 2023 12:20:08 -0500 Subject: [PATCH 58/59] Fixed bug caused by errant tab size in probe script. --- fpga/probe | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/fpga/probe b/fpga/probe index f95c8c2b7..5067a2cf6 100755 --- a/fpga/probe +++ b/fpga/probe @@ -40,19 +40,21 @@ def probeBits( probe ): else: str = str + f"{{{probe[0]}[{i}]}} " - else: - str = f'{{{probe[0]}}}' + else: + str = f'{{{probe[0]}}}' return str def printProbe( probe, i ): bits = probeBits(probe) + print(bits) + return ( - f'create_debug_port u_ila_0 probe\n' - f'set_property port_width {probe[1]} [get_debug_ports u_ila_0/probe{i}]\n' - f'set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe{i}]\n' - f'connect_debug_port u_ila_0/probe{i} [get_nets [list {bits}]]\n\n' + f'create_debug_port u_ila_0 probe\n' + f'set_property port_width {probe[1]} [get_debug_ports u_ila_0/probe{i}]\n' + f'set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe{i}]\n' + f'connect_debug_port u_ila_0/probe{i} [get_nets [list {bits}]]\n\n' ) def main(args): From f91157fc959ff33396eb020d2e537a7a44eb0d33 Mon Sep 17 00:00:00 2001 From: Jacob Pease Date: Wed, 16 Aug 2023 13:05:37 -0500 Subject: [PATCH 59/59] Added SPDX header to probe script. --- fpga/probe | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/fpga/probe b/fpga/probe index 5067a2cf6..21e5d8240 100755 --- a/fpga/probe +++ b/fpga/probe @@ -1,4 +1,28 @@ #!/usr/bin/python3 +########################################### +## probe.sh +## +## Written: Jacob Pease jacobpease@protonmail.com +## Created: 16 August 2023 +## Modified: 16 August 2023 +## +## A component of the CORE-V-WALLY configurable RISC-V project. +## +## Copyright (C) 2021-23 Harvey Mudd College & Oklahoma State University +## +## SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1 +## +## Licensed under the Solderpad Hardware License v 2.1 (the “License”); you may not use this file +## except in compliance with the License, or, at your option, the Apache License version 2.0. You +## may obtain a copy of the License at +## +## https:##solderpad.org#licenses#SHL-2.1# +## +## Unless required by applicable law or agreed to in writing, any work distributed under the +## License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +## either express or implied. See the License for the specific language governing permissions +## and limitations under the License. +################################################################################################ import sys @@ -6,25 +30,6 @@ def usage(): print("Usage: ./probes name width probenum") exit(1) -def header(): - return """create_debug_core u_ila_0 ila - -set_property C_DATA_DEPTH 16384 [get_debug_cores u_ila_0] -set_property C_TRIGIN_EN false [get_debug_cores u_ila_0] -set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0] -set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0] -set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0] -set_property C_EN_STRG_QUAL false [get_debug_cores u_ila_0] -set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0] -set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0] -startgroup -set_property C_EN_STRG_QUAL true [get_debug_cores u_ila_0 ] -set_property C_ADV_TRIGGER true [get_debug_cores u_ila_0 ] -set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0 ] -set_property ALL_PROBE_SAME_MU_CNT 4 [get_debug_cores u_ila_0 ] -endgroup -connect_debug_port u_ila_0/clk [get_nets [list xlnx_ddr4_c0/inst/u_ddr4_infrastructure/addn_ui_clkout1 ]]""" - def convertLine(x): temp = x.split() temp[1] = int(temp[1])