Files
openwrt-kernel5.10-nss-qsdk…/scripts/flashing/eva_ramboot.py
domenico 0cba744dde
Some checks failed
Build Kernel / Set targets (push) Has been cancelled
Build all core packages / build (malta/be) (push) Has been cancelled
Build all core packages / build (x86/64) (push) Has been cancelled
Build host tools / build-macos-latest (push) Has been cancelled
Build host tools / build-linux-buildbot (push) Has been cancelled
Build Kernel / Build Kernel with external toolchain (push) Has been cancelled
Build Kernel / Check Kernel patches (push) Has been cancelled
Build host tools / push-tools-container (push) Has been cancelled
Initial commit
2025-06-24 13:18:37 +02:00

45 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python3
import argparse
from ftplib import FTP
from os import stat
parser = argparse.ArgumentParser(description='Tool to boot AVM EVA ramdisk images.')
parser.add_argument('ip', type=str, help='IP-address to transfer the image to')
parser.add_argument('image', type=str, help='Location of the ramdisk image')
parser.add_argument('--offset', type=lambda x: int(x,0), help='Offset to load the image to in hex format with leading 0x. Only needed for non-lantiq devices.')
args = parser.parse_args()
size = stat(args.image).st_size
# arbitrary size limit, to prevent the address calculations from overflows etc.
assert size < 0x2000000
if args.offset:
addr = size
haddr = args.offset
else:
# We need to align the address.
# A page boundary seems to be sufficient on 7362sl and 7412
addr = ((0x8000000 - size) & ~0xfff)
haddr = 0x80000000 + addr
img = open(args.image, "rb")
ftp = FTP(args.ip, 'adam2', 'adam2')
def adam(cmd):
print("> %s"%(cmd))
resp = ftp.sendcmd(cmd)
print("< %s"%(resp))
assert resp[0:3] == "200"
ftp.set_pasv(True)
# The following parameters allow booting the avm recovery system with this
# script.
adam('SETENV memsize 0x%08x'%(addr))
adam('SETENV kernel_args_tmp mtdram1=0x%08x,0x88000000'%(haddr))
adam('MEDIA SDRAM')
ftp.storbinary('STOR 0x%08x 0x88000000'%(haddr), img)
img.close()
ftp.close()