diff --git a/.gitmodules b/.gitmodules index 21aa4e7d57437acffa8a84786621f5640a68077d..968fe3882123a1162f24f54356b604743faed026 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,6 @@ [submodule "nanosoc/synopsys_28nm_slm_integration"] path = nanosoc/synopsys_28nm_slm_integration url = https://git.soton.ac.uk/soclabs/synopsys_28nm_slm_integration.git +[submodule "nanosoc/ahb_qspi"] + path = nanosoc/ahb_qspi + url = https://git.soton.ac.uk/soclabs/ahb_qspi.git diff --git a/flist/nanosoc.flist b/flist/nanosoc.flist index 56ca5e4252e23972781828a332a65eabec8bc30a..3f8e75373f835945381994cd97d59e6faaff30ef 100644 --- a/flist/nanosoc.flist +++ b/flist/nanosoc.flist @@ -39,3 +39,6 @@ $(SOCLABS_NANOSOC_TECH_DIR)/extio8x4-axis/rtl/extio8x4_sync.v // DMAC IP (better included at top level configuration) //-f $(SOCLABS_SLDMA350_TECH_DIR)/flist/sldma350_ahb.flist //-f $(SOCLABS_SLDMA230_TECH_DIR)/flist/sldma230_ip.flist + +// AHB QSPI +-f $(SOCLABS_AHB_QSPI_DIR)/flist/Top/ahb_QSPI.flist diff --git a/flist/nanosoc_FPGA.flist b/flist/nanosoc_FPGA.flist index 3d54da0e5c88a029483dfd14bf64b5439ed4476a..aed3f5d8961fca8c8c6f5c181400ad2cdae832b7 100644 --- a/flist/nanosoc_FPGA.flist +++ b/flist/nanosoc_FPGA.flist @@ -37,3 +37,8 @@ $(SOCLABS_NANOSOC_TECH_DIR)/extio8x4-axis/rtl/extio8x4_sync.v // DMAC IP (better included at top level configuration) //-f $(SOCLABS_SLDMA350_TECH_DIR)/flist/sldma350_ahb.flist //-f $(SOCLABS_SLDMA230_TECH_DIR)/flist/sldma230_ip.flist + +// AHB QSPI +-f $(SOCLABS_AHB_QSPI_DIR)/flist/Top/ahb_QSPI.flist +$(SOCLABS_AHB_QSPI_DIR)/logical/cache_models/generic/cache_ram.v +$(ARM_IP_LIBRARY_PATH)/CG092/CG092-BU-50000-r2p0-00rel0/p_flash_cache_f0/logical/testbench/execution_tb/verilog/p_flash_cache_f0_sp_ram.v diff --git a/flist/nanosoc_ip.flist b/flist/nanosoc_ip.flist index fc6b47ca1746d05c03ee756a10b9e798ba39c7d9..b58920d32f80b490806f361afd6319ce61856887 100644 --- a/flist/nanosoc_ip.flist +++ b/flist/nanosoc_ip.flist @@ -42,6 +42,7 @@ $(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_regions/bootrom_0/verilog/nanosoc_re // NanoSoC Regions - CPU Memories $(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_regions/dmem_0/verilog/nanosoc_region_dmem_0.v $(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_regions/imem_0/verilog/nanosoc_region_imem_0.v +$(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_regions/flash_0/verilog/nanosoc_region_flash_0.v // NanoSoC Regions - Expansion Regions $(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_regions/exp/verilog/nanosoc_region_exp.v @@ -54,6 +55,7 @@ $(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_sysctr $(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_sysio_apb_ss.v $(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_sysio_adc_ss.v $(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_sysio_decode.v +$(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_qspi_apb_ss.v // NanoSoC Regions - SysTable Region $(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_regions/systable/verilog/nanosoc_coresight_systable.v diff --git a/flist/nanosoc_qs.flist b/flist/nanosoc_qs.flist index bd1f5ceafb842e22c9c08b79c39c92bfbbcf49db..e66af1bfca332955031733a01ada8f1206cf771f 100644 --- a/flist/nanosoc_qs.flist +++ b/flist/nanosoc_qs.flist @@ -33,3 +33,6 @@ $(SOCLABS_NANOSOC_TECH_DIR)/extio8x4-axis/rtl/extio8x4_sync.v // Debug IP -f $(SOCLABS_SOCDEBUG_TECH_DIR)/flist/socdebug.flist + +// AHB QSPI +-f $(SOCLABS_AHB_QSPI_DIR)/flist/Top/ahb_QSPI.flist diff --git a/flist/nanosoc_vip.flist b/flist/nanosoc_vip.flist index f610d0842edee329fa343f985a938e2f6f2a684d..74d9fed87d750095000828f7e365a8d893cdc888 100644 --- a/flist/nanosoc_vip.flist +++ b/flist/nanosoc_vip.flist @@ -29,3 +29,9 @@ $(SOCLABS_NANOSOC_TECH_DIR)/verif/trace/verilog/nanosoc_ft1248x1_track.v $(SOCLABS_NANOSOC_TECH_DIR)/verif/trace/verilog/nanosoc_dma_log_to_file.v $(SOCLABS_NANOSOC_TECH_DIR)/verif/trace/verilog/nanosoc_accelerator_ss_logger.v $(SOCLABS_NANOSOC_TECH_DIR)/verif/trace/verilog/nanosoc_axi_stream_io_8_txd_from_datafile.v + +// AHB Qspi Components +-f $(SOCLABS_AHB_QSPI_DIR)/flist/VIP/ahb_QSPI_VIP.flist + +$(SOCLABS_AHB_QSPI_DIR)/logical/cache_models/generic/cache_ram.v +$(ARM_IP_LIBRARY_PATH)/CG092/CG092-BU-50000-r2p0-00rel0/p_flash_cache_f0/logical/testbench/execution_tb/verilog/p_flash_cache_f0_sp_ram.v diff --git a/flows/makefile.regression b/flows/makefile.regression index d62b6e5bdad2e1ca44682c473044a612cbdece3d..3fd923929d47262bcd99ce017a256d16edd065a7 100644 --- a/flows/makefile.regression +++ b/flows/makefile.regression @@ -13,7 +13,7 @@ PARALLEL_TESTS = 4 # Regression Simulation Timeout -TIMEOUT = 40m +TIMEOUT = 60m # Create a Directory to Run a Regression in $(eval REGRESSION_NAME =$(shell date +%Y_%m_%d_%H_%M_%S)) diff --git a/flows/makefile.software b/flows/makefile.software index 6447521c6a963883c99a663445dde4adb780ed02..2fda512cfe5e57d180691d82455826cabaa11e4b 100644 --- a/flows/makefile.software +++ b/flows/makefile.software @@ -23,7 +23,7 @@ SW_MAKE_OPTIONS = CPU_PRODUCT=CORTEX_M0 TOOL_CHAIN=$(TOOL_CHAIN) # Bootrom Parameters: # Boot Loader image BOOTLOADER ?= bootloader -BOOTROM_ADDRW ?= 8 +BOOTROM_ADDRW ?= 9 BOOTROM_HEX ?= $(SOCLABS_NANOSOC_TECH_DIR)/testcodes/bootloader/$(BOOTLOADER).hex BOOTROM_BUILD_DIR ?= $(SOCLABS_PROJECT_DIR)/system/src/bootrom diff --git a/fpga/targets/pynq_z2/fpga_pinmap.xdc b/fpga/targets/pynq_z2/fpga_pinmap.xdc index 1dc9791544de0f085c0feb2d0424d88c2ca81946..3eda9ded20ad541004c76051f52140c8eb889179 100644 --- a/fpga/targets/pynq_z2/fpga_pinmap.xdc +++ b/fpga/targets/pynq_z2/fpga_pinmap.xdc @@ -32,4 +32,12 @@ set_property PULLUP true [get_ports PMOD0_5] set_property PULLUP true [get_ports PMOD0_6] set_property PULLUP true [get_ports PMOD0_7] +set_property -dict {PACKAGE_PIN W14 IOSTANDARD LVCMOS33} [get_ports QSPI_nCS_0] +set_property -dict {PACKAGE_PIN Y14 IOSTANDARD LVCMOS33} [get_ports {QSPI_IO_0[0]}] +set_property -dict {PACKAGE_PIN T11 IOSTANDARD LVCMOS33} [get_ports {QSPI_IO_0[1]}] +set_property -dict {PACKAGE_PIN T10 IOSTANDARD LVCMOS33} [get_ports QSPI_SCLK_0] +set_property -dict { PACKAGE_PIN W16 IOSTANDARD LVCMOS33 } [get_ports RESET]; +set_property -dict {PACKAGE_PIN V12 IOSTANDARD LVCMOS33} [get_ports {QSPI_IO_0[2]}] +set_property -dict {PACKAGE_PIN W13 IOSTANDARD LVCMOS33} [get_ports {QSPI_IO_0[3]}] + ##set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets PMOD0_7_IBUF] diff --git a/fpga/targets/pynq_z2/nanosoc_design_wrapper.v b/fpga/targets/pynq_z2/nanosoc_design_wrapper.v index 742a7c14b6cca8eaa83c2ef241cce1c3c879f8bf..61966656f651c44cff01c23c1e0a0669c1201b66 100644 --- a/fpga/targets/pynq_z2/nanosoc_design_wrapper.v +++ b/fpga/targets/pynq_z2/nanosoc_design_wrapper.v @@ -17,7 +17,11 @@ module nanosoc_design_wrapper PMOD0_4, PMOD0_5, PMOD0_6, - PMOD0_7 + PMOD0_7, + + QSPI_IO_0, + QSPI_SCLK_0, + QSPI_nCS_0 ); // PMOD1_0, // PMOD1_1, @@ -38,14 +42,10 @@ module nanosoc_design_wrapper inout wire PMOD0_5; inout wire PMOD0_6; inout wire PMOD0_7; -// inout wire PMOD1_0; -// inout wire PMOD1_1; -// inout wire PMOD1_2; -// inout wire PMOD1_3; -// inout wire PMOD1_4; -// inout wire PMOD1_5; -// inout wire PMOD1_6; -// inout wire PMOD1_7; + + inout wire [3:0] QSPI_IO_0; + output wire QSPI_SCLK_0; + output wire QSPI_nCS_0; // input wire [3:0]dip_switch_4bits_tri_i; // output wire [3:0]led_4bits_tri_o; @@ -94,10 +94,60 @@ module nanosoc_design_wrapper // assign PMOD1_6 = PMOD1_tri_z[6] ? 1'bz : PMOD1_tri_o[6]; // assign PMOD1_7 = PMOD1_tri_z[7] ? 1'bz : PMOD1_tri_o[7]; + wire [3:0] qspi_io_i; + wire [3:0] qspi_io_o; + wire [3:0] qspi_io_e; + wire qspi_sclk; + wire qspi_ncs; + + + IOBUF QSPI_io0_iobuf( + .I(qspi_io_o[0]), + .IO(QSPI_IO_0[0]), + .O(qspi_io_i[0]), + .T(~qspi_io_e[0]) + ); + IOBUF QSPI_io1_iobuf( + .I(qspi_io_o[1]), + .IO(QSPI_IO_0[1]), + .O(qspi_io_i[1]), + .T(~qspi_io_e[1]) + ); + IOBUF QSPI_io2_iobuf( + .I(qspi_io_o[2]), + .IO(QSPI_IO_0[2]), + .O(qspi_io_i[2]), + .T(~qspi_io_e[2]) + ); + IOBUF QSPI_io3_iobuf( + .I(qspi_io_o[3]), + .IO(QSPI_IO_0[3]), + .O(qspi_io_i[3]), + .T(~qspi_io_e[3]) + ); + IOBUF QSPI_sclk_iobuf( + .I(qspi_sclk), + .IO(QSPI_SCLK_0), + .O(), + .T(1'b0) + ); + IOBUF QSPI_ncs_iobuf( + .I(qspi_ncs), + .IO(QSPI_nCS_0), + .O(), + .T(1'b0) + ); + + nanosoc_design nanosoc_design_i (.pmoda_tri_i(PMOD0_tri_i), .pmoda_tri_o(PMOD0_tri_o), - .pmoda_tri_z(PMOD0_tri_z)//, + .pmoda_tri_z(PMOD0_tri_z), + .qspi_io_i_0(qspi_io_i), + .qspi_io_o_0(qspi_io_o), + .qspi_io_e_0(qspi_io_e), + .qspi_sclk_0(qspi_sclk), + .qspi_ncs_0(qspi_ncs) // .PMOD1_tri_i(PMOD1_tri_i), // .PMOD1_tri_o(PMOD1_tri_o), // .PMOD1_tri_z(PMOD1_tri_z), diff --git a/fpga/targets/pynq_z2/vivado_script/2021_1/nanosoc_design.tcl b/fpga/targets/pynq_z2/vivado_script/2021_1/nanosoc_design.tcl index 5b6771df2525f2742951c304a0c719378bfee601..ab841c8aa720571da45592d7c976327bd73ea48f 100644 --- a/fpga/targets/pynq_z2/vivado_script/2021_1/nanosoc_design.tcl +++ b/fpga/targets/pynq_z2/vivado_script/2021_1/nanosoc_design.tcl @@ -745,6 +745,12 @@ proc create_root_design { parentCell } { set pmoda_tri_o [ create_bd_port -dir O -from 7 -to 0 pmoda_tri_o ] set pmoda_tri_z [ create_bd_port -dir O -from 7 -to 0 pmoda_tri_z ] + set qspi_io_i_0 [ create_bd_port -dir I -from 3 -to 0 qspi_io_i_0] + set qspi_io_o_0 [ create_bd_port -dir O -from 3 -to 0 qspi_io_o_0] + set qspi_io_e_0 [ create_bd_port -dir O -from 3 -to 0 qspi_io_e_0] + set qspi_sclk_0 [ create_bd_port -dir O -from 0 -to 0 qspi_sclk_0] + set qspi_ncs_0 [ create_bd_port -dir O -from 0 -to 0 qspi_ncs_0] + # Create instance: cmsdk_socket create_hier_cell_cmsdk_socket [current_bd_instance .] cmsdk_socket @@ -864,6 +870,11 @@ proc create_root_design { parentCell } { connect_bd_net -net xlconstant_zero_dout [get_bd_pins xlconstant_zero/dout] [get_bd_pins nanosoc_chip_0/diag_mode] [get_bd_pins nanosoc_chip_0/diag_ctrl] [get_bd_pins nanosoc_chip_0/scan_mode] [get_bd_pins nanosoc_chip_0/scan_enable] [get_bd_pins nanosoc_chip_0/bist_mode] [get_bd_pins nanosoc_chip_0/bist_enable] [get_bd_pins nanosoc_chip_0/alt_mode] [get_bd_pins nanosoc_chip_0/uart_rxd_i] [get_bd_pins nanosoc_chip_0/swd_mode] [get_bd_pins nanosoc_chip_0/test_i] connect_bd_net -net xlconstant_zerox4_dout [get_bd_pins xlconstant_zerox4/dout] [get_bd_pins nanosoc_chip_0/scan_in] [get_bd_pins nanosoc_chip_0/bist_in] connect_bd_net -net zynq_ultra_ps_e_0_pl_clk0 [get_bd_pins processing_system7_0/FCLK_CLK0] [get_bd_pins cmsdk_socket/aclk] [get_bd_pins processing_system7_0/M_AXI_GP0_ACLK] [get_bd_pins nanosoc_chip_0/clk_i] + connect_bd_net -net qspi_io_i_1 [get_bd_pins nanosoc_chip_0/qspi_io_i] [get_bd_ports qspi_io_i_0] + connect_bd_net -net qspi_io_o_1 [get_bd_pins nanosoc_chip_0/qspi_io_o] [get_bd_ports qspi_io_o_0] + connect_bd_net -net qspi_io_e_1 [get_bd_pins nanosoc_chip_0/qspi_io_e] [get_bd_ports qspi_io_e_0] + connect_bd_net -net qspi_sclk_1 [get_bd_pins nanosoc_chip_0/qspi_sclk] [get_bd_ports qspi_sclk_0] + connect_bd_net -net qspi_ncs_1 [get_bd_pins nanosoc_chip_0/qspi_ncs] [get_bd_ports qspi_ncs_0] # Create address segments assign_bd_address -offset 0x41200000 -range 0x00010000 -target_address_space [get_bd_addr_spaces processing_system7_0/Data] [get_bd_addr_segs cmsdk_socket/axi_gpio_0/S_AXI/Reg] -force diff --git a/fpga/targets/pynq_zcu104/nanosoc_design_wrapper.v b/fpga/targets/pynq_zcu104/nanosoc_design_wrapper.v index 742a7c14b6cca8eaa83c2ef241cce1c3c879f8bf..19dd346f5cde0f076559953fd5f1da33b7345515 100644 --- a/fpga/targets/pynq_zcu104/nanosoc_design_wrapper.v +++ b/fpga/targets/pynq_zcu104/nanosoc_design_wrapper.v @@ -93,11 +93,23 @@ module nanosoc_design_wrapper // assign PMOD1_5 = PMOD1_tri_z[5] ? 1'bz : PMOD1_tri_o[5]; // assign PMOD1_6 = PMOD1_tri_z[6] ? 1'bz : PMOD1_tri_o[6]; // assign PMOD1_7 = PMOD1_tri_z[7] ? 1'bz : PMOD1_tri_o[7]; + wire [3:0] qspi_io_i; + wire [3:0] qspi_io_o; + wire [3:0] qspi_io_e; + wire qspi_sclk; + wire qspi_ncs; + assign qspi_io_i=4'hF; + nanosoc_design nanosoc_design_i (.pmoda_tri_i(PMOD0_tri_i), .pmoda_tri_o(PMOD0_tri_o), - .pmoda_tri_z(PMOD0_tri_z)//, + .pmoda_tri_z(PMOD0_tri_z), + .qspi_io_i_0(qspi_io_i), + .qspi_io_o_0(qspi_io_o), + .qspi_io_e_0(qspi_io_e), + .qspi_sclk_0(qspi_sclk), + .qspi_ncs_0(qspi_ncs) // .PMOD1_tri_i(PMOD1_tri_i), // .PMOD1_tri_o(PMOD1_tri_o), // .PMOD1_tri_z(PMOD1_tri_z), diff --git a/fpga/targets/pynq_zcu104/vivado_script/2021_1/nanosoc_design.tcl b/fpga/targets/pynq_zcu104/vivado_script/2021_1/nanosoc_design.tcl index e11d1a3b2d3163c7ce02f80b20c77e398e2c36be..84cf9a9c04112eecaaaf989a03d24fb1da8bb834 100644 --- a/fpga/targets/pynq_zcu104/vivado_script/2021_1/nanosoc_design.tcl +++ b/fpga/targets/pynq_zcu104/vivado_script/2021_1/nanosoc_design.tcl @@ -741,6 +741,12 @@ proc create_root_design { parentCell } { set pmoda_tri_i [ create_bd_port -dir I -from 7 -to 0 pmoda_tri_i ] set pmoda_tri_o [ create_bd_port -dir O -from 7 -to 0 pmoda_tri_o ] set pmoda_tri_z [ create_bd_port -dir O -from 7 -to 0 pmoda_tri_z ] + + set qspi_io_i_0 [ create_bd_port -dir I -from 3 -to 0 qspi_io_i_0] + set qspi_io_o_0 [ create_bd_port -dir O -from 3 -to 0 qspi_io_o_0] + set qspi_io_e_0 [ create_bd_port -dir O -from 3 -to 0 qspi_io_e_0] + set qspi_sclk_0 [ create_bd_port -dir O -from 0 -to 0 qspi_sclk_0] + set qspi_ncs_0 [ create_bd_port -dir O -from 0 -to 0 qspi_ncs_0] # Create instance: cmsdk_socket create_hier_cell_cmsdk_socket [current_bd_instance .] cmsdk_socket @@ -1788,6 +1794,11 @@ Port;FD4A0000;FD4AFFFF;1|FPD;DPDMA;FD4C0000;FD4CFFFF;1|FPD;DDR_XMPU5_CFG;FD05000 connect_bd_net -net xlconstant_zero_dout [get_bd_pins xlconstant_zero/dout] [get_bd_pins nanosoc_chip_0/diag_mode] [get_bd_pins nanosoc_chip_0/diag_ctrl] [get_bd_pins nanosoc_chip_0/scan_mode] [get_bd_pins nanosoc_chip_0/scan_enable] [get_bd_pins nanosoc_chip_0/bist_mode] [get_bd_pins nanosoc_chip_0/bist_enable] [get_bd_pins nanosoc_chip_0/alt_mode] [get_bd_pins nanosoc_chip_0/uart_rxd_i] [get_bd_pins nanosoc_chip_0/swd_mode] [get_bd_pins nanosoc_chip_0/test_i] connect_bd_net -net xlconstant_zerox4_dout [get_bd_pins xlconstant_zerox4/dout] [get_bd_pins nanosoc_chip_0/scan_in] [get_bd_pins nanosoc_chip_0/bist_in] connect_bd_net -net zynq_ultra_ps_e_0_pl_clk0 [get_bd_pins zynq_ultra_ps_e_0/pl_clk0] [get_bd_pins cmsdk_socket/aclk] [get_bd_pins nanosoc_chip_0/clk_i] [get_bd_pins zynq_ultra_ps_e_0/maxihpm0_lpd_aclk] + connect_bd_net -net qspi_io_i_1 [get_bd_pins nanosoc_chip_0/qspi_io_i] [get_bd_ports qspi_io_i_0] + connect_bd_net -net qspi_io_o_1 [get_bd_pins nanosoc_chip_0/qspi_io_o] [get_bd_ports qspi_io_o_0] + connect_bd_net -net qspi_io_e_1 [get_bd_pins nanosoc_chip_0/qspi_io_e] [get_bd_ports qspi_io_e_0] + connect_bd_net -net qspi_sclk_1 [get_bd_pins nanosoc_chip_0/qspi_sclk] [get_bd_ports qspi_sclk_0] + connect_bd_net -net qspi_ncs_1 [get_bd_pins nanosoc_chip_0/qspi_ncs] [get_bd_ports qspi_ncs_0] # Create address segments assign_bd_address -offset 0x80000000 -range 0x00010000 -target_address_space [get_bd_addr_spaces zynq_ultra_ps_e_0/Data] [get_bd_addr_segs cmsdk_socket/axi_gpio_0/S_AXI/Reg] -force diff --git a/fpga/targets/pynq_zcu104/vivado_script/2024_1/nanosoc_design.tcl b/fpga/targets/pynq_zcu104/vivado_script/2024_1/nanosoc_design.tcl index e11d1a3b2d3163c7ce02f80b20c77e398e2c36be..655abc1d3fdd1838e7ebc79382747520e2f43d20 100644 --- a/fpga/targets/pynq_zcu104/vivado_script/2024_1/nanosoc_design.tcl +++ b/fpga/targets/pynq_zcu104/vivado_script/2024_1/nanosoc_design.tcl @@ -742,6 +742,12 @@ proc create_root_design { parentCell } { set pmoda_tri_o [ create_bd_port -dir O -from 7 -to 0 pmoda_tri_o ] set pmoda_tri_z [ create_bd_port -dir O -from 7 -to 0 pmoda_tri_z ] + set qspi_io_i_0 [ create_bd_port -dir I -from 3 -to 0 qspi_io_i_0] + set qspi_io_o_0 [ create_bd_port -dir O -from 3 -to 0 qspi_io_o_0] + set qspi_io_e_0 [ create_bd_port -dir O -from 3 -to 0 qspi_io_e_0] + set qspi_sclk_0 [ create_bd_port -dir O -from 0 -to 0 qspi_sclk_0] + set qspi_ncs_0 [ create_bd_port -dir O -from 0 -to 0 qspi_ncs_0] + # Create instance: cmsdk_socket create_hier_cell_cmsdk_socket [current_bd_instance .] cmsdk_socket @@ -1788,6 +1794,11 @@ Port;FD4A0000;FD4AFFFF;1|FPD;DPDMA;FD4C0000;FD4CFFFF;1|FPD;DDR_XMPU5_CFG;FD05000 connect_bd_net -net xlconstant_zero_dout [get_bd_pins xlconstant_zero/dout] [get_bd_pins nanosoc_chip_0/diag_mode] [get_bd_pins nanosoc_chip_0/diag_ctrl] [get_bd_pins nanosoc_chip_0/scan_mode] [get_bd_pins nanosoc_chip_0/scan_enable] [get_bd_pins nanosoc_chip_0/bist_mode] [get_bd_pins nanosoc_chip_0/bist_enable] [get_bd_pins nanosoc_chip_0/alt_mode] [get_bd_pins nanosoc_chip_0/uart_rxd_i] [get_bd_pins nanosoc_chip_0/swd_mode] [get_bd_pins nanosoc_chip_0/test_i] connect_bd_net -net xlconstant_zerox4_dout [get_bd_pins xlconstant_zerox4/dout] [get_bd_pins nanosoc_chip_0/scan_in] [get_bd_pins nanosoc_chip_0/bist_in] connect_bd_net -net zynq_ultra_ps_e_0_pl_clk0 [get_bd_pins zynq_ultra_ps_e_0/pl_clk0] [get_bd_pins cmsdk_socket/aclk] [get_bd_pins nanosoc_chip_0/clk_i] [get_bd_pins zynq_ultra_ps_e_0/maxihpm0_lpd_aclk] + connect_bd_net -net qspi_io_i_1 [get_bd_pins nanosoc_chip_0/qspi_io_i] [get_bd_ports qspi_io_i_0] + connect_bd_net -net qspi_io_o_1 [get_bd_pins nanosoc_chip_0/qspi_io_o] [get_bd_ports qspi_io_o_0] + connect_bd_net -net qspi_io_e_1 [get_bd_pins nanosoc_chip_0/qspi_io_e] [get_bd_ports qspi_io_e_0] + connect_bd_net -net qspi_sclk_1 [get_bd_pins nanosoc_chip_0/qspi_sclk] [get_bd_ports qspi_sclk_0] + connect_bd_net -net qspi_ncs_1 [get_bd_pins nanosoc_chip_0/qspi_ncs] [get_bd_ports qspi_ncs_0] # Create address segments assign_bd_address -offset 0x80000000 -range 0x00010000 -target_address_space [get_bd_addr_spaces zynq_ultra_ps_e_0/Data] [get_bd_addr_segs cmsdk_socket/axi_gpio_0/S_AXI/Reg] -force diff --git a/nanosoc/ahb_qspi b/nanosoc/ahb_qspi new file mode 160000 index 0000000000000000000000000000000000000000..32f89699e9e142bfd8bd267145c8710962d8d2ca --- /dev/null +++ b/nanosoc/ahb_qspi @@ -0,0 +1 @@ +Subproject commit 32f89699e9e142bfd8bd267145c8710962d8d2ca diff --git a/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v b/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v index 12253d740a74707c81312d1585587d3ac1aa4eab..576eae18b21ecdf401cbc597bf88c894c947cfd7 100644 --- a/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v +++ b/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v @@ -51,7 +51,15 @@ module nanosoc_chip #( output wire swdio_o, output wire swdio_e, output wire swdio_z, - input wire swdclk_i // alternate test scan enable + input wire swdclk_i, // alternate test scan enable + + // QSPI + output wire qspi_sclk, + output wire qspi_ncs, + output wire [3:0] qspi_io_o, + input wire [3:0] qspi_io_i, + output wire [3:0] qspi_io_e + ); //-------------------------- @@ -166,7 +174,14 @@ module nanosoc_chip #( .P0_OUTEN(P0_OUTEN), .P1_IN(P1_IN), //_MUX), .P1_OUT(P1_OUT), - .P1_OUTEN(P1_OUTEN) + .P1_OUTEN(P1_OUTEN), + + .QSPI_SCLK(qspi_sclk), + .QSPI_nCS(qspi_ncs), + .QSPI_IO_o(qspi_io_o), + .QSPI_IO_i(qspi_io_i), + .QSPI_IO_e(qspi_io_e) + ); endmodule diff --git a/nanosoc/nanosoc_chip/pads/glib/verilog/nanosoc_chip_pads.v b/nanosoc/nanosoc_chip/pads/glib/verilog/nanosoc_chip_pads.v index e90a05005a4fd6c416c9ba88abc24b992e0e2758..21d8a1f8be947122f3c770bfe2ae4b79c616c352 100644 --- a/nanosoc/nanosoc_chip/pads/glib/verilog/nanosoc_chip_pads.v +++ b/nanosoc/nanosoc_chip/pads/glib/verilog/nanosoc_chip_pads.v @@ -51,7 +51,11 @@ module nanosoc_chip_pads ( inout wire [15:0] P0, inout wire [15:0] P1, inout wire SWDIO, - inout wire SWDCK); + inout wire SWDCK, + inout wire [3:0] QSPI_IO, + output wire QSPI_SCLK, + output wire QSPI_nCS +); //------------------------------------ @@ -75,6 +79,12 @@ wire [15:0] pad_gpio_port1_i ; wire [15:0] pad_gpio_port1_o ; wire [15:0] pad_gpio_port1_e ; wire [15:0] pad_gpio_port1_z ; +wire pad_qspi_sclk; +wire pad_qspi_ncs; +wire [3:0] pad_qspi_io_o; +wire [3:0] pad_qspi_io_i; +wire [3:0] pad_qspi_io_e; + wire soc_nreset; wire soc_diag_mode; wire soc_diag_ctrl; @@ -217,7 +227,12 @@ nanosoc_chip_cfg #( .swdio_o (soc_swd_dio_o), .swdio_e (soc_swd_dio_e), .swdio_z (soc_swd_dio_z), - .swdclk_i (pad_swdclk_i) + .swdclk_i (pad_swdclk_i), + .qspi_sclk (pad_qspi_sclk), + .qspi_ncs (pad_qspi_ncs), + .qspi_io_o (pad_qspi_io_o), + .qspi_io_i (pad_qspi_io_i), + .qspi_io_e (pad_qspi_io_e) ); @@ -296,6 +311,50 @@ PAD_INOUT8MA_NOE uPAD_SWDCK_I ( .NOE (tiehi) ); +PAD_INOUT8MA_NOE uPAD_QSPI_SCLK_o ( + .PAD (QSPI_SCLK), + .O (pad_qspi_sclk), + .I (), + .NOE (tielo) + ); + +PAD_INOUT8MA_NOE uPAD_QSPI_nCS_o ( + .PAD (QSPI_nCS), + .O (pad_qspi_ncs), + .I (), + .NOE (tielo) + ); + + +// QSPI IO +PAD_INOUT8MA_NOE uPAD_QSPI_IO_0 ( + .PAD (QSPI_IO[0]), + .O (pad_qspi_io_o[0]), + .I (pad_qspi_io_i[0]), + .NOE (~pad_qspi_io_e[0]) + ); +PAD_INOUT8MA_NOE uPAD_QSPI_IO_1 ( + .PAD (QSPI_IO[1]), + .O (pad_qspi_io_o[1]), + .I (pad_qspi_io_i[1]), + .NOE (~pad_qspi_io_e[1]) + ); + +PAD_INOUT8MA_NOE uPAD_QSPI_IO_2 ( + .PAD (QSPI_IO[2]), + .O (pad_qspi_io_o[2]), + .I (pad_qspi_io_i[2]), + .NOE (~pad_qspi_io_e[2]) + ); + +PAD_INOUT8MA_NOE uPAD_QSPI_IO_3 ( + .PAD (QSPI_IO[3]), + .O (pad_qspi_io_o[3]), + .I (pad_qspi_io_i[3]), + .NOE (~pad_qspi_io_e[3]) + ); + + // GPI.I Port 0 x 16 PAD_INOUT8MA_NOE uPAD_P0_00 ( diff --git a/nanosoc/nanosoc_regions/flash_0/verilog/nanosoc_region_flash_0.v b/nanosoc/nanosoc_regions/flash_0/verilog/nanosoc_region_flash_0.v new file mode 100644 index 0000000000000000000000000000000000000000..26c3f85e77520858f418343e89a4c5ee381d306c --- /dev/null +++ b/nanosoc/nanosoc_regions/flash_0/verilog/nanosoc_region_flash_0.v @@ -0,0 +1,98 @@ +//----------------------------------------------------------------------------- +// Nanosoc CPU Instruction Memory Region (IMEM) - SRAM +// - Region Mapped to: 0x20000000-0x2fffffff +// - Memory Exhibits Wrapping Behaviour +// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. +// +// Contributors +// +// David Mapstone (d.a.mapstone@soton.ac.uk) +// +// Copyright 2021-3, SoC Labs (www.soclabs.org) +//----------------------------------------------------------------------------- + +module nanosoc_region_flash_0 #( + parameter SYS_ADDR_W = 32, // System Address Width + parameter SYS_DATA_W = 32 // System Data Width +)( + input wire HCLK, + input wire HRESETn, + input wire PCLK, + input wire PRESETn, + input wire SYS_RESETn, + // AHB connection to Initiator + input wire HSEL, + input wire [SYS_ADDR_W-1:0] HADDR, + input wire [1:0] HTRANS, + input wire [2:0] HSIZE, + input wire [3:0] HPROT, + input wire HWRITE, + input wire HREADY, + input wire [SYS_DATA_W-1:0] HWDATA, + + output wire HREADYOUT, + output wire HRESP, + output wire [SYS_DATA_W-1:0] HRDATA, + + // APB Signals + input wire [15:0] PADDR, + input wire [2:0] PPROT, + input wire PSEL, + input wire PENABLE, + input wire PWRITE, + input wire [31:0] PWDATA, + input wire [3:0] PSTRB, + output wire [31:0] PRDATA, + output wire PREADY, + output wire PSLVERR, + + // QSPI Signals + output wire QSPI_SCLK, + output wire QSPI_nCS, + output wire [3:0] QSPI_IO_o, + input wire [3:0] QSPI_IO_i, + output wire [3:0] QSPI_IO_e + +); + + top_ahb_qspi #( + .ADDR_W(SYS_ADDR_W), + .DATA_W(SYS_DATA_W) + ) u_imem_qspi ( + .HCLK(HCLK), + .HRESETn(SYS_RESETn), + .PCLK(PCLK), + .PRESETn(SYS_RESETn), + + .HADDR(HADDR), + .HTRANS(HTRANS), + .HWRITE(HWRITE), + .HSIZE(HSIZE), + .HBURST(3'b000), + .HPROT(HPROT), + .HWDATA(HWDATA), + .HSELx(HSEL), + .HRDATA(HRDATA), + .HREADY(HREADY), + .HREADYOUT(HREADYOUT), + .HRESP(HRESP), + + .PADDR(PADDR), + .PPROT(PPROT), + .PSEL(PSEL), + .PENABLE(PENABLE), + .PWRITE(PWRITE), + .PWDATA(PWDATA), + .PSTRB(PSTRB), + .PRDATA(PRDATA), + .PREADY(PREADY), + .PSLVERR(PSLVERR), + + .QSPI_SCLK(QSPI_SCLK), + .QSPI_nCS(QSPI_nCS), + .QSPI_IO_o(QSPI_IO_o), + .QSPI_IO_i(QSPI_IO_i), + .QSPI_IO_e(QSPI_IO_e) + ); + +endmodule diff --git a/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_qspi_apb_ss.v b/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_qspi_apb_ss.v new file mode 100644 index 0000000000000000000000000000000000000000..8fc3862707533dcc6ad89219a3277f2ac4a75d0d --- /dev/null +++ b/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_qspi_apb_ss.v @@ -0,0 +1,177 @@ +//----------------------------------------------------------------------------- +// NanoSoC APB Subsystem adapted from Arm CMSDK APB Subsystem +// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. +// +// Contributors +// +// David Flynn (d.w.flynn@soton.ac.uk) +// +// Copyright � 2021-3, SoC Labs (www.soclabs.org) +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +// The confidential and proprietary information contained in this file may +// only be used by a person authorised under and to the extent permitted +// by a subsisting licensing agreement from Arm Limited or its affiliates. +// +// (C) COPYRIGHT 2010-2011 Arm Limited or its affiliates. +// ALL RIGHTS RESERVED +// +// This entire notice must be reproduced on all copies of this file +// and copies of this file may only be made by a person if such person is +// permitted to do so under the terms of a subsisting license agreement +// from Arm Limited or its affiliates. +// +// SVN Information +// +// Checked In : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $ +// +// Revision : $Revision: 371321 $ +// +// Release Information : Cortex-M System Design Kit-r1p1-00rel0 +// +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +// Abstract : APB sub system +//----------------------------------------------------------------------------- +module nanosoc_qspi_apb_ss #( + // Big endian - Add additional endian conversion logic to support big endian. + // (for ARM internal testing and evaluation of the processor in + // big endian configuration). + // 0 = little endian, 1 = big endian + // + // The example systems including this APB subsystem are designed as + // little endian. Most of the peripherals and memory system are + // little endian. This parameter is introduced to allows ARM to + // perform system level tests to verified behaviour of bus + // components in big endian configuration, and to allow designers + // to evaluate the processor in big endian configuration. + // + // Use of this parameter is not recommended for actual product + // development as this adds extra hardware. For big endian systems + // ideally the peripherals should be modified to use a big endian + // programmer's model. + parameter BE = 0) + ( +// -------------------------------------------------------------------------- +// Port Definitions +// -------------------------------------------------------------------------- + // AHB interface for AHB to APB bridge + + input wire HCLK, + input wire HRESETn, + + input wire HSEL, + input wire [15:0] HADDR, + input wire [1:0] HTRANS, + input wire HWRITE, + input wire [2:0] HSIZE, + input wire [3:0] HPROT, + input wire HREADY, + input wire [31:0] HWDATA, + output wire HREADYOUT, + output wire [31:0] HRDATA, + output wire HRESP, + + input wire PCLK, // Peripheral clock + input wire PCLKG, // Gate PCLK for bus interface only + input wire PCLKEN, // Clock divider for AHB to APB bridge + input wire PRESETn, // APB reset + + // APB Signals + input wire [15:0] PADDR, + input wire [2:0] PPROT, + input wire PSEL, + input wire PENABLE, + input wire PWRITE, + input wire [31:0] PWDATA, + input wire [3:0] PSTRB, + output wire [31:0] PRDATA, + output wire PREADY, + output wire PSLVERR, + + output wire APBACTIVE +); + + // -------------------------------------------------------------------------- + // Internal wires + // -------------------------------------------------------------------------- + + // endian handling + wire bigendian; + assign bigendian = (BE!=0) ? 1'b1 : 1'b0; + + wire [31:0] hwdata_le; // Little endian write data + wire [31:0] hrdata_le; // Little endian read data + wire reg_be_swap_ctrl_en = HSEL & HTRANS[1] & HREADY & bigendian; + reg [1:0] reg_be_swap_ctrl; // registered byte swap control + wire [1:0] nxt_be_swap_ctrl; // next state of byte swap control + + assign nxt_be_swap_ctrl[1] = bigendian & (HSIZE[1:0]==2'b10); // Swap upper and lower half word + assign nxt_be_swap_ctrl[0] = bigendian & (HSIZE[1:0]!=2'b00); // Swap byte within hafword + + // Register byte swap control for data phase + always @(posedge HCLK or negedge HRESETn) + begin + if (~HRESETn) + reg_be_swap_ctrl <= 2'b00; + else if (reg_be_swap_ctrl_en) + reg_be_swap_ctrl <= nxt_be_swap_ctrl; + end + + // swap byte within half word + wire [31:0] hwdata_mux_1 = (reg_be_swap_ctrl[0] & bigendian) ? + {HWDATA[23:16],HWDATA[31:24],HWDATA[7:0],HWDATA[15:8]}: + {HWDATA[31:24],HWDATA[23:16],HWDATA[15:8],HWDATA[7:0]}; + // swap lower and upper half word + assign hwdata_le = (reg_be_swap_ctrl[1] & bigendian) ? + {hwdata_mux_1[15: 0],hwdata_mux_1[31:16]}: + {hwdata_mux_1[31:16],hwdata_mux_1[15:0]}; + // swap byte within half word + wire [31:0] hrdata_mux_1 = (reg_be_swap_ctrl[0] & bigendian) ? + {hrdata_le[23:16],hrdata_le[31:24],hrdata_le[ 7:0],hrdata_le[15:8]}: + {hrdata_le[31:24],hrdata_le[23:16],hrdata_le[15:8],hrdata_le[7:0]}; + // swap lower and upper half word + assign HRDATA = (reg_be_swap_ctrl[1] & bigendian) ? + {hrdata_mux_1[15: 0],hrdata_mux_1[31:16]}: + {hrdata_mux_1[31:16],hrdata_mux_1[15:0]}; + + // AHB to APB bus bridge + cmsdk_ahb_to_apb + #(.ADDRWIDTH (16), + .REGISTER_RDATA (1), + .REGISTER_WDATA (0)) + u_ahb_to_apb( + // AHB side + .HCLK (HCLK), + .HRESETn (HRESETn), + .HSEL (HSEL), + .HADDR (HADDR[15:0]), + .HTRANS (HTRANS), + .HSIZE (HSIZE), + .HPROT (HPROT), + .HWRITE (HWRITE), + .HREADY (HREADY), + .HWDATA (hwdata_le), + + .HREADYOUT(HREADYOUT), // AHB Outputs + .HRDATA (hrdata_le), + .HRESP (HRESP), + + .PADDR (PADDR[15:0]), + .PSEL (PSEL), + .PENABLE (PENABLE), + .PSTRB (PSTRB), + .PPROT (PPROT), + .PWRITE (PWRITE), + .PWDATA (PWDATA), + + .APBACTIVE(APBACTIVE), + .PCLKEN (PCLKEN), // APB clock enable signal + + .PRDATA (PRDATA), + .PREADY (PREADY), + .PSLVERR (PSLVERR) + ); + +endmodule diff --git a/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_region_sysio.v b/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_region_sysio.v index 46c146b2d2ba52fb95085460dc81ef87def5b1cd..39c9e0baa5bf23db24c024804a9c3e0ab45ed7e9 100644 --- a/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_region_sysio.v +++ b/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_region_sysio.v @@ -66,6 +66,18 @@ module nanosoc_region_sysio #( input wire exp15_pready, input wire exp15_pslverr, + // QSPI APB signals + output wire [15:0] QSPI_PADDR, + output wire [2:0] QSPI_PPROT, + output wire QSPI_PSEL, + output wire QSPI_PENABLE, + output wire QSPI_PWRITE, + output wire [31:0] QSPI_PWDATA, + output wire [3:0] QSPI_PSTRB, + input wire [31:0] QSPI_PRDATA, + input wire QSPI_PREADY, + input wire QSPI_PSLVERR, + // CPU sideband signalling output wire SYS_NMI, // watchdog_interrupt; output wire [31:0] SYS_APB_IRQ, // apbsubsys_interrupt; @@ -169,6 +181,11 @@ module nanosoc_region_sysio #( wire [SYS_DATA_W-1:0] pvtsys_hrdata; wire pvtsys_hresp; + wire qspi_hsel; // QSPI subsystem AHB interface signals + wire qspi_hreadyout; + wire [SYS_DATA_W-1:0] qspi_hrdata; + wire qspi_hresp; + // AHB address decode nanosoc_sysio_decode #( @@ -185,6 +202,7 @@ module nanosoc_region_sysio #( .gpio0_hsel (gpio0_hsel), .gpio1_hsel (gpio1_hsel), .sysctrl_hsel (sysctrl_hsel), + .qspi_hsel (qspi_hsel), `ifdef AMS_PERIPHERALS .adcsys_hsel (adcsys_hsel), `endif @@ -212,7 +230,7 @@ module nanosoc_region_sysio #( .PORT4_ENABLE (1), // Default .PORT5_ENABLE (AMS_PERIPHERAL_PORT), // ADC Region .PORT6_ENABLE (SNPS_PERIPHERAL_PORT), // Synopsys PVT monitoring region - .PORT7_ENABLE (0), + .PORT7_ENABLE (1), .PORT8_ENABLE (0), .PORT9_ENABLE (0), .DW (32) @@ -248,10 +266,10 @@ module nanosoc_region_sysio #( .HREADYOUT6 (pvtsys_hreadyout), .HRESP6 (pvtsys_hresp), .HRDATA6 (pvtsys_hrdata), - .HSEL7 (1'b0), // Input Port 7 - .HREADYOUT7 (defslv_hreadyout), - .HRESP7 (defslv_hresp), - .HRDATA7 (defslv_hrdata), + .HSEL7 (qspi_hsel), // Input Port 7 + .HREADYOUT7 (qspi_hreadyout), + .HRESP7 (qspi_hresp), + .HRDATA7 (qspi_hrdata), .HSEL8 (1'b0), // Input Port 8 .HREADYOUT8 (defslv_hreadyout), .HRESP8 (defslv_hresp), @@ -598,4 +616,37 @@ module nanosoc_region_sysio #( .PRESETn(PRESETn) // APB reset ); `endif + +nanosoc_qspi_apb_ss #(.BE(BE)) u_nanosoc_qspi_apb_ss( + .HCLK(HCLK), + .HRESETn(HRESETn), + .HSEL(qspi_hsel), + .HADDR(HADDR[15:0]), + .HTRANS(HTRANS), + .HWRITE(HWRITE), + .HSIZE(HSIZE), + .HPROT(HPROT), + .HREADY(HREADY), + .HWDATA(HWDATA), + .HREADYOUT(qspi_hreadyout), + .HRDATA(qspi_hrdata), + .HRESP(qspi_hresp), + + .PCLK(PCLK), + .PCLKG(PCLKG), + .PCLKEN(1'b1), + .PRESETn(PRESETn), + .PADDR(QSPI_PADDR), + .PPROT(QSPI_PPROT), + .PSEL(QSPI_PSEL), + .PENABLE(QSPI_PENABLE), + .PWRITE(QSPI_PWRITE), + .PWDATA(QSPI_PWDATA), + .PSTRB(QSPI_PSTRB), + .PRDATA(QSPI_PRDATA), + .PREADY(QSPI_PREADY), + .PSLVERR(QSPI_PSLVERR), + .APBACTIVE() +); + endmodule diff --git a/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_sysio_decode.v b/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_sysio_decode.v index 5cb63f01ad43dda6766228a50265b89ffa72511a..9c738fb116fdef451e4a67fb5ec6b8485d7e958a 100644 --- a/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_sysio_decode.v +++ b/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_sysio_decode.v @@ -49,7 +49,8 @@ module nanosoc_sysio_decode #( parameter BASEADDR_GPIO1 = 32'h4001_1000, // Sysctrl base address parameter BASEADDR_SYSCTRL = 32'h4001_f000, - parameter BASEADDR_ADC = 32'h4002_0000 + parameter BASEADDR_ADC = 32'h4002_0000, + parameter BASEADDR_QSPI_CTRL = 32'h4003_0000 )( // System Address input wire hsel, @@ -60,6 +61,7 @@ module nanosoc_sysio_decode #( output wire gpio0_hsel, output wire gpio1_hsel, output wire sysctrl_hsel, + output wire qspi_hsel, `ifdef AMS_PERIPHERALS output wire adcsys_hsel, `endif @@ -72,6 +74,8 @@ module nanosoc_sysio_decode #( // 0x40010000 - 0x40010FFF : AHB peripherals (GPIO0) // 0x40011000 - 0x40011FFF : AHB peripherals (GPIO1) // 0x4001F000 - 0x4001FFFF : AHB peripherals (SYS control) + // 0x40020000 - 0x4002FFFF : AMS peripherals + // 0x40030000 - // ---------------------------------------------------------- // Peripheral Selection decode logic @@ -85,6 +89,9 @@ module nanosoc_sysio_decode #( BASEADDR_GPIO1[31:12]); // 0x40011000 assign sysctrl_hsel = hsel & (haddr[31:12]== BASEADDR_SYSCTRL[31:12]); // 0x4001F000 + assign qspi_hsel = hsel & (haddr[31:16]== + BASEADDR_QSPI_CTRL[31:16]); // 0x4001F000 + `ifdef AMS_PERIPHERALS assign adcsys_hsel = hsel & (haddr[31:12]== BASEADDR_ADC[31:12]); // 0x40020000 @@ -93,12 +100,12 @@ module nanosoc_sysio_decode #( // Default slave decode logic // ---------------------------------------------------------- `ifdef AMS_PERIPHERALS - assign defslv_hsel = ~(apbsys_hsel | + assign defslv_hsel = ~(apbsys_hsel | qspi_hsel | gpio0_hsel | gpio1_hsel | sysctrl_hsel | adcsys_hsel ); `else - assign defslv_hsel = ~(apbsys_hsel | + assign defslv_hsel = ~(apbsys_hsel | qspi_hsel | gpio0_hsel | gpio1_hsel | sysctrl_hsel ); diff --git a/nanosoc/nanosoc_subsystems/cpu/verilog/nanosoc_ss_cpu.v b/nanosoc/nanosoc_subsystems/cpu/verilog/nanosoc_ss_cpu.v index c4974707404039481a6856b4fafa6055f8ba068c..98120a368df2e0438bba54fd0c7f27f7f6399fd5 100644 --- a/nanosoc/nanosoc_subsystems/cpu/verilog/nanosoc_ss_cpu.v +++ b/nanosoc/nanosoc_subsystems/cpu/verilog/nanosoc_ss_cpu.v @@ -104,7 +104,41 @@ module nanosoc_ss_cpu #( output wire [31:0] IMEM_0_HRDATA, // Read data bus output wire IMEM_0_HRESP, // Transfer response output wire IMEM_0_HREADYOUT, // AHB ready out - + + // FLASH 0 AHB Lite port + input wire FLASH_0_HSEL, // Select + input wire [31:0] FLASH_0_HADDR, // Address bus + input wire [1:0] FLASH_0_HTRANS, // Transfer type + input wire FLASH_0_HWRITE, // Transfer direction + input wire [2:0] FLASH_0_HSIZE, // Transfer size + input wire [2:0] FLASH_0_HBURST, // Burst type + input wire [3:0] FLASH_0_HPROT, // Protection control + input wire [31:0] FLASH_0_HWDATA, // Write data + input wire FLASH_0_HMASTLOCK, // Locked Sequence + input wire FLASH_0_HREADY, // HREADY feedback + output wire [31:0] FLASH_0_HRDATA, // Read data bus + output wire FLASH_0_HRESP, // Transfer response + output wire FLASH_0_HREADYOUT, // AHB ready out + + // IMEM QSPI APB Signals + input wire [15:0] QSPI_PADDR, + input wire [2:0] QSPI_PPROT, + input wire QSPI_PSEL, + input wire QSPI_PENABLE, + input wire QSPI_PWRITE, + input wire [31:0] QSPI_PWDATA, + input wire [3:0] QSPI_PSTRB, + output wire [31:0] QSPI_PRDATA, + output wire QSPI_PREADY, + output wire QSPI_PSLVERR, + + // QSPI Signals + output wire QSPI_SCLK, + output wire QSPI_nCS, + output wire [3:0] QSPI_IO_o, + input wire [3:0] QSPI_IO_i, + output wire [3:0] QSPI_IO_e, + // DMEM 0 AHB Lite port input wire DMEM_0_HSEL, // Select input wire [31:0] DMEM_0_HADDR, // Address bus @@ -261,7 +295,55 @@ module nanosoc_ss_cpu #( .HRESP(IMEM_0_HRESP), .HRDATA(IMEM_0_HRDATA) ); - + // ----------------------------------------------- + // CPU 0 Instruction Memory (FLASH) Region Instantiation + // ----------------------------------------------- + nanosoc_region_flash_0 #( + .SYS_ADDR_W (SYS_ADDR_W), + .SYS_DATA_W (SYS_DATA_W) + ) u_region_flash_0 ( + // Clock and Reset + .HCLK(SYS_HCLK), + .HRESETn(SYS_HRESETn), + .PCLK(SYS_HCLK), + .PRESETn(SYS_HRESETn), + + .SYS_RESETn(SYS_SYSRESETn), + // AHB connection to Initiator + .HSEL(FLASH_0_HSEL), + .HADDR(FLASH_0_HADDR), + .HTRANS(FLASH_0_HTRANS), + .HSIZE(FLASH_0_HSIZE), + .HPROT(FLASH_0_HPROT), + .HWRITE(FLASH_0_HWRITE), + .HREADY(FLASH_0_HREADY), + .HWDATA(FLASH_0_HWDATA), + + // Outputs + .HREADYOUT(FLASH_0_HREADYOUT), + .HRESP(FLASH_0_HRESP), + .HRDATA(FLASH_0_HRDATA), + + // APB + .PADDR(QSPI_PADDR), + .PPROT(QSPI_PPROT), + .PSEL(QSPI_PSEL), + .PENABLE(QSPI_PENABLE), + .PWRITE(QSPI_PWRITE), + .PWDATA(QSPI_PWDATA), + .PSTRB(QSPI_PSTRB), + .PRDATA(QSPI_PRDATA), + .PREADY(QSPI_PREADY), + .PSLVERR(QSPI_PSLVERR), + + // QSPI Signals + .QSPI_SCLK(QSPI_SCLK), + .QSPI_nCS(QSPI_nCS), + .QSPI_IO_o(QSPI_IO_o), + .QSPI_IO_i(QSPI_IO_i), + .QSPI_IO_e(QSPI_IO_e) + ); + // --------------------------------------- // CPU 0 Data Memory Region Instantiation // --------------------------------------- @@ -290,6 +372,6 @@ module nanosoc_ss_cpu #( .HRESP(DMEM_0_HRESP), .HRDATA(DMEM_0_HRDATA) ); - - -endmodule \ No newline at end of file + + +endmodule diff --git a/nanosoc/nanosoc_subsystems/systemctrl/verilog/nanosoc_ss_systemctrl.v b/nanosoc/nanosoc_subsystems/systemctrl/verilog/nanosoc_ss_systemctrl.v index 2796e1e9e04cb533c38187bab5a640be4f5b025a..343ca69f37fcac82ee33b4b83f71832475757936 100644 --- a/nanosoc/nanosoc_subsystems/systemctrl/verilog/nanosoc_ss_systemctrl.v +++ b/nanosoc/nanosoc_subsystems/systemctrl/verilog/nanosoc_ss_systemctrl.v @@ -67,6 +67,18 @@ module nanosoc_ss_systemctrl #( output wire SYSTABLE_HRESP, // AHB response output wire SYSTABLE_HREADYOUT, // AHB ready out + // QSPI APB signals + output wire [15:0] QSPI_PADDR, + output wire [2:0] QSPI_PPROT, + output wire QSPI_PSEL, + output wire QSPI_PENABLE, + output wire QSPI_PWRITE, + output wire [31:0] QSPI_PWDATA, + output wire [3:0] QSPI_PSTRB, + input wire [31:0] QSPI_PRDATA, + input wire QSPI_PREADY, + input wire QSPI_PSLVERR, + // APB clocking control output wire SYS_PCLK, // Peripheral clock output wire SYS_PCLKG, // Gated Peripheral bus clock @@ -308,6 +320,18 @@ module nanosoc_ss_systemctrl #( .exp15_pready(DMAC_0_PREADY), .exp15_pslverr(DMAC_0_PSLVERR), + // QSPI APB interface + .QSPI_PADDR(QSPI_PADDR), + .QSPI_PPROT(QSPI_PPROT), + .QSPI_PSEL(QSPI_PSEL), + .QSPI_PENABLE(QSPI_PENABLE), + .QSPI_PWRITE(QSPI_PWRITE), + .QSPI_PWDATA(QSPI_PWDATA), + .QSPI_PSTRB(QSPI_PSTRB), + .QSPI_PRDATA(QSPI_PRDATA), + .QSPI_PREADY(QSPI_PREADY), + .QSPI_PSLVERR(QSPI_PSLVERR), + // CPU sideband signaling .SYS_NMI(SYS_NMI), .SYS_APB_IRQ(SYS_APB_IRQ), diff --git a/nanosoc/nanosoc_system/verilog/nanosoc_system.v b/nanosoc/nanosoc_system/verilog/nanosoc_system.v index 05751f4b05ce7a59253092226a2907c97c8926cc..ced6aa7d7ceac8873ac13021d773cf0458e32480 100644 --- a/nanosoc/nanosoc_system/verilog/nanosoc_system.v +++ b/nanosoc/nanosoc_system/verilog/nanosoc_system.v @@ -22,7 +22,7 @@ module nanosoc_system #( parameter APB_DATA_W = 32, // APB Peripheral Data Width // Bootrom 0 Parameters - parameter BOOTROM_ADDR_W = 10, // Size of Bootrom (Based on Address Width) - Default 1KB + parameter BOOTROM_ADDR_W = 11, // Size of Bootrom (Based on Address Width) - Default 2KB // IMEM 0 Parameters parameter IMEM_RAM_ADDR_W = 14, // Width of IMEM RAM Address - Default 16KB @@ -98,7 +98,14 @@ module nanosoc_system #( output wire [15:0] P0_OUTEN, // GPIO 0 output enables input wire [15:0] P1_IN, // GPIO 1 inputs output wire [15:0] P1_OUT, // GPIO 1 outputs - output wire [15:0] P1_OUTEN // GPIO 1 output enables + output wire [15:0] P1_OUTEN, // GPIO 1 output enables + + // QSPI + output wire QSPI_SCLK, + output wire QSPI_nCS, + output wire [3:0] QSPI_IO_o, + input wire [3:0] QSPI_IO_i, + output wire [3:0] QSPI_IO_e ); // system General purpose I/O ports - before NANOSOC specific mappings @@ -268,7 +275,20 @@ module nanosoc_system #( wire CPU_0_SLEEPING; // Processor status - sleeping wire CPU_0_SLEEPDEEP; // Processor status - deep sleep - + + // QSPI APB port for FLASH + wire [15:0] QSPI_PADDR; + wire [2:0] QSPI_PPROT; + wire QSPI_PSEL; + wire QSPI_PENABLE; + wire QSPI_PWRITE; + wire [31:0] QSPI_PWDATA; + wire [3:0] QSPI_PSTRB; + wire [31:0] QSPI_PRDATA; + wire QSPI_PREADY; + wire QSPI_PSLVERR; + + // Interrupt Wiring //-------------------------- assign CPU_0_NMI = SYS_NMI; @@ -277,10 +297,6 @@ module nanosoc_system #( //-------------------------- assign CPU_0_PMUENABLE = SYS_PMUENABLE; -// QSPI ROM controller here, plus APB control port - assign EXTROM_0_HRDATA[31:0] = 32'hEEEEEEEE; // Read data bus - assign EXTROM_0_HREADYOUT = 1'b1; // HREADY tied off always ready - assign EXTROM_0_HRESP = 1'b0; // Transfer response no error // Instantiate Subsystem //-------------------------- @@ -367,7 +383,41 @@ module nanosoc_system #( .IMEM_0_HREADY(IMEM_0_HREADY), .IMEM_0_HRESP(IMEM_0_HRESP), .IMEM_0_HREADYOUT(IMEM_0_HREADYOUT), - + + // FLASH 0 AHB Lite port + .FLASH_0_HSEL(EXTROM_0_HSEL), + .FLASH_0_HADDR(EXTROM_0_HADDR), + .FLASH_0_HTRANS(EXTROM_0_HTRANS), + .FLASH_0_HWRITE(EXTROM_0_HWRITE), + .FLASH_0_HSIZE(EXTROM_0_HSIZE), + .FLASH_0_HBURST(EXTROM_0_HBURST), + .FLASH_0_HPROT(EXTROM_0_HPROT), + .FLASH_0_HWDATA(EXTROM_0_HWDATA), + .FLASH_0_HMASTLOCK(EXTROM_0_HMASTLOCK), + .FLASH_0_HRDATA(EXTROM_0_HRDATA), + .FLASH_0_HREADY(EXTROM_0_HREADY), + .FLASH_0_HRESP(EXTROM_0_HRESP), + .FLASH_0_HREADYOUT(EXTROM_0_HREADYOUT), + + // FLASH QSPI APB Signals + .QSPI_PADDR(QSPI_PADDR), + .QSPI_PPROT(QSPI_PPROT), + .QSPI_PSEL(QSPI_PSEL), + .QSPI_PENABLE(QSPI_PENABLE), + .QSPI_PWRITE(QSPI_PWRITE), + .QSPI_PWDATA(QSPI_PWDATA), + .QSPI_PSTRB(QSPI_PSTRB), + .QSPI_PRDATA(QSPI_PRDATA), + .QSPI_PREADY(QSPI_PREADY), + .QSPI_PSLVERR(QSPI_PSLVERR), + + // IMEM QSPI Signals + .QSPI_SCLK(QSPI_SCLK), + .QSPI_nCS(QSPI_nCS), + .QSPI_IO_o(QSPI_IO_o), + .QSPI_IO_i(QSPI_IO_i), + .QSPI_IO_e(QSPI_IO_e), + // DMEM 0 AHB Lite port .DMEM_0_HSEL(DMEM_0_HSEL), .DMEM_0_HADDR(DMEM_0_HADDR), @@ -1176,6 +1226,17 @@ wire EXT_DAT_TXD_TREADY ; .SYSTABLE_HRESP(SYSTABLE_HRESP), // AHB response .SYSTABLE_HREADYOUT(SYSTABLE_HREADYOUT), // AHB ready out + .QSPI_PADDR(QSPI_PADDR), + .QSPI_PPROT(QSPI_PPROT), + .QSPI_PSEL(QSPI_PSEL), + .QSPI_PENABLE(QSPI_PENABLE), + .QSPI_PWRITE(QSPI_PWRITE), + .QSPI_PWDATA(QSPI_PWDATA), + .QSPI_PSTRB(QSPI_PSTRB), + .QSPI_PRDATA(QSPI_PRDATA), + .QSPI_PREADY(QSPI_PREADY), + .QSPI_PSLVERR(QSPI_PSLVERR), + // APB clocking control .SYS_PCLK(SYS_PCLK), // Peripheral clock .SYS_PCLKG(SYS_PCLKG), // Gated Peripheral bus clock diff --git a/nanosoc/synopsys_28nm_slm_integration b/nanosoc/synopsys_28nm_slm_integration index e88b3d4335b8416b5d78322f45e099ac9a12a1d0..4c4e598a2982a099f5871df1df2515068a288eab 160000 --- a/nanosoc/synopsys_28nm_slm_integration +++ b/nanosoc/synopsys_28nm_slm_integration @@ -1 +1 @@ -Subproject commit e88b3d4335b8416b5d78322f45e099ac9a12a1d0 +Subproject commit 4c4e598a2982a099f5871df1df2515068a288eab diff --git a/projbranch b/projbranch index 035ef78c2223c9129606d1bdd3be39d26a4d82a0..447d68173874ae653d9b00d6a8f4abe72cc5081a 100644 --- a/projbranch +++ b/projbranch @@ -15,4 +15,5 @@ nanosoc/sldma230_tech: main nanosoc/socdebug_tech: main nanosoc/sldma350_tech: main nanosoc/sl_ams_tech: main -nanosoc/synopsys_28nm_slm_integration: main \ No newline at end of file +nanosoc/synopsys_28nm_slm_integration: main +nanosoc/ahb_qspi: main \ No newline at end of file diff --git a/software/cmsis/Device/ARM/CMSDK_CM0/Include/SL_QSPI.h b/software/cmsis/Device/ARM/CMSDK_CM0/Include/SL_QSPI.h new file mode 100644 index 0000000000000000000000000000000000000000..15de964aa775b72bc6974d8edf92af56581ab0ae --- /dev/null +++ b/software/cmsis/Device/ARM/CMSDK_CM0/Include/SL_QSPI.h @@ -0,0 +1,81 @@ +#include <stdint.h> + +#define QSPI_BASEADDR 0x40030000UL +#define CG092_BASEADDR 0x40031000UL + + +typedef struct{ + volatile uint32_t CTRL; + volatile uint32_t STATUS; + volatile uint32_t SPI_CMD; + volatile uint32_t SPI_ADDR; + volatile uint32_t READ_DATA[4]; + volatile uint32_t WRITE_DATA[4]; + volatile uint32_t AHB_CMD; +} SL_AHB_QSPI_TypeDef; + +#define SL_AHB_QSPI_CTRL_QIO_Pos 0 +#define SL_AHB_QSPI_CTRL_QIO_Msk (0x1UL << SL_AHB_QSPI_CTRL_QIO_Pos) + +#define SL_AHB_QSPI_CTRL_XiP_Pos 8 +#define SL_AHB_QSPI_CTRL_XiP_Msk (0x1UL << SL_AHB_QSPI_CTRL_XiP_Pos) + +#define SL_AHB_QSPI_CTRL_Mode_Code_Pos 16 +#define SL_AHB_QSPI_CTRL_Mode_Code_Msk (0xFFUL << SL_AHB_QSPI_CTRL_Mode_Code_Pos) + +#define SL_AHB_QSPI_CTRL_Cont_Rd_Pos 24 +#define SL_AHB_QSPI_CTRL_Cont_Rd_Msk (0x1UL << SL_AHB_QSPI_CTRL_Cont_Rd_Pos) + +#define SL_AHB_QSPI_CTRL_No_CMD_Pos 25 +#define SL_AHB_QSPI_CTRL_No_CMD_Msk (0x1UL << SL_AHB_QSPI_CTRL_No_CMD_Pos) + +#define SL_AHB_QSPI_STATUS_Busy_Pos 0 +#define SL_AHB_QSPI_STATUS_Busy_Msk (0x1UL << SL_AHB_QSPI_STATUS_Busy_Pos) + +#define SL_AHB_QSPI_SPI_CMD_Pos 0 +#define SL_AHB_QSPI_SPI_CMD_Msk (0xFFUL << SL_AHB_QSPI_SPI_CMD_Pos) + +#define SL_AHB_QSPI_SPI_CMD_Enable_Pos 8 +#define SL_AHB_QSPI_SPI_CMD_Enable_Msk (0x1UL << SL_AHB_QSPI_SPI_CMD_Enable_Pos) + +#define SL_AHB_QSPI_SPI_CMD_Rd_Enable_Pos 9 +#define SL_AHB_QSPI_SPI_CMD_Rd_Enable_Msk (0x1UL << SL_AHB_QSPI_SPI_CMD_Rd_Enable_Pos) + +#define SL_AHB_QSPI_SPI_CMD_Wr_Enable_Pos 10 +#define SL_AHB_QSPI_SPI_CMD_Wr_Enable_Msk (0x1UL << SL_AHB_QSPI_SPI_CMD_Wr_Enable_Pos) + +#define SL_AHB_QSPI_SPI_CMD_Addr_Enable_Pos 11 +#define SL_AHB_QSPI_SPI_CMD_Addr_Enable_Msk (0x1UL << SL_AHB_QSPI_SPI_CMD_Addr_Enable_Pos) + +#define SL_AHB_QSPI_SPI_CMD_N_Dummy_Pos 12 +#define SL_AHB_QSPI_SPI_CMD_N_Dummy_Msk (0xFUL << SL_AHB_QSPI_SPI_CMD_N_Dummy_Pos) + +#define SL_AHB_QSPI_SPI_CMD_N_RW_Bytes_Pos 16 +#define SL_AHB_QSPI_SPI_CMD_N_RW_Bytes_Msk (0xFUL << SL_AHB_QSPI_SPI_CMD_N_RW_Bytes_Pos) + + +typedef struct{ + volatile uint32_t CCR; + volatile uint32_t SR; + volatile uint32_t IRQMASK; + volatile uint32_t IRQSTAT; + volatile uint32_t HWPARAMS; + volatile uint32_t CSHR; + volatile uint32_t CSMR; +} CG092_TypeDef; + + +#define SL_QSPI ((SL_AHB_QSPI_TypeDef *) QSPI_BASEADDR) +#define CG092 ((CG092_TypeDef *) CG092_BASEADDR) + +extern uint32_t SPI_READ_JEDIC(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +extern int SPI_STARTUP(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +extern void SPI_WAIT_BUSY(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +extern void SPI_RESET(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +extern void SET_QPI_MODE(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +extern void QPI_READ_WORDS_no_data(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI, uint32_t addr, uint8_t n_words, uint32_t n_dummy, uint8_t cont_read); +extern void QPI_SET_CONT_READ(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +extern void QPI_SET_CONT_READ_MICRON(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +extern void QPI_SET_AHB_MODE(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); + +extern void CACHE_STARTUP(CG092_TypeDef *CACHE); diff --git a/software/cmsis/Device/ARM/CMSDK_CM0/Source/SL_QSPI.c b/software/cmsis/Device/ARM/CMSDK_CM0/Source/SL_QSPI.c new file mode 100644 index 0000000000000000000000000000000000000000..f6796e62151785d77762cbffe05f81e2971078de --- /dev/null +++ b/software/cmsis/Device/ARM/CMSDK_CM0/Source/SL_QSPI.c @@ -0,0 +1,134 @@ + +#include "SL_QSPI.h" + +uint8_t SET_QIO_MODE_CMD = 0x38; + +uint32_t SPI_READ_JEDIC(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +int SPI_STARTUP(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +void SPI_WAIT_BUSY(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +void SPI_RESET(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +void SET_QPI_MODE(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +void QPI_READ_WORDS_no_data(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI, uint32_t addr, uint8_t n_words, uint32_t n_dummy, uint8_t cont_read); +void QPI_SET_CONT_READ(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +void QPI_SET_CONT_READ_MICRON(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); +void QPI_SET_AHB_MODE(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI); + +void CACHE_STARTUP(CG092_TypeDef *CACHE); + +void CACHE_STARTUP(CG092_TypeDef *CACHE){ + CACHE->CCR=0; + CACHE->CCR=0x1; //DON'T USE PREFETCH + while((CACHE->SR)&0x3 != 2){;} +} + +int SPI_STARTUP(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI){ + uint32_t ID; + // Check first if warm reset + if(SL_AHB_QSPI->CTRL == 0){ + SPI_RESET(SL_AHB_QSPI); + ID=SPI_READ_JEDIC(SL_AHB_QSPI); + if((ID==0xFFFFFFFF)||(ID==0x00000000)){ + return 1; + } else { + if((ID&0xFF)!=0xBF){ + SET_QIO_MODE_CMD = 0x35; + SL_AHB_QSPI->AHB_CMD = (8<<SL_AHB_QSPI_SPI_CMD_N_Dummy_Pos) + 0x0B; + SET_QPI_MODE(SL_AHB_QSPI); + QPI_SET_CONT_READ_MICRON(SL_AHB_QSPI); + QPI_READ_WORDS_no_data(SL_AHB_QSPI, 0x00000000, 1, 10, 0); + SL_AHB_QSPI->CTRL |= (1<<25); + QPI_READ_WORDS_no_data(SL_AHB_QSPI, 0x00001000, 1, 8, 1); + QPI_SET_AHB_MODE(SL_AHB_QSPI); + } else{ + SL_AHB_QSPI->AHB_CMD = (4<<SL_AHB_QSPI_SPI_CMD_N_Dummy_Pos) + 0x0B; + SET_QPI_MODE(SL_AHB_QSPI); + QPI_READ_WORDS_no_data(SL_AHB_QSPI, 0x00000000, 1, 6, 0); + QPI_SET_CONT_READ(SL_AHB_QSPI); + QPI_READ_WORDS_no_data(SL_AHB_QSPI, 0x00001000, 1, 4, 1); + QPI_SET_AHB_MODE(SL_AHB_QSPI); + } + return 0; + } + } + else { + return 0; + } +} + +void QPI_SET_CONT_READ(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI){ + SL_AHB_QSPI->CTRL |= (1<<25); +} + +void QPI_SET_CONT_READ_MICRON(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI){ + uint32_t CMD=0; + // Write Enable + SL_AHB_QSPI->SPI_CMD = 0x06; + SL_AHB_QSPI->SPI_CMD = 0x106; + SPI_WAIT_BUSY(SL_AHB_QSPI); + + // Write to volatile register + SL_AHB_QSPI->WRITE_DATA[0]=0xF3; + CMD = 0x81; + CMD |= SL_AHB_QSPI_SPI_CMD_Wr_Enable_Msk; + SL_AHB_QSPI->SPI_CMD = CMD; + SL_AHB_QSPI->SPI_CMD |= SL_AHB_QSPI_SPI_CMD_Enable_Msk; + SPI_WAIT_BUSY(SL_AHB_QSPI); + + // Write disable + SL_AHB_QSPI->SPI_CMD = 0x04; + SL_AHB_QSPI->SPI_CMD = 0x104; + SPI_WAIT_BUSY(SL_AHB_QSPI); +} + +void QPI_SET_AHB_MODE(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI){ + SL_AHB_QSPI->CTRL |= (1<<8); +} + +void SPI_WAIT_BUSY(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI){ + while(((SL_AHB_QSPI->STATUS)&SL_AHB_QSPI_STATUS_Busy_Msk)!=0){;} +} + +void SPI_RESET(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI){ + SL_AHB_QSPI->SPI_CMD = 0x66; + SL_AHB_QSPI->SPI_CMD = 0x166; + SPI_WAIT_BUSY(SL_AHB_QSPI); + SL_AHB_QSPI->SPI_CMD = 0x99; + SL_AHB_QSPI->SPI_CMD = 0x199; + SPI_WAIT_BUSY(SL_AHB_QSPI); +} + +uint32_t SPI_READ_JEDIC(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI){ + SL_AHB_QSPI->SPI_CMD = 0x0003009F; + SL_AHB_QSPI->SPI_CMD = 0x0003039F; + SPI_WAIT_BUSY(SL_AHB_QSPI); + return SL_AHB_QSPI->READ_DATA[0]; +} + +void QPI_READ_WORDS_no_data(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI, uint32_t addr, uint8_t n_words, uint32_t n_dummy, uint8_t cont_read){ + uint32_t CMD = 0; + + SL_AHB_QSPI->SPI_ADDR = addr; + + if(cont_read==0){ + SL_AHB_QSPI->CTRL |= SL_AHB_QSPI_CTRL_Cont_Rd_Msk; + SL_AHB_QSPI->CTRL |= (SL_AHB_QSPI_CTRL_Mode_Code_Msk & (0xA0<<16)); + } + CMD |= (SL_AHB_QSPI_SPI_CMD_N_Dummy_Msk & (n_dummy<<12)); + CMD |= 0x0B; + CMD |= SL_AHB_QSPI_SPI_CMD_Rd_Enable_Msk; + CMD |= SL_AHB_QSPI_SPI_CMD_Addr_Enable_Msk; + CMD |= (SL_AHB_QSPI_SPI_CMD_N_RW_Bytes_Msk & (n_words << 16)); + SL_AHB_QSPI->SPI_CMD = CMD; + + SL_AHB_QSPI->SPI_CMD |= SL_AHB_QSPI_SPI_CMD_Enable_Msk; + + SPI_WAIT_BUSY(SL_AHB_QSPI); + +} + +void SET_QPI_MODE(SL_AHB_QSPI_TypeDef *SL_AHB_QSPI){ + SL_AHB_QSPI->SPI_CMD = SET_QIO_MODE_CMD; + SL_AHB_QSPI->SPI_CMD = 0x100 + SET_QIO_MODE_CMD; + SPI_WAIT_BUSY(SL_AHB_QSPI); + SL_AHB_QSPI->CTRL |= SL_AHB_QSPI_CTRL_QIO_Msk; +} diff --git a/software/common/bootloader/bootloader.c b/software/common/bootloader/bootloader.c index 9a9996a9c24a2f7ce2ef7bd437041a47233e0f54..5f8ca8c83c2c9b8a6a68e837133517ddfe2ecf03 100644 --- a/software/common/bootloader/bootloader.c +++ b/software/common/bootloader/bootloader.c @@ -52,6 +52,8 @@ #include "CMSDK_CM4.h" #endif +#include "SL_QSPI.h" + #define UART_CTRL_TXEN CMSDK_UART_CTRL_TXEN_Msk #define UART_CTRL_RXEN CMSDK_UART_CTRL_RXEN_Msk #define UART_CTRL_TXRXEN (CMSDK_UART_CTRL_TXEN_Msk + CMSDK_UART_CTRL_RXEN_Msk) @@ -139,8 +141,15 @@ void FlashLoader(void) UartPutc(0x4); // Terminate simulation while (1); } - UartPuts("REMAP->IMEM0\n"); // CMSDK boot loader\n"); - CMSDK_SYSCON->REMAP = 0; // Clear remap + if(SPI_STARTUP(SL_QSPI)==0){ + // QSPI flash present + UartPuts("REMAP->FLASH\n"); // CMSDK boot loader\n"); + CACHE_STARTUP(CG092); + CMSDK_SYSCON->REMAP = 3; + } else { + UartPuts("REMAP->IMEM0\n"); // CMSDK boot loader\n"); + CMSDK_SYSCON->REMAP = 0; // Clear remap + } __DSB(); __ISB(); diff --git a/software/common/scripts/cmsdk_bootloader.ld b/software/common/scripts/cmsdk_bootloader.ld index 155a8dca6f2bc19aaf2b0e5994b1825edb4d0ba4..34322fad13994c307ebd9d2d7ce5ce1662fe67f3 100644 --- a/software/common/scripts/cmsdk_bootloader.ld +++ b/software/common/scripts/cmsdk_bootloader.ld @@ -33,7 +33,7 @@ INCLUDE "lib-nosys.ld" MEMORY { - FLASH (rx) : ORIGIN = 0x10000000, LENGTH = 0x1000 /* 4K */ + FLASH (rx) : ORIGIN = 0x10000000, LENGTH = 0x2000 /* 4K */ RAM (rwx) : ORIGIN = 0x30000000, LENGTH = 0x3C00 /* 15K */ } diff --git a/software/debug_tester/debugtester_be.hex b/software/debug_tester/debugtester_be.hex index c88abd2e70279fba6073c20b62595b3e06e2464a..0f17ccc331e41e4a0da11f9f21320e2cb74ed2d0 100644 --- a/software/debug_tester/debugtester_be.hex +++ b/software/debug_tester/debugtester_be.hex @@ -2,15 +2,15 @@ A8 05 00 20 -AD +C9 1A 00 00 -B5 +D1 1A 00 00 -B7 +D3 1A 00 00 @@ -42,7 +42,7 @@ B7 00 00 00 -B9 +D5 1A 00 00 @@ -54,139 +54,139 @@ B9 00 00 00 -BB +D7 1A 00 00 -BD +D9 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 -BF +DB 1A 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -3E +4C F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +43 +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 30 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -B4 +54 +46 +5D +46 +DF +E7 +00 +00 +B8 1A 00 00 -D4 +D8 1A 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -6858,8 +6886,8 @@ E7 47 00 00 -E5 -1A +01 +1B 00 00 C1 @@ -7030,14 +7058,12 @@ A5 FF 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -7057,6 +7083,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -7086,7 +7114,7 @@ BD 01 00 20 -D0 +EC 1B 00 00 @@ -7098,12 +7126,12 @@ D0 01 00 00 -04 +1C 01 00 00 -F8 -1C +14 +1D 00 00 28 @@ -7114,7 +7142,7 @@ F8 04 00 00 -20 +3C 01 00 00 @@ -7286,131 +7314,131 @@ F8 00 00 00 -3B +57 02 00 00 -3D +59 06 00 00 -FB -06 +17 +07 00 00 -63 +7F 07 00 00 -D1 +ED 09 00 00 -4B +67 0A 00 00 -C3 +DF 0A 00 00 -43 +5F 0B 00 00 -93 +AF 0B 00 00 -75 +91 0C 00 00 -25 +41 0D 00 00 -C5 +E1 0D 00 00 -A9 +C5 0D 00 00 -3D +59 0F 00 00 -49 +65 10 00 00 -E5 -15 +01 +16 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 -9D +B9 17 00 00 diff --git a/software/debug_tester/debugtester_le.hex b/software/debug_tester/debugtester_le.hex index 945b789017c41519413f9cdfa3bc7d8b168791bb..59b8e04e55e302964486266969270c409d7ccafd 100644 --- a/software/debug_tester/debugtester_le.hex +++ b/software/debug_tester/debugtester_le.hex @@ -2,15 +2,15 @@ A8 05 00 20 -8D +A9 1A 00 00 -95 +B1 1A 00 00 -97 +B3 1A 00 00 @@ -42,7 +42,7 @@ A8 00 00 00 -99 +B5 1A 00 00 @@ -54,139 +54,139 @@ A8 00 00 00 -9B +B7 1A 00 00 -9D +B9 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 -9F +BB 1A 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -3E +4C F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +43 +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 30 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -94 +54 +46 +5D +46 +DF +E7 +00 +00 +98 1A 00 00 -B4 +B8 1A 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -6826,7 +6854,7 @@ E7 47 00 00 -C5 +E1 1A 00 00 @@ -6998,14 +7026,12 @@ A5 FF 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -7025,6 +7051,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -7054,7 +7082,7 @@ BD 01 00 20 -B0 +CC 1B 00 00 @@ -7066,11 +7094,11 @@ B0 01 00 00 -04 +1C 01 00 00 -D8 +F4 1C 00 00 @@ -7082,7 +7110,7 @@ D8 04 00 00 -20 +3C 01 00 00 @@ -7254,131 +7282,131 @@ D8 00 00 00 -3B +57 02 00 00 -3D +59 06 00 00 -FB -06 +17 +07 00 00 -63 +7F 07 00 00 -C9 +E5 09 00 00 -41 +5D 0A 00 00 -B9 +D5 0A 00 00 -39 +55 0B 00 00 -89 +A5 0B 00 00 -6B +87 0C 00 00 -17 +33 0D 00 00 -B9 +D5 0D 00 00 -7D +99 0D 00 00 -31 +4D 0F 00 00 -3D +59 10 00 00 -D1 +ED 15 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 -81 +9D 17 00 00 diff --git a/testcodes/apb_mux_tests/apb_mux_tests.hex b/testcodes/apb_mux_tests/apb_mux_tests.hex index a2ff3251fbb38106e7fbcbdf838486c5dd584aaa..6285cb911fbe38b6f84eb42a982714294152df9b 100644 --- a/testcodes/apb_mux_tests/apb_mux_tests.hex +++ b/testcodes/apb_mux_tests/apb_mux_tests.hex @@ -2,15 +2,15 @@ 04 00 30 -BD +D9 09 00 00 -C5 +E1 09 00 00 -87 +A3 01 00 00 @@ -42,7 +42,7 @@ C5 00 00 00 -C9 +E5 09 00 00 @@ -54,139 +54,139 @@ C9 00 00 00 -CB +E7 09 00 00 -CD +E9 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 -CF +EB 09 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -46 +54 F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +4B +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 38 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -E8 +54 +46 +5D +46 +DF +E7 +00 +00 +EC 0C 00 00 -08 +0C 0D 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -414,7 +442,7 @@ F3 47 00 00 -D1 +ED 08 00 00 @@ -1770,7 +1798,7 @@ C5 30 00 00 -7C +98 0D 00 00 @@ -1810,7 +1838,7 @@ C5 20 00 40 -8C +A8 0D 00 00 @@ -1870,7 +1898,7 @@ C5 30 00 40 -AC +C8 0D 00 00 @@ -1906,7 +1934,7 @@ AC 40 00 40 -6C +88 0D 00 00 @@ -2030,7 +2058,7 @@ AC 80 00 40 -9C +B8 0D 00 00 @@ -2522,7 +2550,7 @@ E7 47 00 00 -AD +C9 09 00 00 @@ -3376,14 +3404,12 @@ F7 FE 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -3403,6 +3429,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -3554,7 +3582,7 @@ B1 30 78 00 -04 +20 0E 00 00 @@ -3566,11 +3594,11 @@ B1 00 00 00 -04 +1C 01 00 00 -1C +38 0E 00 00 @@ -3582,7 +3610,7 @@ B1 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/bootloader/bootloader.hex b/testcodes/bootloader/bootloader.hex index 4a91c68ec2c4740520853b11bb5a8c26687794e4..bc9e0ee08e373bac658b627065c5062c27b3bf5c 100644 --- a/testcodes/bootloader/bootloader.hex +++ b/testcodes/bootloader/bootloader.hex @@ -2,16 +2,16 @@ 04 00 30 -C9 -02 +19 +03 00 10 -D1 -02 +21 +03 00 10 -D3 -02 +23 +03 00 10 00 @@ -42,8 +42,8 @@ D3 00 00 00 -D5 -02 +25 +03 00 10 00 @@ -54,140 +54,140 @@ D5 00 00 00 -D7 -02 +27 +03 00 10 -D9 -02 +29 +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 -DB -02 +2B +03 00 10 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -3E +4C F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +43 +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 30 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,20 +262,24 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -70 -02 +54 +46 +5D +46 +DF +E7 00 00 -90 -02 +78 +04 +00 +00 +98 +04 00 00 10 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -324,8 +352,8 @@ B5 BD 00 F0 -DF -F8 +E1 +F9 11 46 FF @@ -334,12 +362,12 @@ F7 FF 00 F0 -59 +67 F8 00 F0 -F7 -F8 +F9 +F9 03 B4 FF @@ -350,8 +378,8 @@ FF BC 00 F0 -FD -F8 +FF +F9 00 00 00 @@ -366,7 +394,7 @@ F8 47 00 00 -30 +37 4A 10 68 @@ -378,11 +406,11 @@ F8 28 0D DA -2E +35 48 81 60 -2E +35 4B 03 61 @@ -406,11 +434,11 @@ D1 60 01 E0 -29 +30 48 81 60 -29 +30 48 81 60 @@ -430,7 +458,7 @@ D1 60 70 47 -24 +2B 49 4A 68 @@ -468,19 +496,29 @@ D1 BD 10 B5 -1C +23 4C 20 68 00 28 -0B +10 D0 -1B +22 +48 +00 +F0 +2F +F9 +00 +28 +12 +D0 +20 A0 FF F7 -EC +E7 FF 00 20 @@ -496,35 +534,53 @@ F3 8F FF F7 -B8 +B3 FF 10 BD -19 +1E A0 FF F7 -E0 +DB FF 04 20 FF F7 -D7 +D2 FF FE E7 -10 +1E +A0 +FF +F7 +D4 +FF +20 +48 +00 +F0 +8D +F8 +03 +20 +20 +60 +E8 +E7 +10 B5 FF F7 -B3 +A5 FF -17 +1D A0 FF F7 -D6 +C8 FF 08 48 @@ -534,29 +590,29 @@ FF 06 03 D5 -1C +22 A0 FF F7 -CF +C1 FF 02 E0 -1D +23 A0 FF F7 -CB +BD FF -1F +25 A0 FF F7 -C8 +BA FF FF F7 -D2 +C4 FF 00 20 @@ -586,6 +642,10 @@ E0 F0 01 40 +00 +00 +03 +40 52 45 4D @@ -614,6 +674,26 @@ F0 00 00 00 +52 +45 +4D +41 +50 +2D +3E +46 +4C +41 +53 +48 +0A +00 +00 +00 +00 +10 +03 +40 0A 53 6F @@ -742,8 +822,8 @@ E7 47 00 00 -B9 -02 +09 +03 00 10 C1 @@ -766,96 +846,560 @@ C1 02 00 30 +00 +21 +01 +60 +01 +21 +01 +60 +41 +68 +C9 +07 +FC +D1 70 47 +01 +68 +FF +22 +01 +32 +11 +43 +01 +60 70 47 +41 +68 +C9 +07 +FC +D1 70 47 -75 -46 +10 +B4 +01 +9C +C1 +60 00 -F0 +2C +09 +D1 +01 +68 +01 24 -F8 -AE -46 +24 +06 +21 +43 +01 +60 +01 +68 +05 +24 +64 05 +21 +43 +01 +60 +19 +07 +09 +0C +0B +23 +19 +43 +01 +23 +5B +02 +19 +43 +9B 00 -69 -46 -53 +19 +43 +12 +07 +12 +0B +0A +43 +82 +60 +81 +68 +DA +10 +11 +43 +81 +60 +10 +BC +D9 +E7 +01 +68 +01 +22 +52 +06 +11 +43 +01 +60 +70 +47 +00 +B5 +02 46 -C0 -08 -C0 +4F +48 00 -85 +78 +90 +60 +FF +30 +01 +30 +90 +60 +10 46 -18 -B0 -20 -B5 FF F7 -DD +C9 FF -60 -BC -00 -27 -49 +10 +68 +01 +21 08 -B6 -46 +43 +10 +60 00 -26 -C0 -C5 -C0 -C5 -C0 -C5 -C0 -C5 -C0 -C5 -C0 -C5 -C0 -C5 -C0 -C5 -40 -3D -49 +BD 00 -8D -46 -70 -47 -10 B5 -04 -46 -C0 -46 -C0 +02 46 +06 +20 +90 +60 +FF 20 +07 +30 +90 +60 +10 46 FF F7 -02 +BA FF +F3 +20 10 -BD -00 +62 +43 48 -70 -47 -04 -00 +90 +60 +90 +68 +FF +21 +01 +31 +08 +43 +90 +60 +10 +46 +FF +F7 +AE +FF +04 +20 +90 +60 +FF +20 +05 +30 +90 +60 +10 +46 +FF +F7 +A6 +FF +00 +BD +00 +B5 +02 +46 +3A +48 +90 +60 +3A +48 +90 +60 +10 +46 +FF +F7 +9C +FF +10 +69 +00 +BD +00 +B5 +02 +46 +66 +20 +90 +60 +FF +20 +67 +30 +90 +60 +10 +46 +FF +F7 +90 +FF +99 +20 +90 +60 +FF +20 +9A +30 +90 +60 +10 +46 +FF +F7 +88 +FF +00 +BD +78 +B5 +04 +46 +20 +68 +00 +28 +01 +D0 +00 +20 +78 +BD +20 +46 +FF +F7 +E3 +FF +20 +46 +FF +F7 +D5 +FF +41 +1C +28 +D0 +00 +28 +26 +D0 +01 +25 +C0 +B2 +00 +23 +2E +03 +BF +28 +22 +D0 +1E +49 +35 +20 +08 +70 +21 +48 +20 +63 +20 +46 +FF +F7 +94 +FF +20 +46 +FF +F7 +A1 +FF +00 +93 +0A +23 +01 +22 +00 +21 +20 +46 +FF +F7 +62 +FF +20 +68 +69 +06 +08 +43 +20 +60 +08 +23 +01 +22 +31 +46 +20 +46 +00 +95 +FF +F7 +57 +FF +20 +46 +FF +F7 +4A +FF +1A +E0 +01 +20 +78 +BD +12 +48 +20 +63 +20 +46 +FF +F7 +74 +FF +00 +93 +06 +23 +01 +22 +00 +21 +20 +46 +FF +F7 +45 +FF +20 +46 +FF +F7 +64 +FF +04 +23 +01 +22 +31 +46 +20 +46 +00 +95 +FF +F7 +3B +FF +20 +46 +FF +F7 +2E +FF +00 +20 +78 +BD +04 +00 +00 +30 +81 +04 +00 +00 +9F +00 +03 +00 +9F +03 +03 +00 +0B +80 +00 +00 +0B +40 +00 +00 +70 +47 +70 +47 +70 +47 +75 +46 +00 +F0 +24 +F8 +AE +46 +05 +00 +69 +46 +53 +46 +C0 +08 +C0 +00 +85 +46 +18 +B0 +20 +B5 +FF +F7 +F5 +FE +60 +BC +B6 +46 +00 +26 +00 +27 +C0 +C5 +C0 +C5 +C0 +C5 +C0 +C5 +C0 +C5 +C0 +C5 +C0 +C5 +C0 +C5 +40 +3D +49 +08 +49 +00 +8D +46 +70 +47 +10 +B5 +04 +46 +C0 +46 +C0 +46 +20 +46 +FF +F7 +00 +FE +10 +BD +00 +48 +70 +47 +08 +00 00 30 01 @@ -874,35 +1418,35 @@ E7 47 00 00 -8C -03 +AC +05 00 10 00 00 00 30 -04 +08 00 00 00 -04 +1C 01 00 10 -90 -03 +B4 +05 00 10 -04 +08 00 00 30 -64 +60 04 00 00 -20 +3C 01 00 10 @@ -910,3 +1454,7 @@ E7 1C 4E 0E +38 +00 +00 +00 diff --git a/testcodes/bootloader/makefile b/testcodes/bootloader/makefile index 910b7f3b758e90b7671e1d0b4cb56eaecaa756ae..fef15f54317f962e699729bb51a840dff8ee93ea 100644 --- a/testcodes/bootloader/makefile +++ b/testcodes/bootloader/makefile @@ -191,14 +191,17 @@ all_ds6 : $(BOOTLOADER).hex $(BOOTLOADER).lst $(BOOTLOADER).o : $(SOFTWARE_DIR)/common/bootloader/$(BOOTLOADER).c $(DEPS_LIST) $(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@ +SL_QSPI.o : $(DEVICE_DIR)/Source/SL_QSPI.c + $(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@ + $(SYSTEM_FILE).o : $(DEVICE_DIR)/Source/$(SYSTEM_FILE).c $(DEPS_LIST) $(CC_TOOL) $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o $@ $(STARTUP_FILE).o : $(STARTUP_DIR)/$(STARTUP_FILE).s $(DEPS_LIST) $(ASM_TOOL) $(ARM_ASM_OPTIONS) $(CPU_TYPE) $< -o $@ -$(BOOTLOADER).ELF : $(BOOTLOADER).o $(SYSTEM_FILE).o $(STARTUP_FILE).o $(DEPS_LIST) - armlink $(ARM_LINK_OPTIONS) $(BOOTLOADER).o $(SYSTEM_FILE).o $(STARTUP_FILE).o -o $@ +$(BOOTLOADER).ELF : $(BOOTLOADER).o $(SYSTEM_FILE).o $(STARTUP_FILE).o SL_QSPI.o $(DEPS_LIST) + armlink $(ARM_LINK_OPTIONS) $(BOOTLOADER).o $(SYSTEM_FILE).o $(STARTUP_FILE).o SL_QSPI.o -o $@ $(BOOTLOADER).hex : $(BOOTLOADER).ELF $(DEPS_LIST) fromelf --vhx --8x1 $< --output $@ diff --git a/testcodes/dataio_tests/dataio_tests.hex b/testcodes/dataio_tests/dataio_tests.hex index 68a237a52d1c19c1703ffb4f6697313c5917db6f..9ef648a4a2aed01d4b1b4156b68335405469a533 100644 --- a/testcodes/dataio_tests/dataio_tests.hex +++ b/testcodes/dataio_tests/dataio_tests.hex @@ -2,15 +2,15 @@ 04 00 30 -B9 +D5 02 00 00 -C1 +DD 02 00 00 -C3 +DF 02 00 00 @@ -42,7 +42,7 @@ C3 00 00 00 -C5 +E1 02 00 00 @@ -54,139 +54,139 @@ C5 00 00 00 -C7 +E3 02 00 00 -C9 +E5 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 -CB +E7 02 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -46 +54 F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +4B +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 38 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -48 +54 +46 +5D +46 +DF +E7 +00 +00 +4C 07 00 00 -68 +6C 07 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -726,7 +754,7 @@ E7 47 00 00 -A9 +C5 02 00 00 @@ -1984,14 +2012,12 @@ F7 FD 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -2011,6 +2037,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -2114,7 +2142,7 @@ D2 00 10 00 -64 +80 08 00 00 @@ -2126,11 +2154,11 @@ D2 00 00 00 -04 +1C 01 00 00 -6C +88 08 00 00 @@ -2142,7 +2170,7 @@ D2 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/debug_tests/debug_tests.hex b/testcodes/debug_tests/debug_tests.hex index 9046aba306df3d104363ef260c3bf9cf3b5e8e52..83be232ec8556adeb80f44af3b906888c76f3f99 100644 --- a/testcodes/debug_tests/debug_tests.hex +++ b/testcodes/debug_tests/debug_tests.hex @@ -2,15 +2,15 @@ 04 00 30 -FD -06 +19 +07 00 00 -05 +21 07 00 00 -3D +59 04 00 00 @@ -42,7 +42,7 @@ FD 00 00 00 -09 +25 07 00 00 @@ -54,139 +54,139 @@ FD 00 00 00 -0B +27 07 00 00 -0D +29 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 -0F +2B 07 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -50 +5E F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +55 +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 42 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -74 +54 +46 +5D +46 +DF +E7 +00 +00 +78 0E 00 00 -94 +98 0E 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -1818,8 +1846,8 @@ E7 47 00 00 -ED -06 +09 +07 00 00 C1 @@ -3852,14 +3880,12 @@ F7 FC 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -3879,6 +3905,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -3906,7 +3934,7 @@ BD 48 70 47 -14 +18 00 00 30 @@ -3950,7 +3978,7 @@ BD 30 78 00 -90 +AC 0F 00 00 @@ -3962,23 +3990,23 @@ BD 00 00 00 -04 +1C 01 00 00 -A4 +C0 0F 00 00 -14 +18 00 00 30 -64 +60 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/default_slaves_tests/default_slaves_tests.hex b/testcodes/default_slaves_tests/default_slaves_tests.hex index ecdc8dbfff2a0db07512185f4224cb9adbfb2d3c..1c4551f18647746ac9355d80d79681c6788ea7d1 100644 --- a/testcodes/default_slaves_tests/default_slaves_tests.hex +++ b/testcodes/default_slaves_tests/default_slaves_tests.hex @@ -2,15 +2,15 @@ 04 00 30 -15 +31 04 00 00 -1D +39 04 00 00 -87 +A3 01 00 00 @@ -42,7 +42,7 @@ 00 00 00 -21 +3D 04 00 00 @@ -54,139 +54,139 @@ 00 00 00 -23 +3F 04 00 00 -25 +41 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 -27 +43 04 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -46 +54 F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +4B +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 38 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -50 +54 +46 +5D +46 +DF +E7 +00 +00 +54 07 00 00 -70 +74 07 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -414,7 +442,7 @@ F3 47 00 00 -8D +A9 02 00 00 @@ -710,8 +738,8 @@ F0 F9 FE E7 -EC -07 +08 +08 00 00 44 @@ -1074,7 +1102,7 @@ E7 47 00 00 -05 +21 04 00 00 @@ -1928,14 +1956,12 @@ F7 FE 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -1955,6 +1981,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -1982,7 +2010,7 @@ BD 48 70 47 -14 +18 00 00 30 @@ -2122,7 +2150,7 @@ BD 0A 00 00 -6C +88 08 00 00 @@ -2134,23 +2162,23 @@ BD 00 00 00 -04 +1C 01 00 00 -80 +9C 08 00 00 -14 +18 00 00 30 -64 +60 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/dhry/dhry.hex b/testcodes/dhry/dhry.hex index f3c1a3500a429dd27172b825bfbfe212d5aae53b..1ed64dcc9b73e70428a8f42cc1d0782d87da90ca 100644 --- a/testcodes/dhry/dhry.hex +++ b/testcodes/dhry/dhry.hex @@ -2,15 +2,15 @@ 2C 00 30 -8D +A9 0C 00 00 -95 +B1 0C 00 00 -97 +B3 0C 00 00 @@ -42,7 +42,7 @@ 00 00 00 -99 +B5 0C 00 00 @@ -54,139 +54,139 @@ 00 00 00 -9B +B7 0C 00 00 -9D +B9 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 -9F +BB 0C 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -54 +62 F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +59 +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 46 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -60 +54 +46 +5D +46 +DF +E7 +00 +00 +84 14 00 00 -80 +A4 14 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -332,7 +360,7 @@ BD D1 01 F0 -26 +35 F9 10 BD @@ -342,7 +370,7 @@ BD D1 01 F0 -29 +38 F9 10 BD @@ -358,7 +386,7 @@ B5 99 01 F0 -5C +6C F8 1F BD @@ -368,7 +396,7 @@ B5 BD 01 F0 -84 +94 F9 11 46 @@ -382,7 +410,7 @@ F0 F8 01 F0 -9C +AC F9 03 B4 @@ -1002,7 +1030,7 @@ D9 46 00 F0 -13 +1B FE 02 99 @@ -1338,7 +1366,7 @@ E1 47 00 00 -F4 +F8 06 00 30 @@ -1630,11 +1658,11 @@ E0 47 00 00 -F4 +F8 00 00 30 -2C +30 00 00 30 @@ -2570,16 +2598,12 @@ E4 65 0A 00 -38 +54 08 00 00 -EC -06 -00 -00 -54 08 +07 00 00 70 @@ -2594,6 +2618,10 @@ A8 08 00 00 +C4 +08 +00 +00 49 6E 74 @@ -3242,7 +3270,7 @@ E7 47 00 00 -7D +99 0C 00 00 @@ -3506,7 +3534,7 @@ B5 46 00 F0 -19 +29 FA 05 68 @@ -3590,8 +3618,8 @@ D1 46 00 F0 -F7 -F9 +07 +FA 00 28 DC @@ -3610,7 +3638,7 @@ AA 98 00 F0 -CB +DB FA 10 BC @@ -3882,7 +3910,7 @@ C0 E0 00 F0 -57 +67 FA 30 31 @@ -3904,7 +3932,7 @@ D1 98 00 F0 -C9 +D8 F9 FE BD @@ -3932,7 +3960,7 @@ BD 07 9A 42 -37 +3F D1 70 B5 @@ -3952,17 +3980,17 @@ D0 1C 00 2A -2B +33 D0 9A 42 -29 +31 D1 20 42 F5 D1 -1D +21 4E F4 01 @@ -3976,6 +4004,22 @@ C9 43 25 40 +18 +D1 +9A +42 +0F +D1 +04 +C8 +08 +C9 +95 +1B +95 +43 +25 +40 10 D1 9A @@ -3996,7 +4040,7 @@ C9 D1 9A 42 -EF +E7 D0 12 BA @@ -4152,10 +4196,10 @@ D3 42 0D D3 -FF -22 09 02 +FF +22 12 BA 03 @@ -4390,10 +4434,10 @@ D3 42 53 40 -00 -22 9C 46 +00 +22 03 09 8B @@ -4406,10 +4450,10 @@ D3 42 12 D3 -FC -22 89 01 +FC +22 12 BA 03 @@ -4536,14 +4580,14 @@ C0 D2 01 46 -63 -46 52 41 -5B -10 10 46 +63 +46 +5B +10 01 D3 40 @@ -4566,14 +4610,30 @@ D3 42 01 B5 +04 +49 00 -20 +28 +02 +DC +49 +1C +08 +40 +00 +E0 +08 +46 C0 46 C0 46 02 BD +FF +FF +FF +7F 70 47 70 @@ -4586,7 +4646,7 @@ BD 48 70 47 -0C +10 28 00 30 @@ -4652,7 +4712,7 @@ C0 20 0C 46 -10 +0C 20 C0 46 @@ -4736,11 +4796,9 @@ BD 60 41 60 -80 -60 70 47 -10 +0C 20 70 47 @@ -4752,7 +4810,7 @@ B5 1F FF F7 -AA +AB FF 00 68 @@ -5012,7 +5070,7 @@ C0 E0 FF F7 -80 +71 FD 01 20 @@ -5042,6 +5100,8 @@ D2 43 E8 E7 +00 +00 08 4B 70 @@ -5060,7 +5120,7 @@ F8 46 FF F7 -89 +79 FC 00 28 @@ -5078,8 +5138,8 @@ BD BD 00 00 -07 -F9 +E7 +F8 FF FF 01 @@ -5126,7 +5186,7 @@ D2 48 70 47 -04 +08 28 00 30 @@ -5178,7 +5238,7 @@ C0 60 FF F7 -26 +25 FF 10 BD @@ -5218,7 +5278,7 @@ B0 46 FF F7 -E3 +D3 FC 0F B0 @@ -5268,18 +5328,16 @@ B0 B5 FF F7 -04 -FC +F4 +FB 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -5299,6 +5357,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -5316,7 +5376,7 @@ C0 46 FE F7 -5D +4D FE 10 BD @@ -5328,8 +5388,8 @@ B5 D0 FF F7 -0B -FC +FB +FB 10 BD 00 @@ -5428,7 +5488,7 @@ E0 1C FF F7 -D4 +C4 FB 00 2D @@ -5446,7 +5506,7 @@ E0 1C FF F7 -CB +BB FB 00 2C @@ -5462,11 +5522,11 @@ D1 20 FF F7 -C3 +B3 FB 70 BD -7C +B8 15 00 00 @@ -5478,23 +5538,23 @@ BD 00 00 00 -04 +1C 01 00 00 -A8 +E4 15 00 00 -2C +30 00 00 30 -3C +38 2C 00 00 -20 +3C 01 00 00 diff --git a/testcodes/dma350_tests/dma350_tests.hex b/testcodes/dma350_tests/dma350_tests.hex index 140f14fdb895dffd7c8b52d0d3f98c537d03e24f..9966c39a26314011930d4a4e0dccdb5ed342574b 100644 --- a/testcodes/dma350_tests/dma350_tests.hex +++ b/testcodes/dma350_tests/dma350_tests.hex @@ -2,15 +2,15 @@ 04 00 30 -B1 +CD 0C 00 00 -B9 +D5 0C 00 00 -97 +B3 01 00 00 @@ -42,7 +42,7 @@ B9 00 00 00 -BD +D9 0C 00 00 @@ -54,139 +54,139 @@ BD 00 00 00 -BF +DB 0C 00 00 -C1 +DD 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -1B +37 0A 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 -C3 +DF 0C 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -4F +5D F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +54 +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 41 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,14 +262,18 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 +54 +46 +5D +46 +DF +E7 +00 +00 D0 2E 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -358,7 +386,7 @@ B5 BD 02 F0 -E5 +E3 FD 11 46 @@ -372,7 +400,7 @@ F0 F8 02 F0 -FD +FB FD 03 B4 @@ -430,7 +458,7 @@ F3 47 00 00 -75 +91 0A 00 00 @@ -1582,7 +1610,7 @@ CF 0A 00 00 -D8 +F0 2E 00 00 @@ -1610,7 +1638,7 @@ D8 00 00 00 -18 +30 2E 00 00 @@ -1798,7 +1826,7 @@ D8 00 00 00 -80 +98 2F 00 00 @@ -1962,7 +1990,7 @@ E0 0A 00 00 -30 +48 2F 00 00 @@ -2814,11 +2842,11 @@ D3 2E 0A 00 -14 +30 07 00 00 -58 +74 07 00 00 @@ -3278,7 +3306,7 @@ E7 47 00 00 -A1 +BD 0C 00 00 @@ -10658,7 +10686,7 @@ AA 98 00 F0 -63 +61 F9 10 BC @@ -10846,7 +10874,7 @@ C0 E0 00 F0 -19 +17 F9 30 31 @@ -10868,7 +10896,7 @@ D1 98 00 F0 -A1 +A0 F8 FE BD @@ -10970,11 +10998,11 @@ D0 46 00 F0 -6E +6D F8 70 BD -0A +06 04 00 00 @@ -11072,7 +11100,7 @@ D0 99 00 F0 -C0 +BE F8 01 20 @@ -11084,7 +11112,7 @@ B5 20 00 F0 -EC +EA F8 10 BD @@ -11100,7 +11128,7 @@ C0 20 0C 46 -10 +0C 20 C0 46 @@ -11128,7 +11156,7 @@ C0 D1 00 F0 -D6 +D4 F8 00 98 @@ -11174,7 +11202,7 @@ A2 1B 00 F0 -8D +8B F8 F8 BD @@ -11184,11 +11212,9 @@ BD 60 41 60 -80 -60 70 47 -10 +0C 20 70 47 @@ -11368,8 +11394,6 @@ BD 20 FB E7 -00 -00 08 4B 70 @@ -11388,7 +11412,7 @@ F8 46 FE F7 -3F +41 F8 00 28 @@ -11406,7 +11430,7 @@ BD BD 00 00 -73 +77 E0 FF FF @@ -11506,7 +11530,7 @@ C0 60 FF F7 -2B +2D FE 10 BD @@ -11546,7 +11570,7 @@ B0 46 FF F7 -4B +4D FE 0F B0 @@ -11596,18 +11620,16 @@ B0 B5 FD F7 -BA +BC FF 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -11627,6 +11649,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -11644,7 +11668,7 @@ C0 46 FD F7 -FC +FE F9 10 BD @@ -11656,7 +11680,7 @@ B5 D0 FD F7 -C1 +C3 FF 10 BD @@ -11756,7 +11780,7 @@ E0 1C FD F7 -8A +8C FF 00 2D @@ -11774,7 +11798,7 @@ E0 1C FD F7 -81 +83 FF 00 2C @@ -11790,7 +11814,7 @@ D1 20 FD F7 -79 +7B FF 70 BD @@ -12234,8 +12258,8 @@ F4 00 00 00 -EC -2F +04 +30 00 00 00 @@ -12246,11 +12270,11 @@ EC 00 00 00 -04 +1C 01 00 00 -24 +3C 30 00 00 @@ -12262,7 +12286,7 @@ EC 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/dma_tests/dma_tests.hex b/testcodes/dma_tests/dma_tests.hex index c6226ee50b614413975fb7192c3d79a235c7db45..fa2b45ebef0277a18783984d8cbf3f51b8bd83a0 100644 --- a/testcodes/dma_tests/dma_tests.hex +++ b/testcodes/dma_tests/dma_tests.hex @@ -2,15 +2,15 @@ A8 04 00 30 -95 +B1 0B 00 00 -9D +B9 0B 00 00 -87 +A3 01 00 00 @@ -42,7 +42,7 @@ A8 00 00 00 -A1 +BD 0B 00 00 @@ -54,139 +54,139 @@ A1 00 00 00 -A3 +BF 0B 00 00 -A5 +C1 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -31 +4D 09 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 -A7 +C3 0B 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -4B +59 F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +50 +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 3D F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -7C +54 +46 +5D +46 +DF +E7 +00 +00 +80 0F 00 00 -9C +A0 0F 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -414,7 +442,7 @@ F3 47 00 00 -73 +8F 09 00 00 @@ -2526,7 +2554,7 @@ E7 00 00 00 -D8 +F4 0F 00 00 @@ -2634,7 +2662,7 @@ F0 0A 00 00 -20 +3C 10 00 00 @@ -2994,7 +3022,7 @@ E7 47 00 00 -85 +A1 0B 00 00 @@ -3996,14 +4024,12 @@ F7 FE 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -4023,6 +4049,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -4214,7 +4242,7 @@ B1 00 00 00 -98 +B4 10 00 00 @@ -4226,11 +4254,11 @@ B1 00 00 00 -04 +1C 01 00 00 -C0 +DC 10 00 00 @@ -4242,7 +4270,7 @@ C0 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/dualtimer_demo/dualtimer_demo.hex b/testcodes/dualtimer_demo/dualtimer_demo.hex index b6cb43dd5aceb7d8cc6fb4780069de602b8bbe29..0a59631c598c0bb94fcd6b231fec9ba305a344c5 100644 --- a/testcodes/dualtimer_demo/dualtimer_demo.hex +++ b/testcodes/dualtimer_demo/dualtimer_demo.hex @@ -2,15 +2,15 @@ 04 00 30 -25 +41 11 00 00 -2D +49 11 00 00 -2F +4B 11 00 00 @@ -42,7 +42,7 @@ 00 00 00 -31 +4D 11 00 00 @@ -54,139 +54,139 @@ 00 00 00 -33 +4F 11 00 00 -35 +51 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -73 +8F 0F 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 -37 +53 11 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -3E +4C F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +43 +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 30 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -48 +54 +46 +5D +46 +DF +E7 +00 +00 +4C 12 00 00 -68 +6C 12 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -3786,8 +3814,8 @@ C0 2F 00 40 -E8 -12 +04 +13 00 00 44 @@ -4418,7 +4446,7 @@ E7 47 00 00 -15 +31 11 00 00 @@ -4782,14 +4810,12 @@ F7 FF 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -4809,6 +4835,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -4930,7 +4958,7 @@ BD 24 0A 00 -64 +80 13 00 00 @@ -4942,11 +4970,11 @@ BD 00 00 00 -04 +1C 01 00 00 -7C +98 13 00 00 @@ -4958,7 +4986,7 @@ BD 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/gpio_driver_tests/gpio_driver_tests.hex b/testcodes/gpio_driver_tests/gpio_driver_tests.hex index 7da9c8a73fb7d168908d56b2492c47212cc72c90..cc47386eb45c4d6196b9e415412cce2e10cf77d9 100644 --- a/testcodes/gpio_driver_tests/gpio_driver_tests.hex +++ b/testcodes/gpio_driver_tests/gpio_driver_tests.hex @@ -2,15 +2,15 @@ 05 00 30 -29 +45 10 00 00 -31 +4D 10 00 00 -33 +4F 10 00 00 @@ -42,7 +42,7 @@ 00 00 00 -35 +51 10 00 00 @@ -54,139 +54,139 @@ 00 00 00 -37 +53 10 00 00 -39 +55 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3F +5B 0F 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 -3B +57 10 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -48 +56 F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +4D +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 3A F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -D8 +54 +46 +5D +46 +DF +E7 +00 +00 +DC 15 00 00 -F8 +FC 15 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -1538,7 +1566,7 @@ FF 00 00 00 -48 +64 16 00 00 @@ -1594,7 +1622,7 @@ E1 C3 D5 02 -90 +AC 16 00 00 @@ -3802,8 +3830,8 @@ C0 0F 01 40 -EC -15 +08 +16 00 00 47 @@ -4166,7 +4194,7 @@ E7 47 00 00 -19 +35 10 00 00 @@ -5512,14 +5540,12 @@ F7 FD 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -5539,6 +5565,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -5842,8 +5870,8 @@ BD 00 00 00 -F4 -16 +10 +17 00 00 00 @@ -5854,11 +5882,11 @@ F4 00 00 00 -04 +1C 01 00 00 -04 +20 17 00 00 @@ -5870,7 +5898,7 @@ F4 05 00 00 -20 +3C 01 00 00 diff --git a/testcodes/hello/hello.hex b/testcodes/hello/hello.hex index b45557f13dcd7c698d5076038220ffafb3f11c52..e53f419f2778628e32f6bc882ab978ec0ecef6ac 100644 --- a/testcodes/hello/hello.hex +++ b/testcodes/hello/hello.hex @@ -2,15 +2,15 @@ 04 00 30 -BD +D9 01 00 00 -C5 +E1 01 00 00 -C7 +E3 01 00 00 @@ -42,7 +42,7 @@ C7 00 00 00 -C9 +E5 01 00 00 @@ -54,139 +54,139 @@ C9 00 00 00 -CB +E7 01 00 00 -CD +E9 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 -CF +EB 01 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -3E +4C F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +43 +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 30 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -F4 +54 +46 +5D +46 +DF +E7 +00 +00 +F8 02 00 00 -14 +18 03 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -474,7 +502,7 @@ E7 47 00 00 -AD +C9 01 00 00 @@ -912,14 +940,12 @@ F7 FF 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -939,6 +965,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -1006,7 +1034,7 @@ BD 00 00 30 -10 +2C 04 00 00 @@ -1018,11 +1046,11 @@ BD 00 00 00 -04 +1C 01 00 00 -18 +34 04 00 00 @@ -1034,7 +1062,7 @@ BD 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/interrupt_demo/interrupt_demo.hex b/testcodes/interrupt_demo/interrupt_demo.hex index c02852af1bab0e3ece6ddb51a81d5fb2dd1e3f54..78cd1424ccac7020933145b5ebe2ea6dce52ae6c 100644 --- a/testcodes/interrupt_demo/interrupt_demo.hex +++ b/testcodes/interrupt_demo/interrupt_demo.hex @@ -2,15 +2,15 @@ 04 00 30 -0D +29 0A 00 00 -15 +31 0A 00 00 -17 +33 0A 00 00 @@ -42,7 +42,7 @@ 00 00 00 -19 +35 0A 00 00 @@ -54,139 +54,139 @@ 00 00 00 -1B +37 0A 00 00 -1D +39 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -B7 +D3 08 00 00 -91 +AD 08 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -45 +61 09 00 00 -1F +3B 0A 00 00 -D7 +F3 08 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -F5 -08 +11 +09 00 00 -0B +27 09 00 00 -21 +3D 09 00 00 -33 +4F 09 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 -1F +3B 0A 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -50 +5E F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +55 +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 42 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -64 +54 +46 +5D +46 +DF +E7 +00 +00 +68 10 00 00 -84 +88 10 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -1250,7 +1278,7 @@ E0 E1 00 E0 -B4 +D0 10 00 00 @@ -1930,7 +1958,7 @@ C0 0F 00 40 -04 +20 11 00 00 @@ -2454,7 +2482,7 @@ BD 00 00 30 -80 +9C 10 00 00 @@ -2602,8 +2630,8 @@ E7 47 00 00 -FD -09 +19 +0A 00 00 C1 @@ -4164,14 +4192,12 @@ EE FC 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -4191,6 +4217,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -4446,7 +4474,7 @@ BD 0A 00 00 -80 +9C 11 00 00 @@ -4458,11 +4486,11 @@ BD 00 00 00 -04 +1C 01 00 00 -98 +B4 11 00 00 @@ -4474,7 +4502,7 @@ BD 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/memory_tests/memory_tests.hex b/testcodes/memory_tests/memory_tests.hex index a4eb28524bdcc5bb41d91bb261a44f4667801cb4..77f2e3cf25dd914ee3c055f8f3a1b38c27bde01d 100644 --- a/testcodes/memory_tests/memory_tests.hex +++ b/testcodes/memory_tests/memory_tests.hex @@ -2,15 +2,15 @@ 04 00 30 -85 +A1 0D 00 00 -8D +A9 0D 00 00 -87 +A3 01 00 00 @@ -42,7 +42,7 @@ 00 00 00 -91 +AD 0D 00 00 @@ -54,139 +54,139 @@ 00 00 00 -93 +AF 0D 00 00 -95 +B1 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 -97 +B3 0D 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -46 +54 F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +4B +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 38 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -80 +54 +46 +5D +46 +DF +E7 +00 +00 +84 10 00 00 -A0 +A4 10 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -414,7 +442,7 @@ F3 47 00 00 -6D +89 0B 00 00 @@ -1866,7 +1894,7 @@ FF 00 01 40 -34 +50 11 00 00 @@ -1934,7 +1962,7 @@ FF F0 01 40 -44 +60 11 00 00 @@ -3034,15 +3062,15 @@ FC 03 00 10 -94 +B0 08 00 00 -A0 +BC 08 00 00 -B4 +D0 08 00 00 @@ -3238,7 +3266,7 @@ FC 00 00 00 -80 +9C 08 00 00 @@ -3490,7 +3518,7 @@ E7 47 00 00 -75 +91 0D 00 00 @@ -4344,14 +4372,12 @@ F7 FE 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -4371,6 +4397,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -4474,7 +4502,7 @@ B1 30 78 00 -9C +B8 11 00 00 @@ -4486,11 +4514,11 @@ B1 00 00 00 -04 +1C 01 00 00 -B4 +D0 11 00 00 @@ -4502,7 +4530,7 @@ B4 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/romtable_tests/romtable_tests.hex b/testcodes/romtable_tests/romtable_tests.hex index 83dcf62acf3e629c47784a54f2b7d46bf9fd7b60..fe3db9e1fc84d904a84c23e68b027d3fb17c0610 100644 --- a/testcodes/romtable_tests/romtable_tests.hex +++ b/testcodes/romtable_tests/romtable_tests.hex @@ -2,15 +2,15 @@ 06 00 30 -A1 +BD 0C 00 00 -A9 +C5 0C 00 00 -AB +C7 0C 00 00 @@ -42,7 +42,7 @@ AB 00 00 00 -AD +C9 0C 00 00 @@ -54,139 +54,139 @@ AD 00 00 00 -AF +CB 0C 00 00 -B1 +CD 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 -B3 +CF 0C 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -50 +5E F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +55 +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 42 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -80 +54 +46 +5D +46 +DF +E7 +00 +00 +84 19 00 00 -A0 +A4 19 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -1122,11 +1150,11 @@ EC 00 00 30 -24 +40 17 00 00 -E0 +FC 16 00 00 @@ -1710,7 +1738,7 @@ E0 00 00 00 -68 +84 17 00 00 @@ -1930,7 +1958,7 @@ FA 10 05 B1 -94 +B0 16 00 00 @@ -2594,7 +2622,7 @@ BD 00 00 30 -4C +68 16 00 00 @@ -2738,7 +2766,7 @@ D0 00 00 00 -94 +B0 16 00 00 @@ -3262,7 +3290,7 @@ E7 47 00 00 -91 +AD 0C 00 00 @@ -5576,14 +5604,12 @@ F7 FB 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -5603,6 +5629,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -6778,7 +6806,7 @@ D2 6F 72 00 -9C +B8 1A 00 00 @@ -6790,11 +6818,11 @@ D0 00 00 00 -04 +1C 01 00 00 -6C +88 1B 00 00 @@ -6806,7 +6834,7 @@ C8 05 00 00 -20 +3C 01 00 00 @@ -6822,7 +6850,7 @@ C8 00 00 00 -7C +98 18 00 00 @@ -6830,7 +6858,7 @@ C8 00 00 00 -BC +D8 18 00 00 @@ -6838,7 +6866,7 @@ BC 00 00 00 -04 +20 19 00 00 @@ -6846,7 +6874,7 @@ BC 04 00 00 -2C +48 1A 00 00 @@ -6854,7 +6882,7 @@ C2 04 00 00 -9C +B8 19 00 00 @@ -6862,7 +6890,7 @@ C0 04 00 00 -14 +30 1A 00 00 @@ -6870,7 +6898,7 @@ C1 04 00 00 -74 +90 19 00 00 @@ -6878,7 +6906,7 @@ A6 09 00 00 -DC +F8 17 00 00 @@ -6886,7 +6914,7 @@ DC 09 00 00 -20 +3C 19 00 00 @@ -6894,7 +6922,7 @@ DC 04 00 00 -40 +5C 1A 00 00 @@ -6902,7 +6930,7 @@ DC 00 00 00 -9C +B8 18 00 00 @@ -6910,7 +6938,7 @@ DC 00 00 00 -5C +78 18 00 00 @@ -6918,7 +6946,7 @@ DC 00 00 00 -30 +4C 18 00 00 @@ -6926,7 +6954,7 @@ DC 00 00 00 -E0 +FC 18 00 00 @@ -6934,7 +6962,7 @@ E0 00 00 00 -B8 +D4 17 00 00 @@ -6942,7 +6970,7 @@ C3 04 00 00 -54 +70 1A 00 00 @@ -6950,7 +6978,7 @@ C5 04 00 00 -C4 +E0 19 00 00 @@ -6958,7 +6986,7 @@ C4 09 00 00 -54 +70 19 00 00 @@ -6966,7 +6994,7 @@ C4 09 00 00 -34 +50 19 00 00 @@ -6974,7 +7002,7 @@ C4 04 00 00 -68 +84 1A 00 00 @@ -6982,15 +7010,15 @@ C6 04 00 00 -EC -19 +08 +1A 00 00 25 09 00 00 -44 +60 19 00 00 @@ -6998,7 +7026,7 @@ A1 09 00 00 -64 +80 19 00 00 @@ -7006,7 +7034,7 @@ A1 09 00 00 -08 +24 18 00 00 diff --git a/testcodes/self_reset_demo/self_reset_demo.hex b/testcodes/self_reset_demo/self_reset_demo.hex index 6f91c150d1e7673b0427b8811a30a70d957760a9..0e1e04e22f4e12a7156dcdc651720c6f85d9691f 100644 --- a/testcodes/self_reset_demo/self_reset_demo.hex +++ b/testcodes/self_reset_demo/self_reset_demo.hex @@ -2,15 +2,15 @@ 04 00 30 -CD +E9 05 00 00 -D5 +F1 05 00 00 -05 +21 03 00 00 @@ -42,7 +42,7 @@ D5 00 00 00 -D9 +F5 05 00 00 @@ -54,139 +54,139 @@ D9 00 00 00 -DB +F7 05 00 00 -DD +F9 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 -DF +FB 05 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -46 +54 F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +4B +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 38 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -58 +54 +46 +5D +46 +DF +E7 +00 +00 +5C 09 00 00 -78 +7C 09 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -1186,7 +1214,7 @@ C0 FF 01 40 -A4 +C0 09 00 00 @@ -1338,7 +1366,7 @@ A4 65 74 00 -00 +1C 0A 00 00 @@ -1514,7 +1542,7 @@ E7 47 00 00 -BD +D9 05 00 00 @@ -2368,14 +2396,12 @@ F7 FE 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -2395,6 +2421,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -2642,7 +2670,7 @@ BD 00 00 00 -74 +90 0A 00 00 @@ -2654,11 +2682,11 @@ BD 00 00 00 -04 +1C 01 00 00 -7C +98 0A 00 00 @@ -2670,7 +2698,7 @@ BD 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/sleep_demo/sleep_demo.hex b/testcodes/sleep_demo/sleep_demo.hex index 1a18793ec23d0b21dcba974dd08a9041a74738da..1cd7a974b8e89ba46bad18d7163b5f507ddfd778 100644 --- a/testcodes/sleep_demo/sleep_demo.hex +++ b/testcodes/sleep_demo/sleep_demo.hex @@ -2,15 +2,15 @@ 04 00 30 -1D +39 07 00 00 -25 +41 07 00 00 -27 +43 07 00 00 @@ -42,7 +42,7 @@ 00 00 00 -29 +45 07 00 00 @@ -54,139 +54,139 @@ 00 00 00 -2B +47 07 00 00 -2D +49 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -D9 +F5 04 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 -2F +4B 07 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -3E +4C F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +43 +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 30 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -88 +54 +46 +5D +46 +DF +E7 +00 +00 +8C 0A 00 00 -A8 +AC 0A 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -1318,7 +1346,7 @@ C0 0F 00 40 -2C +48 0B 00 00 @@ -1850,7 +1878,7 @@ E7 47 00 00 -0D +29 07 00 00 @@ -2764,14 +2792,12 @@ F7 FE 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -2791,6 +2817,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -2946,7 +2974,7 @@ BD 0A 00 00 -A4 +C0 0B 00 00 @@ -2958,11 +2986,11 @@ A4 00 00 00 -04 +1C 01 00 00 -B4 +D0 0B 00 00 @@ -2974,7 +3002,7 @@ B4 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/timer_driver_tests/timer_driver_tests.hex b/testcodes/timer_driver_tests/timer_driver_tests.hex index 8a719f09d6163a2ef760be4e8ce301380676e79a..a579076e60944719e5cc91d03b682e85fd287545 100644 --- a/testcodes/timer_driver_tests/timer_driver_tests.hex +++ b/testcodes/timer_driver_tests/timer_driver_tests.hex @@ -2,15 +2,15 @@ 04 00 30 -79 +95 0B 00 00 -81 +9D 0B 00 00 -83 +9F 0B 00 00 @@ -42,7 +42,7 @@ 00 00 00 -85 +A1 0B 00 00 @@ -54,139 +54,139 @@ 00 00 00 -87 +A3 0B 00 00 -89 +A5 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -BD +D9 09 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 -8B +A7 0B 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -50 +5E F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +55 +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 42 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -3C +54 +46 +5D +46 +DF +E7 +00 +00 +50 13 00 00 -5C +70 13 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -360,7 +388,7 @@ B5 BD 01 F0 -C8 +D0 F8 11 46 @@ -374,7 +402,7 @@ D3 FB 01 F0 -E0 +E8 F8 03 B4 @@ -2610,8 +2638,8 @@ BD 00 00 00 -F0 -06 +0C +07 00 00 45 @@ -2742,8 +2770,8 @@ F0 00 00 00 -DC -13 +08 +14 00 00 E0 @@ -2754,7 +2782,7 @@ C0 0F 00 40 -7C +A8 13 00 00 @@ -2966,7 +2994,7 @@ E7 47 00 00 -69 +85 0B 00 00 @@ -3694,7 +3722,7 @@ AA 98 00 F0 -05 +0D FA 10 BC @@ -3882,7 +3910,7 @@ C0 E0 00 F0 -BB +C3 F9 30 31 @@ -3904,7 +3932,7 @@ D1 98 00 F0 -43 +4B F9 FE BD @@ -4006,11 +4034,11 @@ D0 46 00 F0 -10 +18 F9 70 BD -E2 +F2 03 00 00 @@ -4124,10 +4152,10 @@ D3 42 0D D3 -FF -22 09 02 +FF +22 12 BA 03 @@ -4362,10 +4390,10 @@ D3 42 53 40 -00 -22 9C 46 +00 +22 03 09 8B @@ -4378,10 +4406,10 @@ D3 42 12 D3 -FC -22 89 01 +FC +22 12 BA 03 @@ -4508,14 +4536,14 @@ C0 D2 01 46 -63 -46 52 41 -5B -10 10 46 +63 +46 +5B +10 01 D3 40 @@ -4538,14 +4566,30 @@ D3 42 01 B5 +04 +49 00 -20 +28 +02 +DC +49 +1C +08 +40 +00 +E0 +08 +46 C0 46 C0 46 02 BD +FF +FF +FF +7F 70 47 70 @@ -4748,7 +4792,7 @@ F8 46 FF F7 -9B +93 FC 00 28 @@ -4766,7 +4810,7 @@ BD BD 00 00 -2B +1B F9 FF FF @@ -4846,7 +4890,7 @@ B0 46 FF F7 -C7 +BF FD 0F B0 @@ -4884,18 +4928,16 @@ B0 B5 FF F7 -3A +32 FC 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -4915,6 +4957,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -4932,7 +4976,7 @@ C0 46 FE F7 -19 +11 FF 10 BD @@ -4942,7 +4986,7 @@ BD 48 70 47 -14 +18 00 00 30 @@ -5174,7 +5218,7 @@ BD 00 00 00 -58 +84 14 00 00 @@ -5186,23 +5230,23 @@ BD 00 00 00 -04 +1C 01 00 00 -6C +98 14 00 00 -14 +18 00 00 30 -64 +60 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/timer_tests/timer_tests.hex b/testcodes/timer_tests/timer_tests.hex index 207e48d0b06ff229b44583be49200b016bc61b57..3a2c06bfa6e9ebb150b6b398fdf5cbd71707fafd 100644 --- a/testcodes/timer_tests/timer_tests.hex +++ b/testcodes/timer_tests/timer_tests.hex @@ -2,15 +2,15 @@ 04 00 30 -55 +71 12 00 00 -5D +79 12 00 00 -5F +7B 12 00 00 @@ -42,7 +42,7 @@ 00 00 00 -61 +7D 12 00 00 @@ -54,139 +54,139 @@ 00 00 00 -63 +7F 12 00 00 -29 +45 10 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -E1 +FD 0F 00 00 -05 +21 10 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 -67 +83 12 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -46 +54 F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +4B +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 38 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -88 +54 +46 +5D +46 +DF +E7 +00 +00 +8C 15 00 00 -A8 +AC 15 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -4330,7 +4358,7 @@ C0 0F 00 40 -2C +48 16 00 00 @@ -4722,7 +4750,7 @@ E7 47 00 00 -45 +61 12 00 00 @@ -5576,14 +5604,12 @@ F7 FE 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -5603,6 +5629,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -5630,7 +5658,7 @@ BD 48 70 47 -1C +20 00 00 30 @@ -5762,7 +5790,7 @@ BD 0A 00 00 -A4 +C0 16 00 00 @@ -5774,23 +5802,23 @@ A4 00 00 00 -04 +1C 01 00 00 -C0 +DC 16 00 00 -1C +20 00 00 30 -64 +60 04 00 00 -20 +3C 01 00 00 diff --git a/testcodes/watchdog_demo/watchdog_demo.hex b/testcodes/watchdog_demo/watchdog_demo.hex index 60a3d51c5c53d783be52a38e5f77b10c7019fc7d..c3ba3af368479e5df40cb63e47e4a32330b1a8ca 100644 --- a/testcodes/watchdog_demo/watchdog_demo.hex +++ b/testcodes/watchdog_demo/watchdog_demo.hex @@ -2,15 +2,15 @@ 04 00 30 -D9 +F5 08 00 00 -47 +63 08 00 00 -E3 +FF 08 00 00 @@ -42,8 +42,8 @@ E3 00 00 00 -E5 -08 +01 +09 00 00 00 @@ -54,140 +54,140 @@ E5 00 00 00 -E7 -08 +03 +09 00 00 -E9 -08 +05 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 -EB -08 +07 +09 00 00 00 @@ -196,9 +196,9 @@ F0 F8 00 F0 -46 +54 F8 -0C +12 A0 30 C8 @@ -208,32 +208,52 @@ C8 18 2D 18 +AC +42 +01 +D1 +00 +F0 +4B +F8 +0F +CC A2 46 -67 -1E AB 46 +0C +A7 +30 +CF +2D +1B +08 +3F +3F +19 +7C +42 +7F +1E 54 -46 -5D -46 +44 +2D +09 +04 +26 +F4 +41 +64 +1E AC 42 01 -D1 +D3 00 F0 38 F8 -7E -46 -0F -3E -0F -CC -B6 -46 01 26 33 @@ -242,19 +262,23 @@ B6 D0 FB 1A -A2 -46 -AB -46 33 43 -18 +98 47 -10 +54 +46 +5D +46 +DF +E7 +00 +00 +14 0C 00 00 -30 +34 0C 00 00 @@ -286,6 +310,10 @@ D5 47 00 00 +70 +47 +00 +00 00 23 00 @@ -1906,7 +1934,7 @@ C0 FF 01 40 -B0 +CC 0C 00 00 @@ -2230,7 +2258,7 @@ CC 00 00 30 -40 +5C 05 00 00 @@ -2294,7 +2322,7 @@ E7 47 00 00 -C9 +E5 08 00 00 @@ -3148,14 +3176,12 @@ F7 FE 60 BC -00 -27 -49 -08 B6 46 00 26 +00 +27 C0 C5 C0 @@ -3175,6 +3201,8 @@ C5 40 3D 49 +08 +49 00 8D 46 @@ -3338,7 +3366,7 @@ BD 00 00 00 -2C +48 0D 00 00 @@ -3350,11 +3378,11 @@ BD 00 00 00 -04 +1C 01 00 00 -44 +60 0D 00 00 @@ -3366,7 +3394,7 @@ BD 04 00 00 -20 +3C 01 00 00 diff --git a/verif/tb/verilog/nanosoc_tb.v b/verif/tb/verilog/nanosoc_tb.v index 3ab628e10101c8afd73be3e997ee34036b2277ab..ea0dc6d21097d415884ac287a3e95abae4788817 100644 --- a/verif/tb/verilog/nanosoc_tb.v +++ b/verif/tb/verilog/nanosoc_tb.v @@ -95,6 +95,32 @@ localparam BE=0; localparam DATA_IN_FILENAME="data_in.csv"; localparam DATA_OUT_FILENAME="logs/data_out.csv"; +// External Flash +wire QSPI_SCLK; +wire QSPI_nCS; +wire [3:0] QSPI_IO; + +pullup(QSPI_IO[0]); +pullup(QSPI_IO[1]); +pullup(QSPI_IO[2]); +pullup(QSPI_IO[3]); + +// External Flash instantiation +// Uncomment to use flash + +// sst26vf064b u_sst26vf064b( +// .SCK(QSPI_SCLK), +// .SIO(QSPI_IO), +// .CEb(QSPI_nCS) +// ); +// defparam u_sst26vf064b.I0.Tbe = 1_000; +// defparam u_sst26vf064b.I0.Tse = 1_000; +// defparam u_sst26vf064b.I0.Tsce = 1_000; +// defparam u_sst26vf064b.I0.Tpp = 1_000; +// defparam u_sst26vf064b.I0.Tws = 1000; + +// initial #1 $readmemh("image.hex",u_sst26vf064b.I0.memory); + /* SROM_Ax32 #(.ADDRWIDTH (8), @@ -147,7 +173,10 @@ initial begin .P0 (P0[7:0]), .P1 (P1[7:0]), .SWDIO (SWDIOTMS), - .SWDCK (SWCLKTCK) + .SWDCK (SWCLKTCK), + .QSPI_IO (QSPI_IO[3:0]), + .QSPI_SCLK (QSPI_SCLK), + .QSPI_nCS (QSPI_nCS) ); `else nanosoc_chip_pads @@ -166,7 +195,10 @@ initial begin .P0 (P0[15:0]), .P1 (P1[15:0]), .SWDIO (SWDIOTMS), - .SWDCK (SWCLKTCK) + .SWDCK (SWCLKTCK), + .QSPI_IO (QSPI_IO[3:0]), + .QSPI_SCLK (QSPI_SCLK), + .QSPI_nCS (QSPI_nCS) ); `endif // -------------------------------------------------------------------------------- diff --git a/verif/tb/verilog/nanosoc_tb_qs.v b/verif/tb/verilog/nanosoc_tb_qs.v index a79fca87865ec3ce8070499990c904254a4c5875..75a41253e5a7109f072bf544605356bce28f787a 100644 --- a/verif/tb/verilog/nanosoc_tb_qs.v +++ b/verif/tb/verilog/nanosoc_tb_qs.v @@ -95,6 +95,16 @@ localparam BE=0; localparam DATA_IN_FILENAME="data_in.csv"; localparam DATA_OUT_FILENAME="logs/data_out.csv"; +// External Flash +wire QSPI_SCLK; +wire QSPI_nCS; +wire [3:0] QSPI_IO; + +pullup(QSPI_IO[0]); +pullup(QSPI_IO[1]); +pullup(QSPI_IO[2]); +pullup(QSPI_IO[3]); + /* SROM_Ax32 #(.ADDRWIDTH (8), @@ -147,7 +157,10 @@ initial begin .P0 (P0[7:0]), .P1 (P1[7:0]), .SWDIO (SWDIOTMS), - .SWDCK (SWCLKTCK) + .SWDCK (SWCLKTCK), + .QSPI_IO (QSPI_IO[3:0]), + .QSPI_SCLK (QSPI_SCLK), + .QSPI_nCS (QSPI_nCS) ); `else nanosoc_chip_pads @@ -166,7 +179,10 @@ initial begin .P0 (P0[15:0]), .P1 (P1[15:0]), .SWDIO (SWDIOTMS), - .SWDCK (SWCLKTCK) + .SWDCK (SWCLKTCK), + .QSPI_IO (QSPI_IO[3:0]), + .QSPI_SCLK (QSPI_SCLK), + .QSPI_nCS (QSPI_nCS) ); `endif // --------------------------------------------------------------------------------