mirror of
				https://github.com/optim-enterprises-bv/openwrt-ipq.git
				synced 2025-10-31 18:28:28 +00:00 
			
		
		
		
	scripts: make eva_ramboot.py offset configurable
The current eva_ramboot.py script is currently only compatible with Lantiq based AVM devices. For IPQ40xx devices, the offset needs to be changed. Also an alignment is not necessary here. Adjust the script to be able to pass an optional offset to load the image to. In case no offset is provided, the script behaves exactly as before this commit. Signed-off-by: David Bauer <mail@david-bauer.net>
This commit is contained in:
		 David Bauer
					David Bauer
				
			
				
					committed by
					
						 Christian Lamparter
						Christian Lamparter
					
				
			
			
				
	
			
			
			 Christian Lamparter
						Christian Lamparter
					
				
			
						parent
						
							18e942b6c4
						
					
				
				
					commit
					e7bc8984d9
				
			| @@ -1,24 +1,32 @@ | |||||||
| #!/usr/bin/python | #!/usr/bin/env python3 | ||||||
|  |  | ||||||
|  | import argparse | ||||||
|  |  | ||||||
| from ftplib import FTP | from ftplib import FTP | ||||||
| from sys import argv | from sys import argv | ||||||
| from os import stat | from os import stat | ||||||
|  |  | ||||||
| assert len(argv) == 3 | parser = argparse.ArgumentParser(description='Tool to boot AVM EVA ramdisk images.') | ||||||
| ip = argv[1] | parser.add_argument('ip', type=str, help='IP-address to transfer the image to') | ||||||
| image = argv[2] | 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(image).st_size | size = stat(args.image).st_size | ||||||
| # arbitrary size limit, to prevent the address calculations from overflows etc. | # arbitrary size limit, to prevent the address calculations from overflows etc. | ||||||
| assert size < 0x2000000 | assert size < 0x2000000 | ||||||
|  |  | ||||||
| # We need to align the address. A page boundary seems to be sufficient on 7362sl | if args.offset: | ||||||
| # and 7412 | 	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) | 	addr = ((0x8000000 - size) & ~0xfff) | ||||||
| 	haddr = 0x80000000 + addr | 	haddr = 0x80000000 + addr | ||||||
| img = open(image, "rb") |  | ||||||
|  |  | ||||||
| ftp = FTP(ip, 'adam2', 'adam2') | img = open(args.image, "rb") | ||||||
|  | ftp = FTP(args.ip, 'adam2', 'adam2') | ||||||
|  |  | ||||||
| def adam(cmd): | def adam(cmd): | ||||||
| 	print("> %s"%(cmd)) | 	print("> %s"%(cmd)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user