mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-11-04 02:11:25 +01: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>
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * (C) Masami Komiya <mkomiya@sonare.it> 2005
 | 
						|
 *
 | 
						|
 * SPDX-License-Identifier:	GPL-2.0+
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef __SNTP_H__
 | 
						|
#define __SNTP_H__
 | 
						|
 | 
						|
#define NTP_SERVICE_PORT	123
 | 
						|
#define SNTP_PACKET_LEN		48
 | 
						|
 | 
						|
 | 
						|
/* Leap Indicator */
 | 
						|
#define NTP_LI_NOLEAP		0x0
 | 
						|
#define NTP_LI_61SECS		0x1
 | 
						|
#define NTP_LI_59SECS		0x2
 | 
						|
#define NTP_LI_ALARM		0x3
 | 
						|
 | 
						|
/* Version */
 | 
						|
 | 
						|
#define NTP_VERSION		4
 | 
						|
 | 
						|
/* Mode */
 | 
						|
#define NTP_MODE_RESERVED	0
 | 
						|
#define NTP_MODE_SYMACTIVE	1	/* Symmetric Active */
 | 
						|
#define NTP_MODE_SYMPASSIVE	2	/* Symmetric Passive */
 | 
						|
#define NTP_MODE_CLIENT		3
 | 
						|
#define NTP_MODE_SERVER		4
 | 
						|
#define NTP_MODE_BROADCAST	5
 | 
						|
#define NTP_MODE_NTPCTRL	6	/* Reserved for NTP control message */
 | 
						|
#define NTP_MODE_PRIVATE	7	/* Reserved for private use */
 | 
						|
 | 
						|
struct sntp_pkt_t {
 | 
						|
#if __LITTLE_ENDIAN
 | 
						|
	uchar mode:3;
 | 
						|
	uchar vn:3;
 | 
						|
	uchar li:2;
 | 
						|
#else
 | 
						|
	uchar li:2;
 | 
						|
	uchar vn:3;
 | 
						|
	uchar mode:3;
 | 
						|
#endif
 | 
						|
	uchar stratum;
 | 
						|
	uchar poll;
 | 
						|
	uchar precision;
 | 
						|
	uint root_delay;
 | 
						|
	uint root_dispersion;
 | 
						|
	uint reference_id;
 | 
						|
	unsigned long long reference_timestamp;
 | 
						|
	unsigned long long originate_timestamp;
 | 
						|
	unsigned long long receive_timestamp;
 | 
						|
	unsigned long long transmit_timestamp;
 | 
						|
} __attribute__((packed));
 | 
						|
 | 
						|
void sntp_start(void);	/* Begin SNTP */
 | 
						|
 | 
						|
#endif /* __SNTP_H__ */
 |