From 72cd014f9d7807a6f8a8f3cfd00d3778475eebb3 Mon Sep 17 00:00:00 2001
From: Alexander Mandera <alexander@mandera.eu>
Date: Wed, 21 Jun 2023 23:05:53 +0200
Subject: [PATCH] Use binary blob write for whole 20x/30x series

---
 minichlink/minichlink.exe  | Bin 96768 -> 96768 bytes
 minichlink/pgm-wch-linke.c |  12 +++++++-----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/minichlink/minichlink.exe b/minichlink/minichlink.exe
index 7034dcb07c5309422647494d2c5e417d0f30dac0..41c7a0961ea714c1698c7f42a519ef9283b9b923 100644
GIT binary patch
delta 15126
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

delta 14946
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

diff --git a/minichlink/pgm-wch-linke.c b/minichlink/pgm-wch-linke.c
index dd6bb6a..6034f24 100644
--- a/minichlink/pgm-wch-linke.c
+++ b/minichlink/pgm-wch-linke.c
@@ -236,11 +236,13 @@ static int LESetupInterface( void * d )
 		return -1;
 	}
 
-    uint32_t target_chip_type = ( rbuff[4] << 4) + (rbuff[5] >> 4);
-    fprintf(stderr, "Chip Type: %03x\n", target_chip_type);
-	if( target_chip_type == 0x307 || target_chip_type == 0x203 )
+	uint32_t mcu_series = rbuff[4] << 4;
+    uint32_t target_chip_type = mcu_series + (rbuff[5] >> 4);
+	fprintf(stderr, "Chip Type: %03x\n", target_chip_type);
+
+	if( mcu_series == 0x300 || mcu_series == 0x200 )
 	{
-		fprintf( stderr, "CH32V307 or CH32V203 Detected.  Allowing old-flash-mode for operation.\n" );
+		fprintf( stderr, "CH32V30x or CH32V20x MCU detected. Using binary blob write for operation.\n" );
 		MCF.WriteBinaryBlob = LEWriteBinaryBlob;
 
 		iss->sector_size = 256;
@@ -401,7 +403,7 @@ void * TryInit_WCHLinkE()
 
 #if 1
 
-// In case you are using a non-CH32V003 board.
+// Flash Bootloader for V20x and V30x series MCUs
 
 const uint8_t * bootloader = (const uint8_t*)
 "\x93\x77\x15\x00\x41\x11\x99\xcf\xb7\x06\x67\x45\xb7\x27\x02\x40" \
-- 
GitLab