From f99df72fe2f566d11e4beb06e713719298f0e262 Mon Sep 17 00:00:00 2001 From: Byron Lathi Date: Wed, 31 Jul 2024 21:56:50 -0700 Subject: [PATCH] Update sdspi with write dma --- hw/super6502_fpga/sources.list | 1 + .../src/sub/sd_controller_wrapper/sdspi | 2 +- sw/test_code/sd_controller_test/main.s | 33 +++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/hw/super6502_fpga/sources.list b/hw/super6502_fpga/sources.list index a97f34f..4e453fe 100644 --- a/hw/super6502_fpga/sources.list +++ b/hw/super6502_fpga/sources.list @@ -27,6 +27,7 @@ src/sub/sd_controller_wrapper/sdspi/rtl/sdfrontend.v src/sub/sd_controller_wrapper/sdspi/rtl/spicmd.v src/sub/sd_controller_wrapper/sdspi/rtl/sdaxil.v src/sub/sd_controller_wrapper/sdspi/rtl/sddma_mm2s.v +src/sub/sd_controller_wrapper/sdspi/rtl/sddma_mm2s_axi.v src/sub/sd_controller_wrapper/sdspi/rtl/sdio_top.v src/sub/sd_controller_wrapper/sdspi/rtl/sdwb.v src/sub/sd_controller_wrapper/sdspi/rtl/sdio.v diff --git a/hw/super6502_fpga/src/sub/sd_controller_wrapper/sdspi b/hw/super6502_fpga/src/sub/sd_controller_wrapper/sdspi index d1c87ed..c88da8f 160000 --- a/hw/super6502_fpga/src/sub/sd_controller_wrapper/sdspi +++ b/hw/super6502_fpga/src/sub/sd_controller_wrapper/sdspi @@ -1 +1 @@ -Subproject commit d1c87ede5c199bac41379715492e497389cedc4f +Subproject commit c88da8f6e179d1375fe7cda98b4b7ceac367a04d diff --git a/sw/test_code/sd_controller_test/main.s b/sw/test_code/sd_controller_test/main.s index bcc1ab6..ffc55e8 100644 --- a/sw/test_code/sd_controller_test/main.s +++ b/sw/test_code/sd_controller_test/main.s @@ -196,6 +196,33 @@ _init: lda #18 jsr send_dma + ; dumb sleep to wait for DMA to be done. + lda #$3a + @sleep2:dec + bne @sleep2 + + ; Write the first sector into the second sector + stz SD_DMA_BASE+$3 + stz SD_DMA_BASE+$2 + lda #$10 + sta SD_DMA_BASE+$1 + stz SD_DMA_BASE + + stz SD_DMA_LEN + $3 + stz SD_DMA_LEN + $2 + stz SD_DMA_LEN + $1 + lda #$2 + sta SD_DMA_LEN + + ; address 2 + stz sreg+1 + stz sreg + ldx #$00 + lda #$02 + jsr pusheax + lda #25 + jsr write_dma + @end: bra @end @@ -248,6 +275,12 @@ send_dma: pha pla bra send +write_dma: pha + lda #$a4 + sta tmp1 + pla + bra send + send: pha ; push command to stack jsr popeax PHA