mirror of
https://github.com/jialexd/sdk-ameba-v4.0c_180328.git
synced 2026-07-13 15:05:43 +00:00
first add sdk
This commit is contained in:
commit
f91efd1250
3915 changed files with 1291882 additions and 0 deletions
BIN
component/soc/realtek/8711b/misc/bsp/image/boot_all.bin
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/image/boot_all.bin
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_http.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_http.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_mdns.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_mdns.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_platform.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_platform.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_rtlstd.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_rtlstd.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_websocket.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_websocket.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_wlan.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_wlan.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_wlan_mp.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_wlan_mp.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_wps.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_wps.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_xmodem.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/GCC/lib_xmodem.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_http.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_http.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_mdns.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_mdns.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_platform.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_platform.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_rtlstd.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_rtlstd.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_websocket.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_websocket.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_wlan.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_wlan.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_wlan_mp.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_wlan_mp.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_wps.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_wps.a
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_xmodem.a
Executable file
BIN
component/soc/realtek/8711b/misc/bsp/lib/common/IAR/lib_xmodem.a
Executable file
Binary file not shown.
77
component/soc/realtek/8711b/misc/gcc_utility/Check_Jtag.sh
Executable file
77
component/soc/realtek/8711b/misc/gcc_utility/Check_Jtag.sh
Executable file
|
|
@ -0,0 +1,77 @@
|
|||
#!/bin/sh
|
||||
|
||||
#===============================================================================
|
||||
CURRENT_UTILITY_DIR=$(pwd)
|
||||
GDBSCPTFILE="../../../component/soc/realtek/8195a/misc/gcc_utility/rtl_gdb_flash_write.txt"
|
||||
|
||||
#===============================================================================
|
||||
RLXSTS=$(ps -W | grep "rlx_probe_driver.exe" | grep -v "grep" | wc -l)
|
||||
echo $RLXSTS
|
||||
JLKSTS=$(ps -W | grep "JLinkGDBServer.exe" | grep -v "grep" | wc -l)
|
||||
echo $JLKSTS
|
||||
|
||||
echo $CURRENT_UTILITY_DIR
|
||||
|
||||
#===============================================================================
|
||||
#make the new string for being written
|
||||
if [ $RLXSTS = 1 ]
|
||||
then
|
||||
echo "probe get"
|
||||
|
||||
#-------------------------------------------
|
||||
LINE_NUMBER=$(grep -n "monitor reset " $GDBSCPTFILE | awk -F":" '{print $1}')
|
||||
DEFAULT_STR=$(grep -n "monitor reset " $GDBSCPTFILE | awk -F":" '{print $2}')
|
||||
#echo $LINE_NUMBER
|
||||
echo $DEFAULT_STR
|
||||
STRLEN_DFT=$(expr length "$DEFAULT_STR")
|
||||
DEFAULT_STR="#monitor reset 1"
|
||||
echo $DEFAULT_STR
|
||||
#-------------------------------------------
|
||||
SED_PARA="$LINE_NUMBER""c""$DEFAULT_STR"
|
||||
sed -i "$SED_PARA" $GDBSCPTFILE
|
||||
|
||||
#===========================================
|
||||
LINE_NUMBER=$(grep -n "monitor sleep " $GDBSCPTFILE | awk -F":" '{print $1}')
|
||||
DEFAULT_STR=$(grep -n "monitor sleep " $GDBSCPTFILE | awk -F":" '{print $2}')
|
||||
#echo $LINE_NUMBER
|
||||
echo $DEFAULT_STR
|
||||
STRLEN_DFT=$(expr length "$DEFAULT_STR")
|
||||
DEFAULT_STR="#monitor sleep 20"
|
||||
echo $DEFAULT_STR
|
||||
#-------------------------------------------
|
||||
SED_PARA="$LINE_NUMBER""c""$DEFAULT_STR"
|
||||
sed -i "$SED_PARA" $GDBSCPTFILE
|
||||
else
|
||||
|
||||
if [ $JLKSTS = 1 ]
|
||||
then
|
||||
echo "jlink get"
|
||||
|
||||
#-------------------------------------------
|
||||
LINE_NUMBER=$(grep -n "monitor reset " $GDBSCPTFILE | awk -F":" '{print $1}')
|
||||
DEFAULT_STR=$(grep -n "monitor reset " $GDBSCPTFILE | awk -F":" '{print $2}')
|
||||
#echo $LINE_NUMBER
|
||||
echo $DEFAULT_STR
|
||||
STRLEN_DFT=$(expr length "$DEFAULT_STR")
|
||||
DEFAULT_STR="monitor reset 1"
|
||||
echo $DEFAULT_STR
|
||||
#-------------------------------------------
|
||||
SED_PARA="$LINE_NUMBER""c""$DEFAULT_STR"
|
||||
sed -i "$SED_PARA" $GDBSCPTFILE
|
||||
|
||||
#===========================================
|
||||
LINE_NUMBER=$(grep -n "monitor sleep " $GDBSCPTFILE | awk -F":" '{print $1}')
|
||||
DEFAULT_STR=$(grep -n "monitor sleep " $GDBSCPTFILE | awk -F":" '{print $2}')
|
||||
#echo $LINE_NUMBER
|
||||
echo $DEFAULT_STR
|
||||
STRLEN_DFT=$(expr length "$DEFAULT_STR")
|
||||
DEFAULT_STR="monitor sleep 20"
|
||||
echo $DEFAULT_STR
|
||||
#-------------------------------------------
|
||||
SED_PARA="$LINE_NUMBER""c""$DEFAULT_STR"
|
||||
sed -i "$SED_PARA" $GDBSCPTFILE
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
#===============================================================================
|
||||
62
component/soc/realtek/8711b/misc/gcc_utility/openocd/amebaz.cfg
Executable file
62
component/soc/realtek/8711b/misc/gcc_utility/openocd/amebaz.cfg
Executable file
|
|
@ -0,0 +1,62 @@
|
|||
# Main file for Ameba1 series Cortex-M3 parts
|
||||
#
|
||||
# !!!!!!
|
||||
#
|
||||
|
||||
set CHIPNAME rtl8711b
|
||||
set CHIPSERIES amebaz
|
||||
|
||||
# Adapt based on what transport is active.
|
||||
source [find target/swj-dp.tcl]
|
||||
|
||||
if { [info exists CHIPNAME] } {
|
||||
set _CHIPNAME $CHIPNAME
|
||||
} else {
|
||||
error "CHIPNAME not set. Please do not include amebaz.cfg directly."
|
||||
}
|
||||
|
||||
if { [info exists CHIPSERIES] } {
|
||||
# Validate chip series is supported
|
||||
if { $CHIPSERIES != "amebaz" } {
|
||||
error "Unsupported chip series specified."
|
||||
}
|
||||
set _CHIPSERIES $CHIPSERIES
|
||||
} else {
|
||||
error "CHIPSERIES not set. Please do not include amebaz.cfg directly."
|
||||
}
|
||||
|
||||
if { [info exists CPUTAPID] } {
|
||||
# Allow user override
|
||||
set _CPUTAPID $CPUTAPID
|
||||
} else {
|
||||
# Amebaz use a Cortex M4 core.
|
||||
if { $_CHIPSERIES == "amebaz" } {
|
||||
|
||||
set _CPUTAPID 0x2ba01477
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
swj_newdap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID
|
||||
|
||||
set _TARGETNAME $_CHIPNAME.cpu
|
||||
target create $_TARGETNAME cortex_m -chain-position $_TARGETNAME
|
||||
|
||||
|
||||
# Run with *real slow* clock by default since the
|
||||
# boot rom could have been playing with the PLL, so
|
||||
# we have no idea what clock the target is running at.
|
||||
adapter_khz 10
|
||||
|
||||
# delays on reset lines
|
||||
adapter_nsrst_delay 200
|
||||
|
||||
|
||||
# Ameba1 (Cortex M3 core) support SYSRESETREQ
|
||||
if {![using_hla]} {
|
||||
# if srst is not fitted use SYSRESETREQ to
|
||||
# perform a soft reset
|
||||
cortex_m reset_config sysresetreq
|
||||
}
|
||||
|
||||
#$_TARGETNAME configure -event reset-init {amebaz_init}
|
||||
55
component/soc/realtek/8711b/misc/gcc_utility/rtl_gdb_debug_jlink.txt
Executable file
55
component/soc/realtek/8711b/misc/gcc_utility/rtl_gdb_debug_jlink.txt
Executable file
|
|
@ -0,0 +1,55 @@
|
|||
# GDB script for loading ram.bin process
|
||||
|
||||
#===============================================================================
|
||||
#set GDB connection
|
||||
set remotetimeout 100000
|
||||
target remote :2331
|
||||
|
||||
#===============================================================================
|
||||
#Message display setting
|
||||
#disable all messages
|
||||
|
||||
set verbose off
|
||||
set complaints 0
|
||||
set confirm off
|
||||
set exec-done-display off
|
||||
show exec-done-display
|
||||
set trace-commands off
|
||||
#set debug aix-thread off
|
||||
#set debug dwarf2-die 0
|
||||
set debug displaced off
|
||||
set debug expression 0
|
||||
set debug frame 0
|
||||
set debug infrun 0
|
||||
set debug observer 0
|
||||
set debug overload 0
|
||||
set debugvarobj 0
|
||||
set pagination off
|
||||
set print address off
|
||||
set print symbol-filename off
|
||||
set print symbol off
|
||||
set print pretty off
|
||||
set print object off
|
||||
#set debug notification off
|
||||
set debug parser off
|
||||
set debug remote 0
|
||||
|
||||
#===============================================================================
|
||||
monitor reset 1
|
||||
monitor sleep 20
|
||||
monitor clrbp
|
||||
#===============================================================================
|
||||
#Load flash download file
|
||||
file ./application/Debug/bin/application.axf
|
||||
|
||||
#x /1xw 0x40000210
|
||||
|
||||
b main
|
||||
continue
|
||||
clear main
|
||||
#Load the file
|
||||
#lo
|
||||
|
||||
|
||||
|
||||
|
||||
58
component/soc/realtek/8711b/misc/gcc_utility/rtl_gdb_debug_openocd.txt
Executable file
58
component/soc/realtek/8711b/misc/gcc_utility/rtl_gdb_debug_openocd.txt
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
# GDB script for loading ram.bin process
|
||||
|
||||
#===============================================================================
|
||||
#set GDB connection
|
||||
set remotetimeout 100000
|
||||
target remote :3333
|
||||
|
||||
#===============================================================================
|
||||
#Message display setting
|
||||
#disable all messages
|
||||
|
||||
set verbose off
|
||||
set complaints 0
|
||||
set confirm off
|
||||
set exec-done-display off
|
||||
show exec-done-display
|
||||
set trace-commands off
|
||||
#set debug aix-thread off
|
||||
#set debug dwarf2-die 0
|
||||
set debug displaced off
|
||||
set debug expression 0
|
||||
set debug frame 0
|
||||
set debug infrun 0
|
||||
set debug observer 0
|
||||
set debug overload 0
|
||||
set debugvarobj 0
|
||||
set pagination off
|
||||
set print address off
|
||||
set print symbol-filename off
|
||||
set print symbol off
|
||||
set print pretty off
|
||||
set print object off
|
||||
#set debug notification off
|
||||
set debug parser off
|
||||
set debug remote 0
|
||||
|
||||
#===============================================================================
|
||||
#monitor reset init
|
||||
#monitor halt
|
||||
monitor soft_reset_halt
|
||||
monitor sleep 20
|
||||
#===============================================================================
|
||||
#Load flash download file
|
||||
file ./application/Debug/bin/application.axf
|
||||
|
||||
#skip sdram init, it has been init in openocd config
|
||||
set {int}0x40000210=0x211157
|
||||
#x /1xw 0x40000210
|
||||
|
||||
b main
|
||||
continue
|
||||
clear main
|
||||
#Load the file
|
||||
#lo
|
||||
|
||||
|
||||
|
||||
|
||||
34
component/soc/realtek/8711b/misc/gnu_utility/flash_download/Makefile
Executable file
34
component/soc/realtek/8711b/misc/gnu_utility/flash_download/Makefile
Executable file
|
|
@ -0,0 +1,34 @@
|
|||
|
||||
include $(MAKE_INCLUDE_GEN)
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
|
||||
#*****************************************************************************#
|
||||
# Object FILE LIST #
|
||||
#*****************************************************************************#
|
||||
OBJS =
|
||||
|
||||
#*****************************************************************************#
|
||||
# RULES TO GENERATE TARGETS #
|
||||
#*****************************************************************************#
|
||||
|
||||
# Define the Rules to build the core targets
|
||||
all: CORE_TARGETS
|
||||
make -C src all
|
||||
|
||||
#*****************************************************************************#
|
||||
# GENERATE OBJECT FILE
|
||||
#*****************************************************************************#
|
||||
CORE_TARGETS: $(OBJS)
|
||||
|
||||
|
||||
#*****************************************************************************#
|
||||
# RULES TO CLEAN TARGETS #
|
||||
#*****************************************************************************#
|
||||
clean:
|
||||
make -C src clean
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
#!/bin/sh
|
||||
|
||||
#===============================================================================
|
||||
CURRENT_UTILITY_DIR=$(pwd)
|
||||
GDBSCPTFILE="../../../component/soc/realtek/8711b/misc/gnu_utility/flash_download/image/rtl_gdb_jtag_boot_com.txt"
|
||||
|
||||
#===============================================================================
|
||||
RLXSTS=$(ps -W | grep "rlx_probe_driver.exe" | grep -v "grep" | wc -l)
|
||||
echo $RLXSTS
|
||||
JLKSTS=$(ps -W | grep "JLinkGDBServer.exe" | grep -v "grep" | wc -l)
|
||||
echo $JLKSTS
|
||||
|
||||
#===============================================================================
|
||||
#make the new string for being written
|
||||
if [ $RLXSTS = 1 ]
|
||||
then
|
||||
echo "probe get"
|
||||
|
||||
#-------------------------------------------
|
||||
LINE_NUMBER=$(grep -n "monitor reset " $GDBSCPTFILE | awk -F":" '{print $1}')
|
||||
DEFAULT_STR=$(grep -n "monitor reset " $GDBSCPTFILE | awk -F":" '{print $2}')
|
||||
#echo $LINE_NUMBER
|
||||
echo $DEFAULT_STR
|
||||
STRLEN_DFT=$(expr length "$DEFAULT_STR")
|
||||
DEFAULT_STR="#monitor reset 1"
|
||||
echo $DEFAULT_STR
|
||||
#-------------------------------------------
|
||||
SED_PARA="$LINE_NUMBER""c""$DEFAULT_STR"
|
||||
sed -i "$SED_PARA" $GDBSCPTFILE
|
||||
|
||||
#===========================================
|
||||
LINE_NUMBER=$(grep -n "monitor sleep " $GDBSCPTFILE | awk -F":" '{print $1}')
|
||||
DEFAULT_STR=$(grep -n "monitor sleep " $GDBSCPTFILE | awk -F":" '{print $2}')
|
||||
#echo $LINE_NUMBER
|
||||
echo $DEFAULT_STR
|
||||
STRLEN_DFT=$(expr length "$DEFAULT_STR")
|
||||
DEFAULT_STR="#monitor sleep 20"
|
||||
echo $DEFAULT_STR
|
||||
#-------------------------------------------
|
||||
SED_PARA="$LINE_NUMBER""c""$DEFAULT_STR"
|
||||
sed -i "$SED_PARA" $GDBSCPTFILE
|
||||
else
|
||||
|
||||
if [ $JLKSTS = 1 ]
|
||||
then
|
||||
echo "jlink get"
|
||||
echo $CURRENT_UTILITY_DIR
|
||||
#-------------------------------------------
|
||||
LINE_NUMBER=$(grep -n "monitor reset " $GDBSCPTFILE | awk -F":" '{print $1}')
|
||||
DEFAULT_STR=$(grep -n "monitor reset " $GDBSCPTFILE | awk -F":" '{print $2}')
|
||||
#echo $LINE_NUMBER
|
||||
echo $DEFAULT_STR
|
||||
STRLEN_DFT=$(expr length "$DEFAULT_STR")
|
||||
DEFAULT_STR="monitor reset 1"
|
||||
echo $DEFAULT_STR
|
||||
#-------------------------------------------
|
||||
SED_PARA="$LINE_NUMBER""c""$DEFAULT_STR"
|
||||
sed -i "$SED_PARA" $GDBSCPTFILE
|
||||
|
||||
#===========================================
|
||||
LINE_NUMBER=$(grep -n "monitor sleep " $GDBSCPTFILE | awk -F":" '{print $1}')
|
||||
DEFAULT_STR=$(grep -n "monitor sleep " $GDBSCPTFILE | awk -F":" '{print $2}')
|
||||
#echo $LINE_NUMBER
|
||||
echo $DEFAULT_STR
|
||||
STRLEN_DFT=$(expr length "$DEFAULT_STR")
|
||||
DEFAULT_STR="monitor sleep 20"
|
||||
echo $DEFAULT_STR
|
||||
#-------------------------------------------
|
||||
SED_PARA="$LINE_NUMBER""c""$DEFAULT_STR"
|
||||
sed -i "$SED_PARA" $GDBSCPTFILE
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
#===============================================================================
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
#!/bin/sh
|
||||
|
||||
#===============================================================================
|
||||
CURRENT_UTILITY_DIR=$(pwd)
|
||||
FLASHDLIMGDIR=$1
|
||||
IMAGE_TARGET_FOLDER=$CURRENT_UTILITY_DIR/image
|
||||
echo "..."
|
||||
echo $CURRENT_UTILITY_DIR
|
||||
echo $IMAGE_TARGET_FOLDER
|
||||
GDBSCPTFILE="$FLASHDLIMGDIR/rtl_gdb_flash_write.txt"
|
||||
|
||||
#===============================================================================
|
||||
#set image2 code size
|
||||
FLASHFILENAME="$IMAGE_TARGET_FOLDER/image2_all_ota1.bin"
|
||||
FLASH_FILE_SIZE=$(stat -c %s $FLASHFILENAME)
|
||||
sed -i "s#^set \$FlashFileSize =.*#set \$FlashFileSize =$FLASH_FILE_SIZE#g" $GDBSCPTFILE
|
||||
|
||||
#set boot code size
|
||||
FLASHFILENAME="$IMAGE_TARGET_FOLDER/boot_all.bin"
|
||||
FLASH_FILE_SIZE=$(stat -c %s $FLASHFILENAME)
|
||||
sed -i "s#^set \$XIPBootSize =.*#set \$XIPBootSize =$FLASH_FILE_SIZE#g" $GDBSCPTFILE
|
||||
|
||||
#set system data size
|
||||
FLASHFILENAME="$IMAGE_TARGET_FOLDER/system.bin"
|
||||
FLASH_FILE_SIZE=$(stat -c %s $FLASHFILENAME)
|
||||
sed -i "s#^set \$SysDataSize =.*#set \$SysDataSize =$FLASH_FILE_SIZE#g" $GDBSCPTFILE
|
||||
|
||||
#OTA2 size
|
||||
FLASHFILENAME="$IMAGE_TARGET_FOLDER/image2_all_ota2.bin"
|
||||
FLASH_FILE_SIZE=$(stat -c %s $FLASHFILENAME)
|
||||
sed -i "s#^set \$OTA2Size =.*#set \$OTA2Size =$FLASH_FILE_SIZE#g" $GDBSCPTFILE
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
#!/bin/sh
|
||||
|
||||
#===============================================================================
|
||||
CURRENT_UTILITY_DIR=$(pwd)
|
||||
echo "..."
|
||||
echo $CURRENT_UTILITY_DIR
|
||||
BOOTALLFILENAME="./application/Debug/bin/boot_all.bin"
|
||||
RAMFILENAME="./application/Debug/bin/image2_all_ota1.bin"
|
||||
|
||||
echo $RAMFILENAME
|
||||
#RAMFILENAME="ram_2.bin"
|
||||
GDBSCPTFILE="../../../component/soc/realtek/8711b/misc/gcc_utility/flash_download/rtl_gdb_flash_write.txt"
|
||||
|
||||
#===============================================================================
|
||||
#get file size
|
||||
BOOTALL_FILE_SIZE=$(stat -c %s $BOOTALLFILENAME)
|
||||
BOOTALL_FILE_SIZE_HEX=`echo "obase=16; $BOOTALL_FILE_SIZE"|bc`
|
||||
|
||||
RAM_FILE_SIZE=$(stat -c %s $RAMFILENAME)
|
||||
RAM_FILE_SIZE_HEX=`echo "obase=16; $RAM_FILE_SIZE"|bc`
|
||||
|
||||
echo "size "$BOOTALL_FILE_SIZE" --> 0x"$BOOTALL_FILE_SIZE_HEX
|
||||
echo "size "$RAM_FILE_SIZE" --> 0x"$RAM_FILE_SIZE_HEX
|
||||
|
||||
echo "set \$BOOTALLFILESize = 0x$BOOTALL_FILE_SIZE_HEX" > BTAsize.gdb
|
||||
echo "set \$RamFileSize = 0x$RAM_FILE_SIZE_HEX" > fwsize.gdb
|
||||
exit
|
||||
Binary file not shown.
|
|
@ -0,0 +1,190 @@
|
|||
# GDB script for loading ram.bin process
|
||||
|
||||
source ../../../component/soc/realtek/8711b/misc/gnu_utility/flash_download/image/rtl_gdb_jtag_boot_com.txt
|
||||
|
||||
#===============================================================================
|
||||
#Macro define
|
||||
set $FLASHDATBUFSIZE = 0x800
|
||||
|
||||
set $IMAGE_BOOT = 0x001
|
||||
set $IMAGE_XIP1 = 0x002
|
||||
set $IMAGE_XIP2 = 0x003
|
||||
set $IMAGE_SYSD = 0x004
|
||||
|
||||
#===============================================================================
|
||||
#register define
|
||||
set $PERI_ON_BASE = 0x40000000
|
||||
set $REG_SOC_PERI_FUNC0_EN = 0x0210
|
||||
set $SPI_FLASH_BASE = 0x08000000
|
||||
#===============================================================================
|
||||
|
||||
#Variables declaration (1)
|
||||
#binary file size
|
||||
set $BOOTALLFileSize = 0x0000
|
||||
set $RamFileSize = 0x0000
|
||||
source BTAsize.gdb
|
||||
source fwsize.gdb
|
||||
printf "-------------------------------\n"
|
||||
printf "BOOTALLFileSize: %x\n",$BOOTALLFILESize
|
||||
printf "RamFileSize: %x\n",$RamFileSize
|
||||
printf "-------------------------------\n"
|
||||
|
||||
|
||||
#===============================================================================
|
||||
#Load flash download file
|
||||
printf "Load flash loader.\n"
|
||||
file ../../../component/soc/realtek/8711b/misc/gnu_utility/flash_download/image/target_FPGA.axf
|
||||
#Load the file
|
||||
#lo
|
||||
#restore ./application/Debug/bin/rom.bin binary 0x0
|
||||
restore ../../../component/soc/realtek/8711b/misc/gnu_utility/flash_download/image/flash_loader_ram_1.bin binary 0x10002000
|
||||
#===============================================================================
|
||||
|
||||
|
||||
#===============================================================================
|
||||
#flash write function
|
||||
define flash_write
|
||||
printf "flash_write FileName:%x \n", $arg0
|
||||
printf "flash_write FileSize:%d \n", $arg1
|
||||
printf "flash_write FlashAddrForWrite:%x \n", FlashAddrForWrite
|
||||
|
||||
set $FileName = $arg0
|
||||
set $FileSize = $arg1
|
||||
set $Loopnumber = ($FileSize / $FLASHDATBUFSIZE)
|
||||
set $TailSize = ($FileSize % $FLASHDATBUFSIZE)
|
||||
printf "FileSize: %x\n",$FileSize
|
||||
printf "Loopnumber = %d\n", $Loopnumber
|
||||
printf "TailSize = %d\n", $TailSize
|
||||
printf "global variables\n"
|
||||
|
||||
set $FILESTARTADDR = 0
|
||||
set $FLASHDATSRC = FlashDatSrc
|
||||
if( $FileSize < $FLASHDATBUFSIZE )
|
||||
set FlashBlockWriteSize = $FileSize
|
||||
else
|
||||
set FlashBlockWriteSize = $FLASHDATBUFSIZE
|
||||
end
|
||||
|
||||
printf "FlashDatSrc:%x\n", $FLASHDATSRC
|
||||
printf "FlashBlockWriteSize "
|
||||
printf "FlashBlockWriteSize:%x\n", FlashBlockWriteSize
|
||||
printf "FlashAddrForWrite:%x", FlashAddrForWrite
|
||||
|
||||
printf "Flash write start...\n"
|
||||
set $Loop = 0
|
||||
while ($Loop < $Loopnumber)
|
||||
set $FILESTARTADDR = $FLASHDATBUFSIZE * $Loop
|
||||
printf "FILESTARTADDR"
|
||||
p /x $FILESTARTADDR
|
||||
p /x FlashAddrForWrite
|
||||
p /x $Loop
|
||||
|
||||
if ($FileName == $IMAGE_XIP1)
|
||||
restore ./application/Debug/bin/image2_all_ota1.bin binary ($FLASHDATSRC-$FILESTARTADDR) $FILESTARTADDR ($FILESTARTADDR + $FLASHDATBUFSIZE)
|
||||
end
|
||||
if ($FileName == $IMAGE_XIP2)
|
||||
restore ./application/Debug/bin/image2_all_ota2.bin binary ($FLASHDATSRC-$FILESTARTADDR) $FILESTARTADDR ($FILESTARTADDR + $FLASHDATBUFSIZE)
|
||||
end
|
||||
if ($FileName == $IMAGE_BOOT)
|
||||
restore ./application/Debug/bin/boot_all.bin binary ($FLASHDATSRC-$FILESTARTADDR) $FILESTARTADDR ($FILESTARTADDR + $FLASHDATBUFSIZE)
|
||||
end
|
||||
if ($FileName == $IMAGE_SYSD)
|
||||
restore ./application/Debug/bin/system.bin binary ($FLASHDATSRC-$FILESTARTADDR) $FILESTARTADDR ($FILESTARTADDR + $FLASHDATBUFSIZE)
|
||||
end
|
||||
c
|
||||
|
||||
set $Loop = $Loop + 0x01
|
||||
end
|
||||
|
||||
if ( $TailSize > 0)
|
||||
set $FILESTARTADDR = $FLASHDATBUFSIZE * $Loop
|
||||
|
||||
printf "FILESTARTADDR"
|
||||
p /x $FILESTARTADDR
|
||||
p /x FlashAddrForWrite
|
||||
p /x $Loop
|
||||
|
||||
if ($FileName == $IMAGE_XIP1)
|
||||
restore ./application/Debug/bin/image2_all_ota1.bin binary ($FLASHDATSRC-$FILESTARTADDR) $FILESTARTADDR ($FILESTARTADDR + $TailSize)
|
||||
end
|
||||
if ($FileName == $IMAGE_XIP2)
|
||||
restore ./application/Debug/bin/image2_all_ota2.bin binary ($FLASHDATSRC-$FILESTARTADDR) $FILESTARTADDR ($FILESTARTADDR + $TailSize)
|
||||
end
|
||||
if ($FileName == $IMAGE_BOOT)
|
||||
restore ./application/Debug/bin/boot_all.bin binary ($FLASHDATSRC-$FILESTARTADDR) $FILESTARTADDR ($FILESTARTADDR + $TailSize)
|
||||
end
|
||||
if ($FileName == $IMAGE_SYSD)
|
||||
restore ./application/Debug/bin/system.bin binary ($FLASHDATSRC-$FILESTARTADDR) $FILESTARTADDR ($FILESTARTADDR + $TailSize)
|
||||
end
|
||||
c
|
||||
end
|
||||
end
|
||||
|
||||
#===============================================================================
|
||||
#Set rom boot BIT to flash loader
|
||||
set $Temp = 0x0
|
||||
set $Temp = {int}($PERI_ON_BASE+$REG_SOC_PERI_FUNC0_EN)
|
||||
p /x $Temp
|
||||
|
||||
set $Temp = ($Temp | (0x01 << 26))
|
||||
set $Temp = ($Temp & ~(0x01 << 27))
|
||||
set $Temp = ($Temp & ~(0x01 << 28))
|
||||
p /x $Temp
|
||||
|
||||
set {int}($PERI_ON_BASE+$REG_SOC_PERI_FUNC0_EN) = $Temp
|
||||
printf "....\n"
|
||||
printf "wakeup bit(%x):%x\n", ($PERI_ON_BASE+$REG_SOC_PERI_FUNC0_EN), {int}($PERI_ON_BASE+$REG_SOC_PERI_FUNC0_EN)
|
||||
#===============================================================================
|
||||
|
||||
#===============================================================================
|
||||
#b RtlFlashProgram:StartOfFlashBlockWrite
|
||||
b rtl_flash_download.c:88
|
||||
|
||||
#continue
|
||||
c
|
||||
#===============================================================================
|
||||
|
||||
#===============================================================================
|
||||
#flash write
|
||||
#set $XIPBootSize =4324
|
||||
set $XIPBootSize =$BOOTALLFILESize
|
||||
set FlashAddrForWrite =0x00000
|
||||
flash_write $IMAGE_BOOT $XIPBootSize
|
||||
|
||||
|
||||
#dump binary memory dump.bin $SPI_FLASH_BASE ($SPI_FLASH_BASE + $XIPBootSize)
|
||||
|
||||
set $SysDataSize =32
|
||||
set FlashAddrForWrite =0x09000
|
||||
#flash_write $IMAGE_SYSD $SysDataSize
|
||||
|
||||
#set $FlashFileSize =299200
|
||||
set $FlashFileSize =$RamFileSize
|
||||
|
||||
set FlashAddrForWrite =0x0B000
|
||||
flash_write $IMAGE_XIP1 $FlashFileSize
|
||||
|
||||
set $OTA2Size =299200
|
||||
set FlashAddrForWrite =0x80000
|
||||
#flash_write $IMAGE_XIP2 $OTA2Size
|
||||
|
||||
#Tell flashloader complete flag
|
||||
set FlashWriteComplete = 0x1
|
||||
#===============================================================================
|
||||
|
||||
#===============================================================================
|
||||
#dump image from flash
|
||||
printf "dump for check\n"
|
||||
info b
|
||||
delete
|
||||
info b
|
||||
|
||||
quit
|
||||
|
||||
c
|
||||
|
||||
#delete
|
||||
|
||||
quit
|
||||
#===============================================================================
|
||||
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
# GDB script for loading ram.bin process
|
||||
|
||||
source gnu_utility/flash_download/image/rtl_gdb_jtag_boot_com.txt
|
||||
|
||||
#===============================================================================
|
||||
#Load the file
|
||||
file ./image/target.axf
|
||||
#lo
|
||||
#restore ./image/rom.bin binary 0x0
|
||||
restore ./image/ram_1.bin binary 0x10002000
|
||||
restore ./image/ram_2.bin binary 0x10005000
|
||||
|
||||
printf "Load image to sram.\n"
|
||||
#set $dumpstartaddr = 0x00000000
|
||||
#set $dumpendaddr = 0x10000
|
||||
#dump binary memory rom.bin $dumpstartaddr $dumpendaddr
|
||||
|
||||
#===============================================================================
|
||||
set $Temp = 0x0
|
||||
set $Temp = {int}($PERI_ON_BASE+$REG_SOC_PERI_FUNC0_EN)
|
||||
p /x $Temp
|
||||
|
||||
set $Temp = ($Temp & ~(0x01 << 26))
|
||||
set $Temp = ($Temp & ~(0x01 << 27))
|
||||
set $Temp = ($Temp & ~(0x01 << 28))
|
||||
set $Temp = ($Temp | (0x01 << 28))
|
||||
p /x $Temp
|
||||
|
||||
set {int}($PERI_ON_BASE+$REG_SOC_PERI_FUNC0_EN) = $Temp
|
||||
printf "....\n"
|
||||
printf "wakeup bit(%x):%x\n", ($PERI_ON_BASE+$REG_SOC_PERI_FUNC0_EN), {int}($PERI_ON_BASE+$REG_SOC_PERI_FUNC0_EN)
|
||||
|
||||
c
|
||||
|
||||
#quit
|
||||
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
# GDB script for loading ram.bin process
|
||||
|
||||
#===============================================================================
|
||||
#set GDB connection
|
||||
set remotetimeout 100000
|
||||
target remote : 2331
|
||||
|
||||
#===============================================================================
|
||||
|
||||
#===============================================================================
|
||||
#Message display setting
|
||||
#disable all messages
|
||||
|
||||
set verbose off
|
||||
set complaints 0
|
||||
set confirm off
|
||||
set exec-done-display off
|
||||
show exec-done-display
|
||||
set trace-commands off
|
||||
#set debug aix-thread off
|
||||
#set debug dwarf2-die 0
|
||||
set debug displaced off
|
||||
set debug expression 0
|
||||
set debug frame 0
|
||||
set debug infrun 0
|
||||
set debug observer 0
|
||||
set debug overload 0
|
||||
#set debugvarobj 0
|
||||
set pagination off
|
||||
set print address off
|
||||
set print symbol-filename off
|
||||
set print symbol off
|
||||
set print pretty off
|
||||
set print object off
|
||||
#set debug notification off
|
||||
set debug parser off
|
||||
set debug remote 0
|
||||
|
||||
#===============================================================================
|
||||
#set JTAG and external SRAM
|
||||
#source ../../utility/jtag_cfg/J-Link_with_JTAG_and_external_SRAM.txt
|
||||
monitor reset 1
|
||||
monitor sleep 20
|
||||
|
||||
#===============================================================================
|
||||
set $FLASHDATBUFSIZE = 0x800
|
||||
|
||||
#===============================================================================
|
||||
#define PERI_ON_BASE 0x40000000
|
||||
set $PERI_ON_BASE = 0x40000000
|
||||
#define REG_SOC_PERI_FUNC0_EN 0x0218
|
||||
set $REG_SOC_PERI_FUNC0_EN = 0x0210
|
||||
|
||||
#define SPI_FLASH_BASE 0x4000000
|
||||
set $SPI_FLASH_BASE = 0x08000000
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
# GDB script for loading ram.bin process
|
||||
|
||||
#===============================================================================
|
||||
#set GDB connection
|
||||
set remotetimeout 100000
|
||||
target remote : 3333
|
||||
|
||||
#===============================================================================
|
||||
|
||||
#===============================================================================
|
||||
#Message display setting
|
||||
#disable all messages
|
||||
|
||||
set verbose off
|
||||
set complaints 0
|
||||
set confirm off
|
||||
set exec-done-display off
|
||||
show exec-done-display
|
||||
set trace-commands off
|
||||
#set debug aix-thread off
|
||||
#set debug dwarf2-die 0
|
||||
set debug displaced off
|
||||
set debug expression 0
|
||||
set debug frame 0
|
||||
set debug infrun 0
|
||||
set debug observer 0
|
||||
set debug overload 0
|
||||
#set debugvarobj 0
|
||||
set pagination off
|
||||
set print address off
|
||||
set print symbol-filename off
|
||||
set print symbol off
|
||||
set print pretty off
|
||||
set print object off
|
||||
#set debug notification off
|
||||
set debug parser off
|
||||
set debug remote 0
|
||||
|
||||
#===============================================================================
|
||||
#set JTAG and external SRAM
|
||||
#source ../../utility/jtag_cfg/J-Link_with_JTAG_and_external_SRAM.txt
|
||||
|
||||
#monitor reset init
|
||||
#monitor halt
|
||||
monitor soft_reset_halt
|
||||
monitor sleep 20
|
||||
|
||||
|
||||
#===============================================================================
|
||||
set $FLASHDATBUFSIZE = 0x800
|
||||
|
||||
#===============================================================================
|
||||
#define PERI_ON_BASE 0x40000000
|
||||
set $PERI_ON_BASE = 0x40000000
|
||||
#define REG_SOC_PERI_FUNC0_EN 0x0218
|
||||
set $REG_SOC_PERI_FUNC0_EN = 0x0210
|
||||
|
||||
#define SPI_FLASH_BASE 0x4000000
|
||||
set $SPI_FLASH_BASE = 0x08000000
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
# GDB script for loading ram.bin process
|
||||
|
||||
source gnu_utility/flash_download/image/rtl_gdb_jtag_boot_com.txt
|
||||
|
||||
#===============================================================================
|
||||
#load rom.bin
|
||||
#restore ./image/rom.bin binary 0x0
|
||||
|
||||
printf "Load image to sram.\n"
|
||||
set $dumpstartaddr = 0x00000000
|
||||
set $dumpendaddr = 0x10000
|
||||
dump binary memory rom.bin $dumpstartaddr $dumpendaddr
|
||||
|
||||
#===============================================================================
|
||||
set $Temp = 0x0
|
||||
set $Temp = {int}($PERI_ON_BASE+$REG_SOC_PERI_FUNC0_EN)
|
||||
p /x $Temp
|
||||
|
||||
set $Temp = ($Temp & ~(0x01 << 26))
|
||||
set $Temp = ($Temp & ~(0x01 << 27))
|
||||
set $Temp = ($Temp & ~(0x01 << 28))
|
||||
p /x $Temp
|
||||
|
||||
set {int}($PERI_ON_BASE+$REG_SOC_PERI_FUNC0_EN) = $Temp
|
||||
printf "....\n"
|
||||
printf "wakeup bit(%x):%x\n", ($PERI_ON_BASE+$REG_SOC_PERI_FUNC0_EN), {int}($PERI_ON_BASE+$REG_SOC_PERI_FUNC0_EN)
|
||||
|
||||
c
|
||||
|
||||
#quit
|
||||
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
# GDB script for loading ram.bin process
|
||||
|
||||
source gnu_utility/flash_download/image/rtl_gdb_jtag_boot_com.txt
|
||||
|
||||
#===============================================================================
|
||||
#Load the file
|
||||
file ./image/target.axf
|
||||
restore ./image/rom.bin binary 0x0
|
||||
|
||||
#dump binary memory dump.bin 0x00000000 0x00080000
|
||||
|
||||
#===============================================================================
|
||||
#c
|
||||
|
||||
quit
|
||||
|
||||
Binary file not shown.
Binary file not shown.
35
component/soc/realtek/8711b/misc/gnu_utility/flash_download/src/Makefile
Executable file
35
component/soc/realtek/8711b/misc/gnu_utility/flash_download/src/Makefile
Executable file
|
|
@ -0,0 +1,35 @@
|
|||
|
||||
include $(MAKE_INCLUDE_GEN)
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
MODULE_IFLAGS = -I../include
|
||||
|
||||
|
||||
#*****************************************************************************#
|
||||
# Object FILE LIST #
|
||||
#*****************************************************************************#
|
||||
OBJS = rtl_flash_download.o rtl_flash_download_entry.o
|
||||
|
||||
#*****************************************************************************#
|
||||
# RULES TO GENERATE TARGETS #
|
||||
#*****************************************************************************#
|
||||
|
||||
# Define the Rules to build the core targets
|
||||
all: CORE_TARGETS RENAME_LOADER_OBJS COPY_RAM_OBJS
|
||||
|
||||
|
||||
#*****************************************************************************#
|
||||
# GENERATE OBJECT FILE
|
||||
#*****************************************************************************#
|
||||
CORE_TARGETS: $(OBJS)
|
||||
|
||||
|
||||
#*****************************************************************************#
|
||||
# RULES TO CLEAN TARGETS #
|
||||
#*****************************************************************************#
|
||||
clean:
|
||||
$(REMOVE) *.o
|
||||
$(REMOVE) *.i
|
||||
$(REMOVE) *.s
|
||||
$(REMOVE) *.d
|
||||
145
component/soc/realtek/8711b/misc/gnu_utility/flash_download/src/flash_to_flash.c
Executable file
145
component/soc/realtek/8711b/misc/gnu_utility/flash_download/src/flash_to_flash.c
Executable file
|
|
@ -0,0 +1,145 @@
|
|||
#include "rtl8710b.h"
|
||||
#include "build_info.h"
|
||||
|
||||
|
||||
#define INH_PIN _PA_0
|
||||
#define CTRL_PIN _PA_5
|
||||
|
||||
#define CHN_Y1 0
|
||||
#define CHN_Y2 1
|
||||
|
||||
#define FLASHDATALEN 128*1024
|
||||
BOOT_RAM_BSS_SECTION volatile u8* FlashDataBuf;
|
||||
|
||||
/* channel : the parameter can be CHN_Y1 or CHN_Y2 */
|
||||
BOOT_RAM_TEXT_SECTION
|
||||
static VOID SPDT_Switch(u32 channel)
|
||||
{
|
||||
GPIO_WriteBit(CTRL_PIN, channel);
|
||||
}
|
||||
|
||||
|
||||
BOOT_RAM_TEXT_SECTION
|
||||
static VOID SPDT_Initial_Setup(VOID)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStruct;
|
||||
|
||||
/* INH pin: enables or disables the switch. 0: Enable, 1: Disable */
|
||||
GPIO_InitStruct.GPIO_Pin = INH_PIN;
|
||||
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
||||
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
|
||||
GPIO_Init(&GPIO_InitStruct);
|
||||
/* Enable the switch */
|
||||
GPIO_WriteBit(INH_PIN, 0);
|
||||
|
||||
/* CTRL pin: controls the switch. 0: Y1 channel is on, 1: Y2 channel is on */
|
||||
GPIO_InitStruct.GPIO_Pin = CTRL_PIN;
|
||||
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
||||
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
|
||||
GPIO_Init(&GPIO_InitStruct);
|
||||
/* Default on-channel is Y1 */
|
||||
SPDT_Switch(CHN_Y1);
|
||||
|
||||
}
|
||||
|
||||
BOOT_RAM_TEXT_SECTION
|
||||
VOID BOOT_RAM_InitFlash(void)
|
||||
{
|
||||
u32 Value32;
|
||||
|
||||
/* disable cache first */
|
||||
Cache_Enable(DISABLE); /* cahce enable becuase flash init will flush cahce */
|
||||
RCC_PeriphClockCmd(APBPeriph_FLASH, APBPeriph_FLASH_CLOCK, DISABLE);
|
||||
|
||||
/* set 500MHz Div to gen spic clock 200MHz */
|
||||
FLASH_ClockDiv(FLASH_CLK_DIV2P5);
|
||||
RCC_PeriphClockCmd(APBPeriph_FLASH, APBPeriph_FLASH_CLOCK, ENABLE);
|
||||
|
||||
PinCtrl(PERIPHERAL_SPI_FLASH, S0, ON);
|
||||
FLASH_StructInit(&flash_init_para);
|
||||
flash_init_para.FLASH_cur_cmd = FLASH_CMD_READ;
|
||||
flash_init_para.FLASH_baud_rate = 1;
|
||||
flash_init_para.FLASH_baud_boot = 1;
|
||||
FLASH_Init(SpicOneBitMode);
|
||||
|
||||
DBG_8195A("Init flash baudrate: %d\n", flash_init_para.FLASH_baud_rate);
|
||||
|
||||
/* enable cache before XIP */
|
||||
Cache_Enable(ENABLE);
|
||||
Cache_Flush();
|
||||
}
|
||||
|
||||
BOOT_RAM_TEXT_SECTION
|
||||
VOID BOOT_RAM_FlashtoFlash(VOID)
|
||||
{
|
||||
u32 addr = 0;
|
||||
u32 image_size = 512; //test size is 512KB
|
||||
u32 tail_size;
|
||||
u32 times = image_size / (FLASHDATALEN / 1024);
|
||||
int i = 0, j = 0;
|
||||
|
||||
BOOT_RAM_InitFlash();
|
||||
DBG_8195A("Flash init done!\n");
|
||||
|
||||
FlashDataBuf = __image2_entry_func__;
|
||||
|
||||
DBG_8195A("Start copy data from source flash to destination flash...\n");
|
||||
SPDT_Initial_Setup();
|
||||
|
||||
/* Erase Destination flash */
|
||||
SPDT_Switch(CHN_Y2);
|
||||
FLASH_Erase(EraseChip, 0);
|
||||
DBG_8195A("Erase Destination flash done!\n");
|
||||
|
||||
for(; i < times; i++){
|
||||
/* SPDT switch to Source flash */
|
||||
SPDT_Switch(CHN_Y1);
|
||||
|
||||
_memcpy(FlashDataBuf, SPI_FLASH_BASE + addr, FLASHDATALEN);
|
||||
|
||||
/* SPDT switch to Destination flash */
|
||||
SPDT_Switch(CHN_Y2);
|
||||
|
||||
for(j = 0; j < FLASHDATALEN; j += 8){
|
||||
FLASH_TxData12B(addr + j, 8, FlashDataBuf + j);
|
||||
}
|
||||
|
||||
addr += FLASHDATALEN;
|
||||
DBG_8195A("128KB copied done!\n");
|
||||
|
||||
}
|
||||
|
||||
tail_size = image_size % (FLASHDATALEN / 1024);
|
||||
if(tail_size != 0){
|
||||
/* SPDT switch to Source flash */
|
||||
SPDT_Switch(CHN_Y1);
|
||||
|
||||
_memcpy(FlashDataBuf, SPI_FLASH_BASE + addr, tail_size * 1024);
|
||||
|
||||
/* SPDT switch to Destination flash */
|
||||
SPDT_Switch(CHN_Y2);
|
||||
|
||||
for(j = 0; j < tail_size * 1024; j += 4){
|
||||
FLASH_TxData12B(addr + j, 4, FlashDataBuf + j);
|
||||
}
|
||||
|
||||
addr += tail_size * 1024;
|
||||
DBG_8195A("%d KB done!\n", tail_size);
|
||||
}
|
||||
|
||||
DBG_8195A("Flash to flash done!\n");
|
||||
while(1){}
|
||||
|
||||
}
|
||||
|
||||
|
||||
IMAGE1_ENTRY_SECTION
|
||||
RAM_FUNCTION_START_TABLE RamStartTable = {
|
||||
.RamStartFun = BOOT_RAM_FlashtoFlash,
|
||||
.RamWakeupFun = NULL, /* init in socps SOCPS_InitSYSIRQ */
|
||||
.RamPatchFun0 = BOOT_RAM_FlashtoFlash,
|
||||
.RamPatchFun1 = BOOT_RAM_FlashtoFlash,
|
||||
.RamPatchFun2 = BOOT_RAM_FlashtoFlash,
|
||||
.FlashStartFun = NULL
|
||||
};
|
||||
|
||||
|
|
@ -0,0 +1,124 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
|
||||
*
|
||||
*
|
||||
******************************************************************************/
|
||||
#include "rtl8710b.h"
|
||||
#include "build_info.h"
|
||||
|
||||
|
||||
|
||||
#define FLASHDATALEN 2048
|
||||
BOOT_RAM_BSS_SECTION volatile u8 FlashDataBuf[FLASHDATALEN];
|
||||
BOOT_RAM_BSS_SECTION volatile u32 *pFlashDatSrc;
|
||||
BOOT_RAM_BSS_SECTION volatile u32 FlashBlockWriteSize; //The maximum size of each block write is FLASHDATALEN,
|
||||
//The actual value MUST be given by GDB.
|
||||
BOOT_RAM_BSS_SECTION volatile u32 FlashAddrForWrite; //The flash address to be written.
|
||||
//The actual value MUST be given by GDB.
|
||||
BOOT_RAM_BSS_SECTION volatile u8 FlashWriteComplete;
|
||||
BOOT_RAM_BSS_SECTION volatile u32 FlashDatSrc;
|
||||
BOOT_RAM_BSS_SECTION u32 erase_sector_addr = 0;
|
||||
|
||||
extern u8 __rom_bss_start__[];
|
||||
extern u8 __rom_bss_end__[];
|
||||
extern u8 __ram_start_table_start__[];
|
||||
|
||||
extern u32 ConfigDebugErr;
|
||||
extern u32 ConfigDebugInfo;
|
||||
extern u32 ConfigDebugWarn;
|
||||
|
||||
void BOOT_RAM_TEXT_SECTION
|
||||
RtlFlashProgram(VOID)
|
||||
{
|
||||
volatile u32 FlashWriteCnt = 0;
|
||||
u8 flash_ID[3];
|
||||
|
||||
//2 Need Modify
|
||||
VECTOR_TableInit(0x1003EFFC);
|
||||
DBG_8195A("==========================================================\n");
|
||||
DBG_8195A("Flash Downloader Build Time: "UTS_VERSION"\n");
|
||||
DBG_8195A("==========================================================\n");
|
||||
|
||||
FlashDatSrc = (u32)&FlashDataBuf;
|
||||
pFlashDatSrc = (u32 *)&FlashDataBuf;
|
||||
FlashWriteComplete = 0;
|
||||
FlashBlockWriteSize = 0;
|
||||
FlashAddrForWrite = 0;
|
||||
erase_sector_addr = 0;
|
||||
|
||||
Cache_Enable(DISABLE);
|
||||
RCC_PeriphClockCmd(APBPeriph_FLASH, APBPeriph_FLASH_CLOCK, DISABLE);
|
||||
FLASH_CalibrationNewCmd(DISABLE);
|
||||
|
||||
/* set 500MHz Div to gen spic clock 100MHz, flash baudrate = 50MHz */
|
||||
FLASH_ClockDiv(FLASH_CLK_DIV5P0);
|
||||
RCC_PeriphClockCmd(APBPeriph_FLASH, APBPeriph_FLASH_CLOCK, ENABLE);
|
||||
PinCtrl(PERIPHERAL_SPI_FLASH,S0,ON);
|
||||
|
||||
DBG_8195A("Flash init start\n");
|
||||
FLASH_StructInit(&flash_init_para);
|
||||
FLASH_Init(SpicOneBitMode);
|
||||
DBG_8195A("Flash init done\n");
|
||||
|
||||
FLASH_RxCmd(flash_init_para.FLASH_cmd_rd_id, 3, flash_ID);
|
||||
if(flash_ID[0] == 0x20){
|
||||
flash_init_para.FLASH_cmd_chip_e = 0xC7;}
|
||||
|
||||
//4 Erase the flash before writing it
|
||||
//FLASH_Erase(EraseChip, 0);
|
||||
DBG_8195A("Flash download start\n");
|
||||
//4 Program the flash from memory data
|
||||
while(1)
|
||||
{
|
||||
StartOfFlashBlockWrite:
|
||||
asm("nop");
|
||||
asm("nop");
|
||||
asm("nop");
|
||||
asm("nop");
|
||||
|
||||
FlashWriteCnt = 0;
|
||||
pFlashDatSrc = (u32 *)&FlashDataBuf[0];
|
||||
if (FlashWriteComplete == 1)
|
||||
break;
|
||||
|
||||
while (FlashWriteCnt < FlashBlockWriteSize)
|
||||
{
|
||||
u32 sector_addr1 = FlashAddrForWrite & 0xFFFFF000; /* sector of first byte */
|
||||
|
||||
if(sector_addr1 >= erase_sector_addr) {
|
||||
FLASH_Erase(EraseSector, sector_addr1);
|
||||
erase_sector_addr = sector_addr1 + 0x1000; /* next sector we should erase */
|
||||
}
|
||||
|
||||
FLASH_TxData12B(FlashAddrForWrite, 4, pFlashDatSrc);
|
||||
|
||||
FlashAddrForWrite += 4;
|
||||
FlashWriteCnt += 4;
|
||||
pFlashDatSrc+= 1;
|
||||
}
|
||||
|
||||
goto StartOfFlashBlockWrite;
|
||||
}
|
||||
|
||||
DBG_8195A("Flash download done\n");
|
||||
|
||||
while(1){
|
||||
if (FlashWriteComplete == 1) {
|
||||
FlashWriteComplete = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
|
||||
*
|
||||
*
|
||||
******************************************************************************/
|
||||
#include "rtl8710b.h"
|
||||
#include "build_info.h"
|
||||
#include "rtl8711b_flash.h"
|
||||
|
||||
void RtlFlashProgram(VOID);
|
||||
|
||||
IMAGE1_ENTRY_SECTION
|
||||
RAM_FUNCTION_START_TABLE RamStartTable = {
|
||||
.RamStartFun = RtlFlashProgram,
|
||||
.RamWakeupFun = RtlFlashProgram,
|
||||
.RamPatchFun0 = RtlFlashProgram,
|
||||
.RamPatchFun1 = RtlFlashProgram,
|
||||
.RamPatchFun2 = RtlFlashProgram
|
||||
};
|
||||
22
component/soc/realtek/8711b/misc/iar_utility/common/8710b.ddf
Executable file
22
component/soc/realtek/8711b/misc/iar_utility/common/8710b.ddf
Executable file
|
|
@ -0,0 +1,22 @@
|
|||
;; Memory information ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
;; Used to define address zones within the ARM address space (Memory).
|
||||
;;
|
||||
;; Name may be almost anything
|
||||
;; AdrSpace must be Memory
|
||||
;; StartAdr start of memory block
|
||||
;; EndAdr end of memory block
|
||||
;; AccType type of access, read-only (R), read-write (RW) or SFR (W)
|
||||
|
||||
[Memory]
|
||||
;; Name AdrSpace StartAdr EndAdr AccType Width
|
||||
Memory = ROM Memory 0x00000000 0x003FFFFF RW
|
||||
Memory = SRAM Memory 0x10000000 0x1003FFFF RW
|
||||
Memory = SFR Memory 0x40000000 0x41FFFFFF RW
|
||||
Memory = SFR_Bitband Memory 0x42000000 0x43FFFFFF RW
|
||||
Memory = PPB Memory 0xE0000000 0xFFFFFFFF RW
|
||||
|
||||
TrustedRanges = true
|
||||
UseSfrFilter = true
|
||||
|
||||
[SfrInclude]
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<flash_board>
|
||||
<pass>
|
||||
<range>CODE 0x10000bc0 0x10003FFF</range>
|
||||
<loader>$PROJ_DIR$\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash</loader>
|
||||
<abs_offset>0x00000000</abs_offset>
|
||||
<args>--head</args>
|
||||
</pass>
|
||||
<pass>
|
||||
<range>CODE 0x10004000 0x1006FFFF</range>
|
||||
<loader>$PROJ_DIR$\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash</loader>
|
||||
<abs_offset>0x00000000</abs_offset>
|
||||
<args>--cascade</args>
|
||||
</pass>
|
||||
<pass>
|
||||
<range>CODE 0x30000000 0x301FFFFF</range>
|
||||
<loader>$PROJ_DIR$\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash</loader>
|
||||
<abs_offset>0x00000000</abs_offset>
|
||||
<args>--cascade</args>
|
||||
</pass>
|
||||
<ignore>CODE 0x00000000 0x000FFFFF</ignore>
|
||||
<ignore>CODE 0x10000000 0x10000bbf</ignore>
|
||||
</flash_board>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<flash_device>
|
||||
<exe>$PROJ_DIR$\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.out</exe>
|
||||
<flash_base>0x00000000</flash_base>
|
||||
<page>4</page>
|
||||
<block>256 0x1000</block>
|
||||
<macro>$PROJ_DIR$\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.mac</macro>
|
||||
<aggregate>1</aggregate>
|
||||
</flash_device>
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
setup()
|
||||
{
|
||||
__var tmp;
|
||||
|
||||
__hwResetWithStrategy(0, 2);
|
||||
__hwReset(1);
|
||||
|
||||
__delay(200);
|
||||
|
||||
/*
|
||||
tmp = __readMemory32(0x40000014,"Memory"); __delay(10);
|
||||
__message "0x40000014=",tmp:%x;
|
||||
|
||||
__writeMemory32(0x21, 0x40000014, "Memory"); __delay(10);
|
||||
|
||||
__writeMemory32(0x1FC00002, 0x40000304, "Memory"); __delay(10);
|
||||
__writeMemory32(0x400, 0x40000250, "Memory"); __delay(10);
|
||||
__writeMemory32(0x0, 0x40000340, "Memory"); __delay(10);
|
||||
__writeMemory32(0xc04, 0x40000230, "Memory"); __delay(10);
|
||||
__writeMemory32(0x1157, 0x40000210, "Memory"); __delay(10);
|
||||
__writeMemory32(0x110011, 0x400002c0, "Memory"); __delay(10);
|
||||
__writeMemory32(0xffffffff, 0x40000320, "Memory"); __delay(10);
|
||||
*/
|
||||
/*
|
||||
__writeMemory32(0x1, 0x40005224, "Memory"); __delay(10);
|
||||
__writeMemory32(0x2c8, 0x40005004, "Memory"); __delay(10);
|
||||
__writeMemory32(0xffffd000, 0x40005008, "Memory"); __delay(10);
|
||||
__delay(3);
|
||||
__writeMemory32(0x22, 0x40005020, "Memory"); __delay(10);
|
||||
__delay(3);
|
||||
__writeMemory32(0x09032001, 0x40005010, "Memory"); __delay(10);
|
||||
__delay(3);
|
||||
__writeMemory32(0x2611, 0x40005014, "Memory"); __delay(10);
|
||||
__delay(3);
|
||||
__writeMemory32(0x68413, 0x40005018, "Memory"); __delay(10);
|
||||
__delay(3);
|
||||
__writeMemory32(0x42, 0x4000501c, "Memory"); __delay(10);
|
||||
__delay(3);
|
||||
|
||||
// Enable
|
||||
__writeMemory32(0x700, 0x4000500c, "Memory"); __delay(10);
|
||||
__delay(20);
|
||||
__writeMemory32(0x1, 0x40005000, "Memory"); __delay(10);
|
||||
__delay(100);
|
||||
tmp = __readMemory32(0x40005000,"Memory"); __delay(10);
|
||||
__writeMemory32(0x600, 0x4000500c, "Memory"); __delay(10);
|
||||
__delay(30);
|
||||
*/
|
||||
}
|
||||
|
||||
execUserPreload()
|
||||
{
|
||||
__var tmp;
|
||||
setup();
|
||||
tmp = __readMemory32(0x40000210, "Memory")|(1<<28);
|
||||
__writeMemory32(tmp, 0x40000210, "Memory");
|
||||
}
|
||||
|
||||
execUserSetup()
|
||||
{
|
||||
//execUserPreload();
|
||||
//__loadImage("$TARGET_PATH$ ", 0, 0);
|
||||
//__writeMemory32(0x80000000, 0x40000218, "Memory");
|
||||
}
|
||||
|
||||
execUserFlashInit() // Called by debugger before loading flash loader in RAM.
|
||||
{
|
||||
__var tmp;
|
||||
__message "----- Prepare hardware for Flashloader -----\n";
|
||||
setup();
|
||||
tmp = __readMemory32(0x40000210, "Memory")|(1<<28);
|
||||
__writeMemory32(tmp, 0x40000210, "Memory");
|
||||
|
||||
}
|
||||
Binary file not shown.
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<flash_board>
|
||||
<pass>
|
||||
<loader>$PROJ_DIR$\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash</loader>
|
||||
<range>CODE 0x8000020 0x8003fff</range>
|
||||
<abs_offset>0x20</abs_offset>
|
||||
<args>--boot </args>
|
||||
</pass>
|
||||
<pass>
|
||||
<loader>$PROJ_DIR$\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash</loader>
|
||||
<range>CODE 0x10002000 0x10004fff</range>
|
||||
<abs_offset>0x0</abs_offset>
|
||||
<args>--concat
|
||||
--boot </args>
|
||||
</pass>
|
||||
<ignore>CODE 0x00000000 0x0007ffff</ignore>
|
||||
<ignore>CODE 0x10000000 0x10001fff</ignore>
|
||||
<ignore>CODE 0x10005000 0x10006000</ignore>
|
||||
</flash_board>
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<flash_board>
|
||||
<pass>
|
||||
<range>CODE 0x200006b4 0x2002FFFF</range>
|
||||
<loader>$PROJ_DIR$\flashloader\FlashRTL8195aQA.flash</loader>
|
||||
<abs_offset>0x00000000</abs_offset>
|
||||
</pass>
|
||||
<pass>
|
||||
<range>CODE 0x30000000 0x301FFFFF</range>
|
||||
<loader>$PROJ_DIR$\flashloader\FlashRTL8195aQA.flash</loader>
|
||||
<abs_offset>0x00010000</abs_offset>
|
||||
<ignore>DATA_Z 0x30000000 0x301FFFFF</ignore>
|
||||
</pass>
|
||||
<pass>
|
||||
<range>CODE 0x20080000 0x200BFFFF</range>
|
||||
<loader>$PROJ_DIR$\flashloader\FlashRTL8195aQA.flash</loader>
|
||||
<abs_offset>0x00020000</abs_offset>
|
||||
<ignore>DATA_Z 0x20080000 0x200BFFFF</ignore>
|
||||
</pass>
|
||||
<pass>
|
||||
<range>CODE 0x00000000 0x00000000</range>
|
||||
<loader>$PROJ_DIR$\flashloader\FlashRTL8195aQA.flash</loader>
|
||||
<abs_offset>0x00030000</abs_offset>
|
||||
</pass>
|
||||
<ignore>CODE 0x00000001 0x000BFFFF</ignore>
|
||||
<ignore>CODE 0x20000000 0x200006b3</ignore>
|
||||
</flash_board>
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<flash_device>
|
||||
<exe>$PROJ_DIR$\flashloader\FlashRTL8195aQA.out</exe>
|
||||
<flash_base>0x00000000</flash_base>
|
||||
<page>8</page>
|
||||
<block>256 0x1000</block>
|
||||
<macro>$PROJ_DIR$\flashloader\FlashRTL8195aQA.mac</macro>
|
||||
<aggregate>1</aggregate>
|
||||
</flash_device>
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
setup()
|
||||
{
|
||||
__var tmp;
|
||||
|
||||
__hwReset(1);
|
||||
|
||||
__writeMemory32(0x21, 0x40000014, "Memory"); __delay(10);
|
||||
__writeMemory32(0x1FC00002, 0x40000304, "Memory"); __delay(10);
|
||||
__writeMemory32(0x400, 0x40000250, "Memory"); __delay(10);
|
||||
__writeMemory32(0x0, 0x40000340, "Memory"); __delay(10);
|
||||
__writeMemory32(0xc04, 0x40000230, "Memory"); __delay(10);
|
||||
__writeMemory32(0x1157, 0x40000210, "Memory"); __delay(10);
|
||||
__writeMemory32(0x110011, 0x400002c0, "Memory"); __delay(10);
|
||||
__writeMemory32(0xffffffff, 0x40000320, "Memory"); __delay(10);
|
||||
|
||||
__writeMemory32(0x1, 0x40005224, "Memory"); __delay(10);
|
||||
__writeMemory32(0x2c8, 0x40005004, "Memory"); __delay(10);
|
||||
__writeMemory32(0xffffd000, 0x40005008, "Memory"); __delay(10);
|
||||
__delay(3);
|
||||
__writeMemory32(0x22, 0x40005020, "Memory"); __delay(10);
|
||||
__delay(3);
|
||||
__writeMemory32(0x09032001, 0x40005010, "Memory"); __delay(10);
|
||||
__delay(3);
|
||||
__writeMemory32(0x2611, 0x40005014, "Memory"); __delay(10);
|
||||
__delay(3);
|
||||
__writeMemory32(0x68413, 0x40005018, "Memory"); __delay(10);
|
||||
__delay(3);
|
||||
__writeMemory32(0x42, 0x4000501c, "Memory"); __delay(10);
|
||||
__delay(3);
|
||||
|
||||
// Enable
|
||||
__writeMemory32(0x700, 0x4000500c, "Memory"); __delay(10);
|
||||
__delay(20);
|
||||
__writeMemory32(0x1, 0x40005000, "Memory"); __delay(10);
|
||||
__delay(100);
|
||||
tmp = __readMemory32(0x40005000,"Memory"); __delay(10);
|
||||
__writeMemory32(0x600, 0x4000500c, "Memory"); __delay(10);
|
||||
__delay(30);
|
||||
}
|
||||
|
||||
execUserPreload()
|
||||
{
|
||||
__message "----- Prepare hardware for Flashloader -----\n";
|
||||
setup();
|
||||
__writeMemory32(0x80000000, 0x40000218, "Memory");
|
||||
}
|
||||
|
||||
execUserSetup()
|
||||
{
|
||||
//execUserPreload();
|
||||
//__loadImage("$TARGET_PATH$ ", 0, 0);
|
||||
//__writeMemory32(0x80000000, 0x40000218, "Memory");
|
||||
}
|
||||
|
||||
execUserFlashInit() // Called by debugger before loading flash loader in RAM.
|
||||
{
|
||||
__message "----- Prepare hardware for Flashloader -----\n";
|
||||
setup();
|
||||
__writeMemory32(0x80000000, 0x40000218, "Memory");
|
||||
}
|
||||
Binary file not shown.
53
component/soc/realtek/8711b/misc/iar_utility/common/gen_board.bat
Executable file
53
component/soc/realtek/8711b/misc/iar_utility/common/gen_board.bat
Executable file
|
|
@ -0,0 +1,53 @@
|
|||
@set /a tmp = %1-1
|
||||
@call :toHex %tmp% end1
|
||||
@set /a tmp2 = %2-1
|
||||
@call :toHex %tmp2% end2
|
||||
@set /a tmp3 = %3-1
|
||||
@call :toHex %tmp3% end0
|
||||
|
||||
@echo echo image 2 start %1
|
||||
@echo echo image 1 end 0x%end1%
|
||||
@echo off
|
||||
@echo ^<?xml version="1.0" encoding="iso-8859-1"?^> > tmp.board
|
||||
@echo. >> tmp.board
|
||||
@echo ^<flash_board^> >> tmp.board
|
||||
@echo ^<pass^> >> tmp.board
|
||||
@echo ^<range^>CODE %3 0x%end1%^</range^> >> tmp.board
|
||||
@echo ^<loader^>$PROJ_DIR$\..\..\..\component\soc\realtek\8195a\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash^</loader^> >> tmp.board
|
||||
@echo ^<abs_offset^>0x00000000^</abs_offset^> >> tmp.board
|
||||
@echo ^<args^>--head^</args^> >> tmp.board
|
||||
@echo ^</pass^> >> tmp.board
|
||||
@echo ^<pass^> >> tmp.board
|
||||
@echo ^<range^>CODE %1 0x%end2%^</range^> >> tmp.board
|
||||
@echo ^<loader^>$PROJ_DIR$\..\..\..\component\soc\realtek\8195a\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash^</loader^> >> tmp.board
|
||||
@echo ^<abs_offset^>0x00000000^</abs_offset^> >> tmp.board
|
||||
@echo ^<args^>--cascade^</args^> >> tmp.board
|
||||
@echo ^</pass^> >> tmp.board
|
||||
@echo ^<pass^> >> tmp.board
|
||||
@echo ^<range^>CODE 0x30000000 0x301FFFFF^</range^> >> tmp.board
|
||||
@echo ^<loader^>$PROJ_DIR$\..\..\..\component\soc\realtek\8195a\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash^</loader^> >> tmp.board
|
||||
@echo ^<abs_offset^>0x00000000^</abs_offset^> >> tmp.board
|
||||
@echo ^<args^>--cascade^</args^> >> tmp.board
|
||||
@echo ^</pass^> >> tmp.board
|
||||
@echo ^<ignore^>CODE 0x00000000 0x000FFFFF^</ignore^> >> tmp.board
|
||||
@echo ^<ignore^>CODE 0x10000000 0x%end0%^</ignore^> >> tmp.board
|
||||
@echo ^<ignore^>CODE %2 0x1006FFFF^</ignore^> >> tmp.board
|
||||
@echo ^</flash_board^> >> tmp.board >> tmp.board
|
||||
|
||||
exit
|
||||
|
||||
:toHex dec hex -- convert a decimal number to hexadecimal, i.e. -20 to FFFFFFEC or 26 to 0000001A
|
||||
@echo off
|
||||
SETLOCAL ENABLEDELAYEDEXPANSION
|
||||
set /a dec=%~1
|
||||
set "hex="
|
||||
set "map=0123456789ABCDEF"
|
||||
for /L %%N in (1,1,8) do (
|
||||
set /a "d=dec&15,dec>>=4"
|
||||
for %%D in (!d!) do set "hex=!map:~%%D,1!!hex!"
|
||||
)
|
||||
|
||||
( ENDLOCAL & REM RETURN VALUES
|
||||
IF "%~2" NEQ "" (SET %~2=%hex%) ELSE ECHO.%hex%
|
||||
)
|
||||
EXIT /b
|
||||
49
component/soc/realtek/8711b/misc/iar_utility/common/gen_board_img2.bat
Executable file
49
component/soc/realtek/8711b/misc/iar_utility/common/gen_board_img2.bat
Executable file
|
|
@ -0,0 +1,49 @@
|
|||
@set /a tmp1 = %1
|
||||
@call :toHex %tmp1% ram_start
|
||||
@set /a tmp2 = %2-1
|
||||
@call :toHex %tmp2% ram_end
|
||||
|
||||
@echo echo image 2 start %1
|
||||
@echo echo image 2 end %2
|
||||
@echo off
|
||||
@echo ^<?xml version="1.0" encoding="iso-8859-1"?^> > tmp.board
|
||||
@echo. >> tmp.board
|
||||
@echo ^<flash_board^> >> tmp.board
|
||||
@echo ^<pass^> >> tmp.board
|
||||
@echo ^<range^>CODE 0x8000000 0x8004fff^</range^> >> tmp.board
|
||||
@echo ^<loader^>$PROJ_DIR$\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash^</loader^> >> tmp.board
|
||||
@echo ^<abs_offset^>0x00000000^</abs_offset^> >> tmp.board
|
||||
@echo ^<args^>--noheader^</args^> >> tmp.board
|
||||
@echo ^</pass^> >> tmp.board
|
||||
@echo ^<pass^> >> tmp.board
|
||||
@echo ^<range^>CODE 0x800b020 0x807ffff^</range^> >> tmp.board
|
||||
@echo ^<loader^>$PROJ_DIR$\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash^</loader^> >> tmp.board
|
||||
@echo ^<abs_offset^>0xb020^</abs_offset^> >> tmp.board
|
||||
@echo ^</pass^> >> tmp.board
|
||||
@echo ^<pass^> >> tmp.board
|
||||
@echo ^<range^>CODE %1 0x%ram_end%^</range^> >> tmp.board
|
||||
@echo ^<loader^>$PROJ_DIR$\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash^</loader^> >> tmp.board
|
||||
@echo ^<abs_offset^>0xb000^</abs_offset^> >> tmp.board
|
||||
@echo ^<args^>--concat^</args^> >> tmp.board
|
||||
@echo ^</pass^> >> tmp.board
|
||||
|
||||
@echo ^<ignore^>CODE %2 0x1003dfff^</ignore^> >> tmp.board
|
||||
@echo ^</flash_board^> >> tmp.board >> tmp.board
|
||||
|
||||
exit
|
||||
|
||||
:toHex dec hex -- convert a decimal number to hexadecimal, i.e. -20 to FFFFFFEC or 26 to 0000001A
|
||||
@echo off
|
||||
SETLOCAL ENABLEDELAYEDEXPANSION
|
||||
set /a dec=%~1
|
||||
set "hex="
|
||||
set "map=0123456789ABCDEF"
|
||||
for /L %%N in (1,1,8) do (
|
||||
set /a "d=dec&15,dec>>=4"
|
||||
for %%D in (!d!) do set "hex=!map:~%%D,1!!hex!"
|
||||
)
|
||||
|
||||
( ENDLOCAL & REM RETURN VALUES
|
||||
IF "%~2" NEQ "" (SET %~2=%hex%) ELSE ECHO.%hex%
|
||||
)
|
||||
EXIT /b
|
||||
130
component/soc/realtek/8711b/misc/iar_utility/common/postbuild_img1.bat
Executable file
130
component/soc/realtek/8711b/misc/iar_utility/common/postbuild_img1.bat
Executable file
|
|
@ -0,0 +1,130 @@
|
|||
cd /D %2
|
||||
set tooldir=%2\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\tools
|
||||
set libdir=%2\..\..\..\component\soc\realtek\8711b\misc\bsp
|
||||
|
||||
del Debug\Exe\bootloader.map Debug\Exe\bootloader.asm *.bin
|
||||
cmd /c "%tooldir%\nm Debug/Exe/bootloader.axf | %tooldir%\sort > Debug/Exe/bootloader.map"
|
||||
cmd /c "%tooldir%\objdump -d Debug/Exe/bootloader.axf > Debug/Exe/bootloader.asm"
|
||||
|
||||
for /f "delims=" %%i in ('cmd /c "%tooldir%\grep IMAGE1 Debug/Exe/bootloader.map | %tooldir%\grep Base | %tooldir%\gawk '{print $1}'"') do set ram1_start=0x%%i
|
||||
for /f "delims=" %%i in ('cmd /c "%tooldir%\grep IMAGE1 Debug/Exe/bootloader.map | %tooldir%\grep Limit | %tooldir%\gawk '{print $1}'"') do set ram1_end=0x%%i
|
||||
|
||||
for /f "delims=" %%i in ('cmd /c "%tooldir%\grep xip_image1 Debug/Exe/bootloader.map | %tooldir%\grep Base | %tooldir%\gawk '{print $1}'"') do set xip_image1_start=0x%%i
|
||||
for /f "delims=" %%i in ('cmd /c "%tooldir%\grep xip_image1 Debug/Exe/bootloader.map | %tooldir%\grep Limit | %tooldir%\gawk '{print $1}'"') do set xip_image1_end=0x%%i
|
||||
|
||||
::echo ram1_start: %ram1_start% > tmp.txt
|
||||
::echo ram1_end: %ram1_end% >> tmp.txt
|
||||
::echo xip_image_start: %xip_image1_start% >> tmp.txt
|
||||
::echo xip_image1_end: %xip_image1_end% >> tmp.txt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@echo off&setlocal enabledelayedexpansion
|
||||
for /f "delims=:" %%i in ('findstr /n /c:"PLACEMENT" Debug\List\bootloader.map') do (
|
||||
set skipline=%%i
|
||||
)
|
||||
@echo off&setlocal enabledelayedexpansion
|
||||
for /f "delims=:" %%i in ('findstr /n /c:"Kind" Debug\List\bootloader.map') do (
|
||||
set endline=%%i
|
||||
)
|
||||
set /a line=endline-skipline
|
||||
|
||||
@echo off&setlocal enabledelayedexpansion
|
||||
set n=0
|
||||
(for /f "skip=%skipline% delims=" %%a in (Debug\List\bootloader.map) do (
|
||||
set /a n+=1
|
||||
if !n! leq %line% echo %%a
|
||||
))>bootloader1.txt
|
||||
|
||||
(for /f "delims=" %%a in (bootloader1.txt) do (
|
||||
set /p="%%a"<nul | find /V "<Block>"
|
||||
))>bootloader2.txt
|
||||
|
||||
@echo off&setlocal enabledelayedexpansion
|
||||
set strstart={
|
||||
set strend=}
|
||||
set /a m=1
|
||||
(for /f "delims=" %%a in (bootloader2.txt) do (
|
||||
set /p="%%a"<nul
|
||||
echo %%a | find "%strstart%" >nul && set /a m-=1
|
||||
echo %%a | find "%strend%" >nul && set /a m+=1
|
||||
if !m!==1 (echo.)
|
||||
))>bootloader3.txt
|
||||
findstr /rg "place" bootloader3.txt > tmp.txt
|
||||
|
||||
del bootloader1.txt
|
||||
del bootloader2.txt
|
||||
del bootloader3.txt
|
||||
|
||||
|
||||
|
||||
::findstr /rg "place" Debug\List\bootloader.map > tmp.txt
|
||||
setlocal enabledelayedexpansion
|
||||
for /f "delims=:" %%i in ('findstr /rg "IMAGE1" tmp.txt') do (
|
||||
set "var=%%i"
|
||||
set "sectname_ram1=!var:~1,2!"
|
||||
)
|
||||
for /f "delims=:" %%i in ('findstr /rg "xip_image1.text" tmp.txt') do (
|
||||
set "var=%%i"
|
||||
set "sectname_xip1=!var:~1,2!"
|
||||
)
|
||||
setlocal disabledelayedexpansion
|
||||
del tmp.txt
|
||||
::echo sectname_ram1: %sectname_ram1% sectname_xip: %sectname_xip1% >tmp.txt
|
||||
|
||||
:: pick ram_1.bin
|
||||
%tooldir%\objcopy -j "%sectname_ram1% rw" -Obinary Debug/Exe/bootloader.axf Debug/Exe/ram_1.bin
|
||||
:: add header
|
||||
%tooldir%\pick %ram1_start% %ram1_end% Debug\Exe\ram_1.bin Debug\Exe\ram_1.p.bin boot
|
||||
|
||||
:: pick xip_image1.bin
|
||||
%tooldir%\objcopy -j "%sectname_xip1% rw" -Obinary Debug/Exe/bootloader.axf Debug/Exe/xip_image1.bin
|
||||
:: add header
|
||||
%tooldir%\pick %xip_image1_start% %xip_image1_end% Debug\Exe\xip_image1.bin Debug\Exe\xip_image1.p.bin boot
|
||||
|
||||
:: aggregate boot_all.bin
|
||||
copy /b Debug\Exe\xip_image1.p.bin+Debug\Exe\ram_1.p.bin Debug\Exe\boot_all.bin
|
||||
|
||||
:: update boot_all.bin, raw file for application
|
||||
copy Debug\Exe\boot_all.bin %libdir%\image\boot_all.bin
|
||||
|
||||
::padding boot_all.bin to 32K+4K+4K+4K, LOADER/RSVD/SYSTEM/CALIBRATION
|
||||
::%tooldir%\padding 44k 0xFF Debug\Exe\boot_all.bin
|
||||
|
||||
:: create bootloader extern symbols
|
||||
echo /* Bootloader symbol list */ > bootloader_symbol.icf
|
||||
setlocal enabledelayedexpansion
|
||||
for /f "tokens=1,2,3 delims= " %%i in ( Debug/Exe/bootloader.map ) do (
|
||||
set "var=%%i"
|
||||
if /i "!var:~7!"=="a" (
|
||||
if %%j==T (echo %%k 0x!var:~0,7!b >> test1.txt)
|
||||
) else (
|
||||
if /i "!var:~7!"=="c" (
|
||||
if %%j==T (echo %%k 0x!var:~0,7!d >> test1.txt)
|
||||
) else (
|
||||
if /i "!var:~7!"=="e" (
|
||||
if %%j==T (echo %%k 0x!var:~0,7!f >> test1.txt)
|
||||
) else (
|
||||
set "n=!var:~7!"
|
||||
set /a n+=1
|
||||
if %%j==T (echo %%k 0x!var:~0,7!!n! >> test1.txt)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
for /f "eol=. tokens=1,2" %%i in ( test1.txt ) do echo %%i %%j >> test2.txt
|
||||
findstr /v "Region" "test2.txt">>test3.txt
|
||||
for /f "eol=_ tokens=1,2" %%i in ( test3.txt ) do echo define exported symbol %%i = %%j; >> bootloader_symbol.icf
|
||||
del test1.txt
|
||||
del test2.txt
|
||||
del test3.txt
|
||||
|
||||
del Debug\Exe\ram_1.bin
|
||||
del Debug\Exe\ram_1.p.bin
|
||||
del Debug\Exe\xip_image1.bin
|
||||
del Debug\Exe\xip_image1.p.bin
|
||||
|
||||
exit
|
||||
5
component/soc/realtek/8711b/misc/iar_utility/common/postbuild_img1.vbs
Executable file
5
component/soc/realtek/8711b/misc/iar_utility/common/postbuild_img1.vbs
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
Dim WshShell
|
||||
|
||||
Set WshShell = WScript.CreateObject("WScript.Shell")
|
||||
|
||||
WshShell.Run "cmd /c "+WScript.Arguments.Item(1)+"\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\postbuild_img1.bat "+WScript.Arguments.Item(0)+" "+WScript.Arguments.Item(1), 0
|
||||
137
component/soc/realtek/8711b/misc/iar_utility/common/postbuild_img2.bat
Executable file
137
component/soc/realtek/8711b/misc/iar_utility/common/postbuild_img2.bat
Executable file
|
|
@ -0,0 +1,137 @@
|
|||
cd /D %2
|
||||
set tooldir=%2\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\tools
|
||||
set libdir=%2\..\..\..\component\soc\realtek\8711b\misc\bsp
|
||||
set ota_bin_ver=0x%date:~0,4%%date:~5,2%%date:~8,2%
|
||||
|
||||
::echo input1=%1 >tmp.txt
|
||||
::echo input2=%2 >>tmp.txt
|
||||
::echo ota_bin_ver=%ota_bin_ver% >>tmp.txt
|
||||
|
||||
del Debug\Exe\target.map Debug\Exe\application.asm *.bin
|
||||
cmd /c "%tooldir%\nm Debug/Exe/application.axf | %tooldir%\sort > Debug/Exe/application.map"
|
||||
cmd /c "%tooldir%\objdump -d Debug/Exe/application.axf > Debug/Exe/application.asm"
|
||||
|
||||
for /f "delims=" %%i in ('cmd /c "%tooldir%\grep IMAGE2 Debug/Exe/application.map | %tooldir%\grep Base | %tooldir%\gawk '{print $1}'"') do set ram2_start=0x%%i
|
||||
for /f "delims=" %%i in ('cmd /c "%tooldir%\grep IMAGE2 Debug/Exe/application.map | %tooldir%\grep Limit | %tooldir%\gawk '{print $1}'"') do set ram2_end=0x%%i
|
||||
|
||||
for /f "delims=" %%i in ('cmd /c "%tooldir%\grep xip_image2 Debug/Exe/application.map | %tooldir%\grep Base | %tooldir%\gawk '{print $1}'"') do set xip_image2_start=0x%%i
|
||||
for /f "delims=" %%i in ('cmd /c "%tooldir%\grep xip_image2 Debug/Exe/application.map | %tooldir%\grep Limit | %tooldir%\gawk '{print $1}'"') do set xip_image2_end=0x%%i
|
||||
|
||||
::echo ram2_start: %ram2_start% > tmp.txt
|
||||
::echo ram2_end: %ram2_end% >> tmp.txt
|
||||
::echo xip_image2_start: %xip_image2_start% >> tmp.txt
|
||||
::echo xip_image2_end: %xip_image2_end% >> tmp.txt
|
||||
|
||||
|
||||
@echo off&setlocal enabledelayedexpansion
|
||||
for /f "delims=:" %%i in ('findstr /n /c:"PLACEMENT" Debug\List\application.map') do (
|
||||
set skipline=%%i
|
||||
)
|
||||
@echo off&setlocal enabledelayedexpansion
|
||||
for /f "delims=:" %%i in ('findstr /n /c:"Kind" Debug\List\application.map') do (
|
||||
set endline=%%i
|
||||
)
|
||||
set /a line=endline-skipline
|
||||
|
||||
@echo off&setlocal enabledelayedexpansion
|
||||
set n=0
|
||||
(for /f "skip=%skipline% delims=" %%a in (Debug\List\application.map) do (
|
||||
set /a n+=1
|
||||
if !n! leq %line% echo %%a
|
||||
))>application1.txt
|
||||
|
||||
(for /f "delims=" %%a in (application1.txt) do (
|
||||
set /p="%%a"<nul | find /V "<Block>"
|
||||
))>application2.txt
|
||||
|
||||
@echo off&setlocal enabledelayedexpansion
|
||||
set strstart={
|
||||
set strend=}
|
||||
set /a m=1
|
||||
(for /f "delims=" %%a in (application2.txt) do (
|
||||
set /p="%%a"<nul
|
||||
echo %%a | find "%strstart%" >nul && set /a m-=1
|
||||
echo %%a | find "%strend%" >nul && set /a m+=1
|
||||
if !m!==1 (echo.)
|
||||
))>application3.txt
|
||||
findstr /rg "place" application3.txt > tmp.txt
|
||||
|
||||
del application1.txt
|
||||
del application2.txt
|
||||
del application3.txt
|
||||
|
||||
|
||||
::findstr /rg "place" Debug\List\application.map > tmp.txt
|
||||
setlocal enabledelayedexpansion
|
||||
for /f "delims=:" %%i in ('findstr /rg "0x1000" tmp.txt') do (
|
||||
set "var=%%i"
|
||||
set "sectname_ram2=!var:~1,2!"
|
||||
)
|
||||
for /f "delims=:" %%i in ('findstr /rg "xip_image2.text" tmp.txt') do (
|
||||
set "var=%%i"
|
||||
set "sectname_xip=!var:~1,2!"
|
||||
)
|
||||
for /f "delims=:" %%i in ('findstr /rg "0x1003f000" tmp.txt') do (
|
||||
set "var=%%i"
|
||||
set "sectname_rdp=!var:~1,2!"
|
||||
)
|
||||
setlocal disabledelayedexpansion
|
||||
del tmp.txt
|
||||
::echo sectname_ram2: %sectname_ram2% sectname_xip: %sectname_xip% sectname_rdp: %sectname_rdp% >tmp1.txt
|
||||
|
||||
%tooldir%\objcopy -j "%sectname_ram2% rw" -Obinary Debug/Exe/application.axf Debug/Exe/ram_2.r.bin
|
||||
%tooldir%\objcopy -j "%sectname_xip% rw" -Obinary Debug/Exe/application.axf Debug/Exe/xip_image2.bin
|
||||
%tooldir%\objcopy -j "%sectname_rdp% rw" -Obinary Debug/Exe/application.axf Debug/Exe/rdp.bin
|
||||
|
||||
:: remove bss sections
|
||||
%tooldir%\pick %ram2_start% %ram2_end% Debug\Exe\ram_2.r.bin Debug\Exe\ram_2.bin raw
|
||||
del Debug\Exe\ram_2.r.bin
|
||||
|
||||
:: add header
|
||||
%tooldir%\pick %ram2_start% %ram2_end% Debug\Exe\ram_2.bin Debug\Exe\ram_2.p.bin
|
||||
%tooldir%\pick %xip_image2_start% %xip_image2_end% Debug\Exe\xip_image2.bin Debug\Exe\xip_image2.p.bin
|
||||
|
||||
:: get ota_idx and ota_offset from image2.icf
|
||||
setlocal enabledelayedexpansion
|
||||
findstr /rg "__ICFEDIT_region_XIP_OTA1_start__" image2.icf>test.txt
|
||||
for /f "tokens=1,2,3,4,5*" %%i in ('findstr /rg "symbol" test.txt') do (
|
||||
set "var=%%m"
|
||||
set "ota_offset=!var:~0,10!"
|
||||
)
|
||||
setlocal disabledelayedexpansion
|
||||
if "%ota_offset%"=="0x0800B000" (
|
||||
set ota_idx=1
|
||||
) else (
|
||||
set ota_idx=2
|
||||
)
|
||||
del test.txt
|
||||
::echo ota_idx=%ota_idx% >tmp.txt
|
||||
::echo ota_offset=%ota_offset% >>tmp.txt
|
||||
|
||||
:: aggregate image2_all.bin and add checksum
|
||||
if "%ota_idx%"=="2" (
|
||||
copy /b Debug\Exe\xip_image2.p.bin+Debug\Exe\ram_2.p.bin Debug\Exe\image2_all_ota2.bin
|
||||
%tooldir%\checksum Debug\Exe\image2_all_ota2.bin
|
||||
%tooldir%\ota Debug\Exe\image2_all_ota1.bin 0x800B000 Debug\Exe\image2_all_ota2.bin %ota_offset% %ota_bin_ver% Debug\Exe\ota_all.bin
|
||||
) else (
|
||||
copy /b Debug\Exe\xip_image2.p.bin+Debug\Exe\ram_2.p.bin Debug\Exe\image2_all_ota1.bin
|
||||
%tooldir%\checksum Debug\Exe\image2_all_ota1.bin
|
||||
)
|
||||
|
||||
del Debug\Exe\ram_2.bin
|
||||
del Debug\Exe\ram_2.p.bin
|
||||
del Debug\Exe\xip_image2.bin
|
||||
del Debug\Exe\xip_image2.p.bin
|
||||
|
||||
:: force update boot_all.bin
|
||||
del Debug\Exe\boot_all.bin
|
||||
|
||||
:: check boot_all.bin exist, copy default
|
||||
if not exist Debug\Exe\boot_all.bin (
|
||||
copy %libdir%\image\boot_all.bin Debug\Exe\boot_all.bin
|
||||
)
|
||||
|
||||
:: board generator
|
||||
%tooldir%\..\gen_board_img2.bat %ram2_start% %ram2_end%
|
||||
|
||||
exit
|
||||
5
component/soc/realtek/8711b/misc/iar_utility/common/postbuild_img2.vbs
Executable file
5
component/soc/realtek/8711b/misc/iar_utility/common/postbuild_img2.vbs
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
Dim WshShell
|
||||
|
||||
Set WshShell = WScript.CreateObject("WScript.Shell")
|
||||
|
||||
WshShell.Run "cmd /c "+WScript.Arguments.Item(1)+"\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\postbuild_img2.bat "+WScript.Arguments.Item(0)+" "+WScript.Arguments.Item(1), 0
|
||||
50
component/soc/realtek/8711b/misc/iar_utility/common/prebuild.bat
Executable file
50
component/soc/realtek/8711b/misc/iar_utility/common/prebuild.bat
Executable file
|
|
@ -0,0 +1,50 @@
|
|||
cd /D %1
|
||||
set ota_idx=%2
|
||||
set ota_offset=%3
|
||||
|
||||
:: Generate build_info.h
|
||||
::echo off
|
||||
::echo %date:~0,10%-%time:~0,8%
|
||||
::echo %USERNAME%
|
||||
for /f "usebackq" %%i in (`hostname`) do set hostname=%%i
|
||||
::echo %hostname%
|
||||
|
||||
echo #define UTS_VERSION "%date:~0,10%-%time:~0,8%" > ..\inc\build_info.h
|
||||
echo #define RTL8195AFW_COMPILE_TIME "%date:~0,10%-%time:~0,8%" >> ..\inc\build_info.h
|
||||
echo #define RTL8195AFW_COMPILE_DATE "%date:~0,10%" >> ..\inc\build_info.h
|
||||
echo #define RTL8195AFW_COMPILE_BY "%USERNAME%" >> ..\inc\build_info.h
|
||||
echo #define RTL8195AFW_COMPILE_HOST "%hostname%" >> ..\inc\build_info.h
|
||||
echo #define RTL8195AFW_COMPILE_DOMAIN >> ..\inc\build_info.h
|
||||
echo #define RTL8195AFW_COMPILER "IAR compiler" >> ..\inc\build_info.h
|
||||
|
||||
if "%ota_idx%"=="0" (
|
||||
goto :end
|
||||
)
|
||||
|
||||
set cf=image2.icf
|
||||
if "%ota_idx%"=="2" (
|
||||
set dt=%ota_offset%
|
||||
) else (
|
||||
set dt=0x0800B000
|
||||
)
|
||||
|
||||
findstr /rg "__ICFEDIT_region_XIP_OTA1_start__" %cf%>ttst.txt
|
||||
setlocal enabledelayedexpansion
|
||||
for /f "tokens=1,2,3,4,5*" %%i in ('findstr /rg "symbol" ttst.txt') do (
|
||||
set "var=%%m"
|
||||
set "st=!var:~0,10!"
|
||||
)
|
||||
setlocal disabledelayedexpansion
|
||||
del ttst.txt
|
||||
|
||||
echo /*###ICF### Section handled by ICF editor, don't touch! ****/>root.txt
|
||||
setlocal enabledelayedexpansion
|
||||
for /f "skip=1 tokens=1,2* delims=@" %%i in ('findstr ".*" %cf%') do (
|
||||
set txt=%%i
|
||||
echo !txt:%st%=%dt%!>>root.txt
|
||||
)
|
||||
move /y root.txt image2.icf
|
||||
|
||||
:end
|
||||
exit
|
||||
|
||||
5
component/soc/realtek/8711b/misc/iar_utility/common/prebuild.vbs
Executable file
5
component/soc/realtek/8711b/misc/iar_utility/common/prebuild.vbs
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
Dim WshShell
|
||||
|
||||
Set WshShell = WScript.CreateObject("WScript.Shell")
|
||||
|
||||
WshShell.Run "cmd /c "+WScript.Arguments.Item(0)+"\..\..\..\component\soc\realtek\8711b\misc\iar_utility\common\prebuild.bat "+WScript.Arguments.Item(0)+" "+WScript.Arguments.Item(1)+" "+WScript.Arguments.Item(2), 0
|
||||
100
component/soc/realtek/8711b/misc/iar_utility/common/preload.mac
Executable file
100
component/soc/realtek/8711b/misc/iar_utility/common/preload.mac
Executable file
|
|
@ -0,0 +1,100 @@
|
|||
//DRAM_INFO
|
||||
__var DeviceType;
|
||||
__var Page;
|
||||
__var Bank;
|
||||
__var DqWidth;
|
||||
|
||||
//DRAM_MODE_REG_INFO
|
||||
__var BstLen;
|
||||
__var BstType;
|
||||
__var Mode0Cas;
|
||||
__var Mode0Wr;
|
||||
__var Mode1DllEnN;
|
||||
__var Mode1AllLat;
|
||||
__var Mode2Cwl;
|
||||
|
||||
//DRAM_TIMING_INFO, additional parameter, to config DRAM_TIMING INFO
|
||||
__var DramTimingTref;
|
||||
__var DramRowNum;
|
||||
__var Tck;
|
||||
|
||||
//DRAM_TIMING_INFO
|
||||
__var TrfcPs;
|
||||
__var TrefiPs;
|
||||
__var WrMaxTck;
|
||||
__var TrcdPs;
|
||||
__var TrpPs;
|
||||
__var TrasPs;
|
||||
__var TrrdTck;
|
||||
__var TwrPs;
|
||||
__var TwtrTck;
|
||||
__var TmrdTck;
|
||||
__var TrtpTck;
|
||||
__var TccdTck;
|
||||
__var TrcPs;
|
||||
|
||||
//DRAM_DEVICE_INFO
|
||||
__var DdrPeriodPs;
|
||||
__var DfiRate;
|
||||
|
||||
__mem_test(){
|
||||
__var i;
|
||||
__var vaddr;
|
||||
__var tmp;
|
||||
|
||||
i=0;
|
||||
while(i<10){
|
||||
vaddr = 0x30000000+((i*23)&0x1FFFFC);
|
||||
__writeMemory32(0x55AA55AA, vaddr, "Memory");
|
||||
tmp = __readMemory32(vaddr,"Memory");
|
||||
if(tmp!=0x55AA55AA)
|
||||
return 1;
|
||||
i=i+1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
__var ok_pipe_id0;
|
||||
__var ok_pipe_id1;
|
||||
__var ok_tpc_min0;
|
||||
__var ok_tpc_max0;
|
||||
__var ok_tpc_min1;
|
||||
__var ok_tpc_max1;
|
||||
__var tpc0_cnt;
|
||||
__var tpc1_cnt;
|
||||
|
||||
__setup_system()
|
||||
{
|
||||
__var tmp;
|
||||
|
||||
__hwReset(1);
|
||||
}
|
||||
|
||||
execUserPreload()
|
||||
{
|
||||
__message "User execUserPreload....";
|
||||
__setup_system();
|
||||
}
|
||||
|
||||
execUserSetup()
|
||||
{
|
||||
//__var tmp;
|
||||
//__message "User Setup....";
|
||||
// if use normal reset, please unmark those 2 lines
|
||||
//execUserPreload();
|
||||
//__setup_system();
|
||||
//__message "User __loadImage....";
|
||||
//__loadImage("$TARGET_PATH$ ", 0, 0);
|
||||
|
||||
}
|
||||
|
||||
execUserReset()
|
||||
{
|
||||
__var tmp;
|
||||
__message "User Reset....";
|
||||
tmp = __readMemory32(0x40000210, "Memory")&(~(1<<28));
|
||||
tmp = tmp & (~(1<<21));
|
||||
__writeMemory32(tmp, 0x40000210, "Memory");
|
||||
}
|
||||
|
||||
|
||||
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/checksum
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/checksum
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/checksum.exe
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/checksum.exe
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cyggcc_s-1.dll
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cyggcc_s-1.dll
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cyggmp-10.dll
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cyggmp-10.dll
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygiconv-2.dll
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygiconv-2.dll
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygintl-8.dll
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygintl-8.dll
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygmpfr-4.dll
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygmpfr-4.dll
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygncursesw-10.dll
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygncursesw-10.dll
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygpcre-1.dll
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygpcre-1.dll
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygreadline7.dll
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygreadline7.dll
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygwin1.dll
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygwin1.dll
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygz.dll
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/cygz.dll
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/gawk.exe
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/gawk.exe
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/grep.exe
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/grep.exe
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/iarchive.exe
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/iarchive.exe
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/nm.exe
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/nm.exe
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/objcopy.exe
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/objcopy.exe
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/objdump.exe
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/objdump.exe
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/ota
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/ota
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/ota.exe
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/ota.exe
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/padding
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/padding
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/padding.exe
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/padding.exe
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/pick
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/pick
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/pick.exe
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/pick.exe
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/sed.exe
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/sed.exe
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/sort.exe
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/sort.exe
Executable file
Binary file not shown.
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/strip.exe
Executable file
BIN
component/soc/realtek/8711b/misc/iar_utility/common/tools/strip.exe
Executable file
Binary file not shown.
47
component/soc/realtek/8711b/misc/rtl8710b_freertos_pmu.h
Executable file
47
component/soc/realtek/8711b/misc/rtl8710b_freertos_pmu.h
Executable file
|
|
@ -0,0 +1,47 @@
|
|||
#ifndef _FREERTOS_PMU_8710B_H_
|
||||
#define _FREERTOS_PMU_8710B_H_
|
||||
|
||||
|
||||
|
||||
#define PMU_DEVICE_TIMER_DEFAULT_INTERVAL 2000
|
||||
#define PMU_DEVICE_TIMER_MAX_INTERVAL (1000*30) /* max 30sec */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
u32 nDeviceId;
|
||||
PSM_HOOK_FUN sleep_hook_fun;
|
||||
void* sleep_param_ptr;
|
||||
PSM_HOOK_FUN wakeup_hook_fun;
|
||||
void* wakeup_param_ptr;
|
||||
}PSM_DD_HOOK_INFO;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
u32 nDeviceId;
|
||||
PSM_HOOK_FUN late_resume_hook_fun;
|
||||
void* late_resume_param_ptr;
|
||||
}PSM_DD_DELAY_HOOK_INFO;
|
||||
|
||||
/**
|
||||
* @brief init system active timer for PMU.
|
||||
* @param none.
|
||||
* @retval status value:
|
||||
* - 0: _FAIL
|
||||
* - 1: _SUCCESS
|
||||
* @note can just used in late resume or later, can not used in wakeup_hook_fun.
|
||||
*/
|
||||
uint32_t pmu_yield_os_check(void);
|
||||
uint32_t pmu_sysactive_timer_init(void);
|
||||
void pmu_register_delay_callback(u32 nDeviceId, PSM_HOOK_FUN late_resume_hook_fun, void* late_resume_param_ptr);
|
||||
void pmu_unregister_delay_callback(u32 nDeviceId);
|
||||
u32 pmu_exec_sleep_hook_funs(void);
|
||||
void pmu_exec_wakeup_hook_funs(u32 nDeviceIdMax);
|
||||
uint32_t pmu_set_sleep_type(uint32_t type);
|
||||
uint32_t pmu_set_delta_tick(float value);
|
||||
#if CONFIG_LWIP_LAYER
|
||||
extern uint32_t LWIP_Get_Dynamic_Sleep_Interval();
|
||||
#endif
|
||||
|
||||
extern u32 tickless_debug;
|
||||
extern u32 tick_last_tcp;
|
||||
#endif
|
||||
1759
component/soc/realtek/8711b/misc/rtl8710b_ota.c
Executable file
1759
component/soc/realtek/8711b/misc/rtl8710b_ota.c
Executable file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue