fixed flash file generator
parent
bf59543d10
commit
4d69d31fc8
|
@ -86,54 +86,48 @@ RUNTEST 32 TCK;
|
|||
RUNTEST 2.00E-2 SEC;
|
||||
|
||||
// Enter SPI mode
|
||||
|
||||
SIR 8 TDI (3A);
|
||||
SDR 16 TDI (68FE);
|
||||
STATE IDLE;
|
||||
RUNTEST 32 TCK;
|
||||
RUNTEST 2.00E-2 SEC;
|
||||
|
||||
// SPI IO
|
||||
// SPI IO (CMD 0xAB release Power Down???)
|
||||
SDR 8 TDI (D5);
|
||||
|
||||
RUNTEST 2.00E-0 SEC;
|
||||
|
||||
// CONFIRM FLASH ID
|
||||
!SDR 32 TDI (000000F9)
|
||||
! TDO (68FFFFFF)
|
||||
! MASK (FF000000);
|
||||
|
||||
!SDR 8 TDI(60);
|
||||
!SDR 16 TDI(0080);
|
||||
!RUNTEST 1.00E-0 SEC;
|
||||
// CONFIRM FLASH ID (CMD 0x9f JEDEC Flash Id -> Size must be 0x16)
|
||||
SDR 32 TDI (000000F9)
|
||||
TDO (68FFFFFF)
|
||||
MASK (FF000000);
|
||||
|
||||
// CMD 0x06 Write Enable + 0x01 Write 0x00 to Status Register
|
||||
SDR 8 TDI(60);
|
||||
SDR 16 TDI(0080);
|
||||
RUNTEST 1.00E-0 SEC;
|
||||
|
||||
""", file=svf)
|
||||
while True:
|
||||
if((address // 0x10000) != last_page):
|
||||
last_page = (address // 0x10000)
|
||||
print("""SDR 8 TDI (60);
|
||||
""", file=svf)
|
||||
print(f"// CMD 0x06 Write Enable + 0xd8 Erase 64K at 0x{address:x}", file=svf)
|
||||
print("SDR 8 TDI (60);", file=svf)
|
||||
address_flipped = [bitreverse(x) for x in [0xd8,int(address // 0x10000),0x00,0x00]]
|
||||
hex_address= ["{:02X}".format(x) for x in reversed(address_flipped)]
|
||||
print("\n".join(textwrap.wrap("SDR {} TDI ({});".format(8*len(hex_address), "".join(hex_address)), 100)), file=svf)
|
||||
print("""RUNTEST 3.00 SEC;
|
||||
""", file=svf)
|
||||
print("RUNTEST 3.00 SEC;\n", file=svf)
|
||||
|
||||
chunk = bitf.read(flash_page_size)
|
||||
if not chunk:
|
||||
break
|
||||
# Convert chunk to bit-reversed hex
|
||||
print(f"// CMD 0x06 Write Enable + 0x02 Write Chunk to 0x{address:x}", file=svf)
|
||||
br_chunk = [bitreverse(x) for x in bytes([0x02, int(address / 0x10000 % 0x100),int(address / 0x100 % 0x100),int(address % 0x100)]) + chunk]
|
||||
address += len(chunk)
|
||||
hex_chunk = ["{:02X}".format(x) for x in reversed(br_chunk)]
|
||||
print("""
|
||||
SDR 8 TDI (60);
|
||||
""", file=svf)
|
||||
print("SDR 8 TDI (60);", file=svf)
|
||||
print("\n".join(textwrap.wrap("SDR {} TDI ({});".format(8*len(br_chunk), "".join(hex_chunk)), 100)), file=svf)
|
||||
print("""
|
||||
RUNTEST 2.50E-2 SEC;
|
||||
""", file=svf)
|
||||
print("RUNTEST 2.50E-2 SEC;\n", file=svf)
|
||||
|
||||
print("""
|
||||
// BYPASS
|
||||
|
|
Loading…
Reference in New Issue