forked from Github_Repos/cvw
		
	More progress on debug.S, but it crashes in Spike
This commit is contained in:
		
							parent
							
								
									1bb5599806
								
							
						
					
					
						commit
						aba8b9a64b
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -89,6 +89,7 @@ tests/custom/*/*/*.elf | ||||
| tests/custom/*/*/*.map | ||||
| tests/custom/*/*/*.memfile | ||||
| tests/custom/crt0/*.a | ||||
| tests/custom/*/*.elf* | ||||
| sim/sd_model.log | ||||
| fpga/src/sdc/* | ||||
| fpga/src/sdc.tar.gz | ||||
|  | ||||
| @ -2,26 +2,26 @@ | ||||
| 
 | ||||
| TARGET = debug | ||||
| 
 | ||||
| %.elf.memfile: %.elf %.elf.objdump.adr | ||||
| $(TARGET).elf.memfile:$(TARGET).elf $(TARGET).elf.objdump.addr | ||||
| 	riscv64-unknown-elf-elf2hex --bit-width $(if $(findstring rv64,$*),64,32) --input $< --output $@ | ||||
| 
 | ||||
| %.elf.objdump.addr: %.elf.objdump | ||||
| $(TARGET).elf.objdump.addr: $(TARGET).elf.objdump | ||||
| 	extractFunctionRadix.sh $< | ||||
| 
 | ||||
| $(TARGET).objdump: $(TARGET).elf | ||||
| 	riscv64-unknown-elf-objdump -D $(TARGET).elf > $(TARGET).objdump | ||||
| $(TARGET).elf.objdump: $(TARGET).elf | ||||
| 	riscv64-unknown-elf-objdump -D $(TARGET).elf > $(TARGET).elf.objdump | ||||
|      | ||||
| $(TARGET).elf: $(TARGET).S Makefile | ||||
| 	riscv64-unknown-elf-gcc -g -o $(TARGET).elf -march=rv64gc -mabi=lp64 -mcmodel=medany \
 | ||||
| 	    -nostartfiles -T../../link/link.ld $(TARGET).S  | ||||
| 	    -nostartfiles -T$(WALLY)/examples/link/link.ld $(TARGET).S  | ||||
| 
 | ||||
| sim: | ||||
| 	spike +signature=$(TARGET).signature.output +signature-granularity=8 $(TARGET) | ||||
| 	spike --isa=rv64gc +signature=$(TARGET).signature.output +signature-granularity=8 $(TARGET).elf | ||||
| 	diff --ignore-case $(TARGET).signature.output $(TARGET).reference_output || exit | ||||
| 	echo "Signature matches! Success!" | ||||
| 
 | ||||
| clean: | ||||
| 	rm -f $(TARGET).elf $(TARGET).objdump $(TARGET).objdump.adr %(TARGET).elf.memfile $(TARGET).signature.output | ||||
| 	rm -f $(TARGET).elf $(TARGET).elf.* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -3,13 +3,22 @@ | ||||
| // Small code snippets for the purpose of debugging issues | ||||
| // SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1 | ||||
| 
 | ||||
| # openhwgroup/cvw Issue #55 | ||||
| li x1, 0x7ff0000000000001 | ||||
| fmv.w.x f4, x1 | ||||
| li x1, 0x7ff8000000000000 | ||||
| fmv.w.x f9, x1 | ||||
| fsgnjx.s f12,f9,f4  # expected f 0xffffffff7fc00000 | ||||
| .global rvtest_entry_point
 | ||||
| rvtest_entry_point: | ||||
| 
 | ||||
|     # openhwgroup/cvw Issue #55 | ||||
|     la a6, begin_signature | ||||
|     la a7, rvtest_data | ||||
|     fadd.d ft0, ft1, ft2 | ||||
|     fld f4, 0(a7) | ||||
|     fld f9, 8(a7) | ||||
| #    li x1, 0x7ff0000000000001 | ||||
| #    sd x1, 0(a6) | ||||
| #    fmv.w.x f4, x1 | ||||
| #    li x1, 0x7ff8000000000000 | ||||
|  #   fmv.w.x f9, x1 | ||||
|     fsgnjx.s f12,f9,f4  # expected f 0xffffffff7fc00000 | ||||
|     fsd f12, 0(a6) | ||||
| 
 | ||||
| ######################### | ||||
| # HTIF and signature | ||||
| @ -23,14 +32,20 @@ write_tohost: | ||||
| self_loop: | ||||
|     j self_loop         # wait | ||||
|      | ||||
| .align 6
 | ||||
| .section .tohost  | ||||
| tohost:                 # write to HTIF | ||||
|     .dword 0
 | ||||
| fromhost: | ||||
|     .dword 0
 | ||||
| 
 | ||||
| .align 6
 | ||||
| .data | ||||
| 
 | ||||
| rvtest_data: | ||||
| .dword 0x7ff0000000000001
 | ||||
| .dword 0x7ff8000000000000
 | ||||
| 
 | ||||
| .EQU XLEN,64 | ||||
| begin_signature: | ||||
|     .fill 2*(XLEN/32),4,0xdeadbeef    #  | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user