ossc/scripts/dump_flash_regs.tcl
2025-03-26 23:30:42 +02:00

59 lines
1.9 KiB
Tcl

# flash details
set flash_base 0x02000000
set flash_imem_offset 0x00100000
set flash_imem_base [format 0x%.8x [expr $flash_base + $flash_imem_offset]]
set flash_secsize 65536
# flash controller register addresses
set control_register 0x00020100
set operating_protocols_setting 0x00020110
set read_instr 0x00020114
set write_instr 0x00020118
set flash_cmd_setting 0x0002011c
set flash_cmd_ctrl 0x00020120
set flash_cmd_addr_register 0x00020124
set flash_cmd_write_data_0 0x00020128
set flash_cmd_read_data_0 0x00020130
#Select the master service type and check for available service paths.
set service_paths [get_service_paths master]
#Set the master service path.
set master_service_path [lindex $service_paths 0]
#Open the master service.
set claim_path [claim_service master $master_service_path mylib]
puts "Halting CPU"
master_write_32 $claim_path 0x40 0x00000001
master_write_32 $claim_path 0x40 0x80000001
#read status reg
master_write_32 $claim_path $flash_cmd_setting 0x00001805
master_write_32 $claim_path $flash_cmd_ctrl 0x1
set st [master_read_8 $claim_path $flash_cmd_read_data_0 1]
puts "\nSTATUS: $st"
#read flag reg
master_write_32 $claim_path $flash_cmd_setting 0x00001848
master_write_32 $claim_path $flash_cmd_ctrl 0x1
set flags [master_read_8 $claim_path $flash_cmd_read_data_0 1]
puts "FLAGS: $flags"
#read vcr reg
master_write_32 $claim_path $flash_cmd_setting 0x00001861
master_write_32 $claim_path $flash_cmd_ctrl 0x1
set vcr [master_read_8 $claim_path $flash_cmd_read_data_0 1]
puts "VCR: $vcr"
#read evcr reg
master_write_32 $claim_path $flash_cmd_setting 0x00001881
master_write_32 $claim_path $flash_cmd_ctrl 0x1
set evcr [master_read_8 $claim_path $flash_cmd_read_data_0 1]
puts "EVCR: $evcr"
#clear flag register
master_write_32 $claim_path $flash_cmd_setting 0x00000050
master_write_32 $claim_path $flash_cmd_ctrl 0x1