mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 03:58:17 +00:00 
			
		
		
		
	PXE boot is broken with GCC 7.1 due option '-fstore-merging' enabled by default for '-O2': BOOTP broadcast 1 data abort pc : [<8ff8bb30>] lr : [<00004f1f>] reloc pc : [<17832b30>] lr : [<878abf1f>] sp : 8f558bc0 ip : 00000000 fp : 8ffef5a4 r10: 8ffed248 r9 : 8f558ee0 r8 : 8ffef594 r7 : 0000000e r6 : 8ffed700 r5 : 00000000 r4 : 8ffed74e r3 : 00060101 r2 : 8ffed230 r1 : 8ffed706 r0 : 00000ddd Flags: nzcv IRQs off FIQs off Mode SVC_32 Resetting CPU ... Core reason is usage of structures for network headers without packed attribute. Reviewed-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com> Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
		
			
				
	
	
		
			37 lines
		
	
	
		
			792 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			792 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * (C) Masami Komiya <mkomiya@sonare.it> 2005
 | |
|  *  Copyright 2009, Robin Getz <rgetz@blackfin.uclinux.org>
 | |
|  *
 | |
|  * SPDX-License-Identifier:	GPL-2.0+
 | |
|  */
 | |
| 
 | |
| #ifndef __DNS_H__
 | |
| #define __DNS_H__
 | |
| 
 | |
| #define DNS_SERVICE_PORT 53
 | |
| #define DNS_TIMEOUT      10000UL
 | |
| 
 | |
| /* http://en.wikipedia.org/wiki/List_of_DNS_record_types */
 | |
| enum dns_query_type {
 | |
| 	DNS_A_RECORD = 0x01,
 | |
| 	DNS_CNAME_RECORD = 0x05,
 | |
| 	DNS_MX_RECORD = 0x0f,
 | |
| };
 | |
| 
 | |
| /*
 | |
|  * DNS network packet
 | |
|  */
 | |
| struct header {
 | |
| 	uint16_t	tid;		/* Transaction ID */
 | |
| 	uint16_t	flags;		/* Flags */
 | |
| 	uint16_t	nqueries;	/* Questions */
 | |
| 	uint16_t	nanswers;	/* Answers */
 | |
| 	uint16_t	nauth;		/* Authority PRs */
 | |
| 	uint16_t	nother;		/* Other PRs */
 | |
| 	unsigned char	data[1];	/* Data, variable length */
 | |
| } __attribute__((packed));
 | |
| 
 | |
| void dns_start(void);		/* Begin DNS */
 | |
| 
 | |
| #endif
 |