mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	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>
		
			
				
	
	
		
			38 lines
		
	
	
		
			896 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			896 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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()
 |