scripts: add EVA ramboot script
Use the EVA bootloader to load a small linux system into the ram and boot it from there: ./scripts/flashing/eva_ramboot.py 192.168.178.1 path/to/initramfs-kernel.bin Signed-off-by: Valentin Spreckels <Valentin.Spreckels@Informatik.Uni-Oldenburg.DE> Acked-by: John Crispin <john@phrozen.org> [reworded commit message] Signed-off-by: Mathias Kresin <dev@kresin.me>
This commit is contained in:
parent
d13b05741a
commit
7a303fe5d1
1 changed files with 37 additions and 0 deletions
37
scripts/flashing/eva_ramboot.py
Executable file
37
scripts/flashing/eva_ramboot.py
Executable file
|
@ -0,0 +1,37 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
from ftplib import FTP
|
||||||
|
from sys import argv
|
||||||
|
from os import stat
|
||||||
|
|
||||||
|
assert len(argv) == 3
|
||||||
|
ip = argv[1]
|
||||||
|
image = argv[2]
|
||||||
|
|
||||||
|
size = stat(image).st_size
|
||||||
|
# arbitrary size limit, to prevent the address calculations from overflows etc.
|
||||||
|
assert size < 0x2000000
|
||||||
|
|
||||||
|
# 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(image, "rb")
|
||||||
|
|
||||||
|
ftp = FTP(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()
|
Loading…
Reference in a new issue