yes
2024-12-04 06:58:11 +06:00
2024-12-04 07:04:13 +06:00
yes
2024-12-04 06:58:11 +06:00
yes
2024-12-04 06:58:11 +06:00
2016-08-22 21:16:15 +03:00
yes
2024-12-04 06:58:11 +06:00
yes
2024-12-04 06:58:11 +06:00
yes
2024-12-04 06:58:11 +06:00
yes
2024-12-04 06:58:11 +06:00
yes
2024-12-04 06:58:11 +06:00
yes
2024-12-04 06:58:11 +06:00
yes
2024-12-04 06:58:11 +06:00
yes
2024-12-04 06:58:11 +06:00

RTL-8710 openocd support

OpenOCD support for RTL8710 and integrated flash.
Uses and links against ROM functions, they're there anyway so whatever, we get a smaller flasher binary and codebase this way too.

pins:

SWD

  • SWDIO: GE3
  • SWCLK: GE4

JTAG

  • TRST: GE0
  • TDI: GE1
  • TDO: GE2
  • TMS: GE3
  • TCK: GE4

building:

make

RTL8710 OpenOCD Commands

Core Functions

  • rtl8710_flasher_init init flasher, loads firmware and reads flash ID to determine capacity

  • rtl8710_flasher_mrw [reg]
    reads 32-bit value from specified register

  • rtl8710_flasher_wait polls control register at buffer + 0x00 until operation completes

  • rtl8710_flasher_load_block [filename] [offset] [length] loads data block from file into buffer at buffer + 0x20

  • rtl8710_flasher_block [command] [offset] [len] internal function for read/write/verify operations. Command must be "read", "write" or "verify"

Block Operations

  • rtl8710_flasher_read_block [offset] [len] reads block from flash into buffer

  • rtl8710_flasher_write_block [offset] [len] writes buffer contents to flash

  • rtl8710_flasher_verify_block [offset] [len] verifies flash contents against buffer

Flash Commands

  • rtl8710_flash_read_id reads JEDEC ID and displays manufacturer ID, memory type and capacity

  • rtl8710_flash_read_mac reads MAC address from flash offset 0xA088

  • rtl8710_flash_erase [type] [offset] erases flash memory. Type must be "mass" or "sector". For sector erase, specify offset

  • rtl8710_flash_mass_erase performs mass erase of entire flash chip

  • rtl8710_flash_sector_erase [offset] erases single sector at specified offset

  • rtl8710_flash_read [filename] [offset] [size] reads size bytes from flash at offset to filename

  • rtl8710_flash_write [filename] [offset] writes file to flash at offset, using configured buffer size chunks

  • rtl8710_flash_verify [filename] [offset] verifies flash contents against file at offset, using configured buffer size chunks

Configuration

  • rtl8710_flash_auto_erase [1/0] enables/disables automatic sector erase before write operations

  • rtl8710_flash_auto_verify [1/0] enables/disables automatic verification after write operations

System Control

  • rtl8710_reboot triggers system reboot by writing 0x05FA0007 to AIRCR register @ 0xE000ED0C

Example Usage

# Read 1MB from flash
openocd -f interface/stlink-v2-1.cfg -f rtl8710.ocd -c "init" -c "reset halt" \
  -c "rtl8710_flash_read_id" -c "rtl8710_flash_read dump.bin 0 1048576" -c "shutdown"

# write to flash with auto erase/verify
openocd -f interface/stlink-v2-1.cfg -f rtl8710.ocd -c "init" -c "reset halt" \
  -c "rtl8710_flash_auto_erase 1" -c "rtl8710_flash_auto_verify 1" \
  -c "rtl8710_flash_write dump.bin 0" -c "shutdown"

About

RTL8710 OpenOCD support based on work by Rebane (rebane@alkohol.ee)

This document and the attached source code is released under GPLv2.

Description
Yet another fork of rtl8710 openocd script
Readme 94 KiB
Languages
C 43.8%
Tcl 43.7%
Makefile 10.5%
Shell 2%