From 3153251223915d1b9e96c45c3e8ebc6bdbe411b8 Mon Sep 17 00:00:00 2001
From: cnlohr <lohr85@gmail.com>
Date: Sun, 12 Mar 2023 11:13:38 -0400
Subject: [PATCH] Tidy things up so "x10" is DATA0 and "x11" is DATA1.

---
 minichlink/minichlink.c    | 28 ++++++++++++++--------------
 minichlink/pgm-wch-linke.c |  2 +-
 2 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/minichlink/minichlink.c b/minichlink/minichlink.c
index 15c39d5..ea25796 100644
--- a/minichlink/minichlink.c
+++ b/minichlink/minichlink.c
@@ -530,19 +530,19 @@ static int DefaultWriteWord( void * dev, uint32_t address_to_write, uint32_t dat
 			MCF.WriteReg32( dev, DMABSTRACTAUTO, 0x00000000 ); // Disable Autoexec.
 			did_disable_req = 1;
 			// Different address, so we don't need to re-write all the program regs.
-			// c.lw x9,0(x10) // Get the address to write to. 
+			// c.lw x9,0(x11) // Get the address to write to. 
 			// c.sw x8,0(x9)  // Write to the address.
-			MCF.WriteReg32( dev, DMPROGBUF0, 0xc0804104 );
+			MCF.WriteReg32( dev, DMPROGBUF0, 0xc0804184 );
 			// c.addi x9, 4
-			// c.sw x9,0(x10)
-			MCF.WriteReg32( dev, DMPROGBUF1, 0xc1040491 );
+			// c.sw x9,0(x11)
+			MCF.WriteReg32( dev, DMPROGBUF1, 0xc1840491 );
 
 			if( iss->statetag != STTAG( "RDSQ" ) )
 			{
 				MCF.WriteReg32( dev, DMDATA0, 0xe00000f4 );   // DATA0's location in memory.
-				MCF.WriteReg32( dev, DMCOMMAND, 0x0023100b ); // Copy data to x11
-				MCF.WriteReg32( dev, DMDATA0, 0xe00000f8 );   // DATA1's location in memory.
 				MCF.WriteReg32( dev, DMCOMMAND, 0x0023100a ); // Copy data to x10
+				MCF.WriteReg32( dev, DMDATA0, 0xe00000f8 );   // DATA1's location in memory.
+				MCF.WriteReg32( dev, DMCOMMAND, 0x0023100b ); // Copy data to x11
 				MCF.WriteReg32( dev, DMDATA0, 0x40022010 ); //FLASH->CTLR
 				MCF.WriteReg32( dev, DMCOMMAND, 0x0023100c ); // Copy data to x12
 				MCF.WriteReg32( dev, DMDATA0, CR_PAGE_PG|CR_BUF_LOAD);
@@ -707,22 +707,22 @@ static int DefaultReadWord( void * dev, uint32_t address_to_read, uint32_t * dat
 		{
 			MCF.WriteReg32( dev, DMABSTRACTAUTO, 0 ); // Disable Autoexec.
 
-			// c.lw x8,0(x10) // Pull the address from DATA1
+			// c.lw x8,0(x11) // Pull the address from DATA1
 			// c.lw x9,0(x8)  // Read the data at that location.
-			MCF.WriteReg32( dev, DMPROGBUF0, 0x40044100 );
+			MCF.WriteReg32( dev, DMPROGBUF0, 0x40044180 );
 			// c.addi x8, 4
-			// c.sw x9, 0(x11) // Write back to DATA0
-			MCF.WriteReg32( dev, DMPROGBUF1, 0xc1840411 );
-			// c.sw x8, 0(x10) // Write addy to DATA1
+			// c.sw x9, 0(x10) // Write back to DATA0
+			MCF.WriteReg32( dev, DMPROGBUF1, 0xc1040411 );
+			// c.sw x8, 0(x11) // Write addy to DATA1
 			// c.ebreak
-			MCF.WriteReg32( dev, DMPROGBUF2, 0x9002c100 );
+			MCF.WriteReg32( dev, DMPROGBUF2, 0x9002c180 );
 
 			if( iss->statetag != STTAG( "WRSQ" ) )
 			{
 				MCF.WriteReg32( dev, DMDATA0, 0xe00000f4 );   // DATA0's location in memory.
-				MCF.WriteReg32( dev, DMCOMMAND, 0x0023100b ); // Copy data to x11
-				MCF.WriteReg32( dev, DMDATA0, 0xe00000f8 );   // DATA1's location in memory.
 				MCF.WriteReg32( dev, DMCOMMAND, 0x0023100a ); // Copy data to x10
+				MCF.WriteReg32( dev, DMDATA0, 0xe00000f8 );   // DATA1's location in memory.
+				MCF.WriteReg32( dev, DMCOMMAND, 0x0023100b ); // Copy data to x11
 				MCF.WriteReg32( dev, DMDATA0, 0x40022010 ); //FLASH->CTLR
 				MCF.WriteReg32( dev, DMCOMMAND, 0x0023100c ); // Copy data to x12
 				MCF.WriteReg32( dev, DMDATA0, CR_PAGE_PG|CR_BUF_LOAD);
diff --git a/minichlink/pgm-wch-linke.c b/minichlink/pgm-wch-linke.c
index e3037db..a39d65d 100644
--- a/minichlink/pgm-wch-linke.c
+++ b/minichlink/pgm-wch-linke.c
@@ -205,7 +205,7 @@ static int LEHaltMode( void * d, int mode )
 {
 	libusb_device_handle * dev = ((struct LinkEProgrammerStruct*)d)->devh;
 	if( mode == ((struct LinkEProgrammerStruct*)d)->lasthaltmode )
-		return;
+		return 0;
 	((struct LinkEProgrammerStruct*)d)->lasthaltmode = mode;
 	
 	if( mode == 0 )
-- 
GitLab