target/xtensa: support for bFLT binaries
- add support for bFLT binaries for target/xtensa - fix per-architecture target_flat.h customization - fix initial stack pointer for bFLT -----BEGIN PGP SIGNATURE----- iQJHBAABCAAxFiEEK2eFS5jlMn3N6xfYUfnMkfg/oEQFAlvYop4THGpjbXZia2Jj QGdtYWlsLmNvbQAKCRBR+cyR+D+gRNEfEACFvmz5kZY09PMNCv0E82F9enJUUmBy K2pEJ5Q21oiHUt/+epRbqIuR4dy6R8fqNFPnKQBrbdn13b556qofUupmzWcwXn7k PrDz1OTEujiEukESineqMN8uEe0MutApPbWHQ1tLkV0/qSo7Qh86PRZa73wXdSDK 7h+eK3/wcMItIUx+rmhB++EoAUVxNzU1RBJ04iNWgJmGQLed+1GBtMSe/CpMD7Tu qhtNFQJ2ehtJ+cAyxIhaZ2qUXOZELNBgU7BrN+0HMOpSAve7/Zh4s6a3R7WOtmjo XLqqaMnH7fiZauKEZ9hiw3pY4eqjZavP3Cn/lyRus13g0uJVndJJoJAkUyLg61hf /2ZMGZVcCllzaXbTOuwjK4K7jlXQkQ7jNF9AMbjhhTHAJgpHQnmN5UyNsHP+8P+S yLURgnlP/LNJ5akxoZtOq8Hd1lRGxsDQ0MxAl2b7L98w8/5YEKOHQPPEdiQA6v1x wC87AOJVWL4VolNznyDrwgzH0PBY23nyQFA5EmViUnciZUd4emIfSoponN/qgqrP G7q7rgNUrENx6r/izvraKK9NCxlcrVTg8PUglogiygFzst7+ucVVKR57m7oAD0U2 LNueu75fSTNW6cANryW9c9ELKAQML05ir/nIMMqSmmTp48o31Fvy3BN50mu+Q99u eEF+DHKZVvW0tA== =uBZ4 -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/xtensa/tags/20181030-xtensa' into staging target/xtensa: support for bFLT binaries - add support for bFLT binaries for target/xtensa - fix per-architecture target_flat.h customization - fix initial stack pointer for bFLT # gpg: Signature made Tue 30 Oct 2018 18:27:42 GMT # gpg: using RSA key 51F9CC91F83FA044 # gpg: Good signature from "Max Filippov <filippov@cadence.com>" # gpg: aka "Max Filippov <max.filippov@cogentembedded.com>" # gpg: aka "Max Filippov <jcmvbkbc@gmail.com>" # Primary key fingerprint: 2B67 854B 98E5 327D CDEB 17D8 51F9 CC91 F83F A044 * remotes/xtensa/tags/20181030-xtensa: linux-user/flatload: fix initial stack pointer alignment linux-user: xtensa: enable bFLT support Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
		
						commit
						7d51a855cd
					
				
							
								
								
									
										1
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @ -7105,6 +7105,7 @@ case "$target_name" in | ||||
|   ;; | ||||
|   xtensa|xtensaeb) | ||||
|     TARGET_ARCH=xtensa | ||||
|     bflt="yes" | ||||
|     mttcg="yes" | ||||
|     target_compiler=$cross_cc_xtensa | ||||
|   ;; | ||||
|  | ||||
| @ -37,7 +37,7 @@ | ||||
| 
 | ||||
| #include "qemu.h" | ||||
| #include "flat.h" | ||||
| #include "target_flat.h" | ||||
| #include <target_flat.h> | ||||
| 
 | ||||
| //#define DEBUG
 | ||||
| 
 | ||||
| @ -771,10 +771,10 @@ int load_flt_binary(struct linux_binprm *bprm, struct image_info *info) | ||||
|     /* Enforce final stack alignment of 16 bytes.  This is sufficient
 | ||||
|        for all current targets, and excess alignment is harmless.  */ | ||||
|     stack_len = bprm->envc + bprm->argc + 2; | ||||
|     stack_len += 3;	/* argc, arvg, argp */ | ||||
|     stack_len += flat_argvp_envp_on_stack() ? 2 : 0; /* arvg, argp */ | ||||
|     stack_len += 1; /* argc */ | ||||
|     stack_len *= sizeof(abi_ulong); | ||||
|     if ((sp + stack_len) & 15) | ||||
|         sp -= 16 - ((sp + stack_len) & 15); | ||||
|     sp -= (sp - stack_len) & 15; | ||||
|     sp = loader_build_argptr(bprm->envc, bprm->argc, sp, p, | ||||
|                              flat_argvp_envp_on_stack()); | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										10
									
								
								linux-user/xtensa/target_flat.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								linux-user/xtensa/target_flat.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | ||||
| /* If your arch needs to do custom stuff, create your own target_flat.h
 | ||||
|  * header file in linux-user/<your arch>/ | ||||
|  */ | ||||
| #define flat_argvp_envp_on_stack()                           0 | ||||
| #define flat_reloc_valid(reloc, size)                        ((reloc) <= (size)) | ||||
| #define flat_old_ram_flag(flag)                              (flag) | ||||
| #define flat_get_relocate_addr(relval)                       (relval) | ||||
| #define flat_get_addr_from_rp(rp, relval, flags, persistent) (rp) | ||||
| #define flat_set_persistent(relval, persistent)              (*persistent) | ||||
| #define flat_put_addr_at_rp(rp, addr, relval)                put_user_ual(addr, rp) | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Peter Maydell
						Peter Maydell