From 1d1d898c5505d1a5d1f1ea0d0e71b15387398ec0 Mon Sep 17 00:00:00 2001 From: Andrii Pientsov Date: Thu, 14 May 2020 11:24:50 +0300 Subject: Make u-boot buildable by Yocto 2.6 (gcc 8.2). Add fix_2.6.patch and fix_net.patch --- recipes-bsp/u-boot/u-boot-2016.09.01/fix_2_6.patch | 40 ++++++ recipes-bsp/u-boot/u-boot-2016.09.01/fix_net.patch | 136 +++++++++++++++++++++ recipes-bsp/u-boot/u-boot_2016.09.01.bb | 5 +- 3 files changed, 179 insertions(+), 2 deletions(-) create mode 100644 recipes-bsp/u-boot/u-boot-2016.09.01/fix_2_6.patch create mode 100644 recipes-bsp/u-boot/u-boot-2016.09.01/fix_net.patch (limited to 'recipes-bsp') diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/fix_2_6.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/fix_2_6.patch new file mode 100644 index 0000000..43ca78f --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2016.09.01/fix_2_6.patch @@ -0,0 +1,40 @@ +From 91314dd05aa6848049501a10266f2cf4e530f904 Mon Sep 17 00:00:00 2001 +From: Serhii Voloshynov +Date: Fri, 17 Jan 2020 16:47:26 +0200 +Subject: [PATCH] fix compile error in Yocto-2.6 + +--- + include/libfdt.h | 4 ++-- + include/libfdt_env.h | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/include/libfdt.h b/include/libfdt.h +index b6a400a..310d571 100644 +--- a/include/libfdt.h ++++ b/include/libfdt.h +@@ -1,5 +1,5 @@ +-#ifndef _LIBFDT_H +-#define _LIBFDT_H ++#ifndef LIBFDT_H ++#define LIBFDT_H + /* + * libfdt - Flat Device Tree manipulation + * Copyright (C) 2006 David Gibson, IBM Corporation. +diff --git a/include/libfdt_env.h b/include/libfdt_env.h +index 6c6845f..638ea69 100644 +--- a/include/libfdt_env.h ++++ b/include/libfdt_env.h +@@ -6,8 +6,8 @@ + * SPDX-License-Identifier: LGPL-2.1+ + */ + +-#ifndef _LIBFDT_ENV_H +-#define _LIBFDT_ENV_H ++#ifndef LIBFDT_ENV_H ++#define LIBFDT_ENV_H + + #include "compiler.h" + #include "linux/types.h" +-- +2.7.4 + diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/fix_net.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/fix_net.patch new file mode 100644 index 0000000..3d9a986 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2016.09.01/fix_net.patch @@ -0,0 +1,136 @@ +From 9436a1e4dfcc7d6f0cbf9511f84c8164e49f23c6 Mon Sep 17 00:00:00 2001 +From: Serhii Voloshynov +Date: Mon, 10 Feb 2020 13:10:58 +0200 +Subject: [PATCH] based on https://patchwork.ozlabs.org/patch/792238/ Core + reason is usage of structures for network headers without packed attribute. + +--- + include/net.h | 14 +++++++------- + net/bootp.h | 2 +- + net/dns.h | 2 +- + net/nfs.h | 2 +- + net/sntp.h | 2 +- + 5 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/include/net.h b/include/net.h +index 06320c6..60baf6b 100644 +--- a/include/net.h ++++ b/include/net.h +@@ -296,7 +296,7 @@ struct ethernet_hdr { + u8 et_dest[6]; /* Destination node */ + u8 et_src[6]; /* Source node */ + u16 et_protlen; /* Protocol or length */ +-}; ++} __attribute__((packed)); + + /* Ethernet header size */ + #define ETHER_HDR_SIZE (sizeof(struct ethernet_hdr)) +@@ -314,7 +314,7 @@ struct e802_hdr { + u8 et_snap2; + u8 et_snap3; + u16 et_prot; /* 802 protocol */ +-}; ++} __attribute__((packed)); + + /* 802 + SNAP + ethernet header size */ + #define E802_HDR_SIZE (sizeof(struct e802_hdr)) +@@ -328,7 +328,7 @@ struct vlan_ethernet_hdr { + u16 vet_vlan_type; /* PROT_VLAN */ + u16 vet_tag; /* TAG of VLAN */ + u16 vet_type; /* protocol type */ +-}; ++} __attribute__((packed)); + + /* VLAN Ethernet header size */ + #define VLAN_ETHER_HDR_SIZE (sizeof(struct vlan_ethernet_hdr)) +@@ -357,7 +357,7 @@ struct ip_hdr { + u16 ip_sum; /* checksum */ + struct in_addr ip_src; /* Source IP address */ + struct in_addr ip_dst; /* Destination IP address */ +-}; ++} __attribute__((packed)); + + #define IP_OFFS 0x1fff /* ip offset *= 8 */ + #define IP_FLAGS 0xe000 /* first 3 bits */ +@@ -385,7 +385,7 @@ struct ip_udp_hdr { + u16 udp_dst; /* UDP destination port */ + u16 udp_len; /* Length of UDP packet */ + u16 udp_xsum; /* Checksum */ +-}; ++} __attribute__((packed)); + + #define IP_UDP_HDR_SIZE (sizeof(struct ip_udp_hdr)) + #define UDP_HDR_SIZE (IP_UDP_HDR_SIZE - IP_HDR_SIZE) +@@ -424,7 +424,7 @@ struct arp_hdr { + u8 ar_tha[]; /* Target hardware address */ + u8 ar_tpa[]; /* Target protocol address */ + #endif /* 0 */ +-}; ++} __attribute__((packed)); + + #define ARP_HDR_SIZE (8+20) /* Size assuming ethernet */ + +@@ -459,7 +459,7 @@ struct icmp_hdr { + } frag; + u8 data[0]; + } un; +-}; ++} __attribute__((packed)); + + #define ICMP_HDR_SIZE (sizeof(struct icmp_hdr)) + #define IP_ICMP_HDR_SIZE (IP_HDR_SIZE + ICMP_HDR_SIZE) +diff --git a/net/bootp.h b/net/bootp.h +index fcb0a64..567340e 100644 +--- a/net/bootp.h ++++ b/net/bootp.h +@@ -49,7 +49,7 @@ struct bootp_hdr { + char bp_sname[64]; /* Server host name */ + char bp_file[128]; /* Boot file name */ + char bp_vend[OPT_FIELD_SIZE]; /* Vendor information */ +-}; ++} __attribute__((packed)); + + #define BOOTP_HDR_SIZE sizeof(struct bootp_hdr) + +diff --git a/net/dns.h b/net/dns.h +index c4e96af..c55a5c1 100644 +--- a/net/dns.h ++++ b/net/dns.h +@@ -29,7 +29,7 @@ struct header { + 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 */ + +diff --git a/net/nfs.h b/net/nfs.h +index 45da246..70a1a6d 100644 +--- a/net/nfs.h ++++ b/net/nfs.h +@@ -79,7 +79,7 @@ struct rpc_t { + uint32_t data[NFS_READ_SIZE]; + } reply; + } u; +-}; ++} __attribute__((packed)); + void nfs_start(void); /* Begin NFS */ + + +diff --git a/net/sntp.h b/net/sntp.h +index 6a9c6bb..c38bcee 100644 +--- a/net/sntp.h ++++ b/net/sntp.h +@@ -51,7 +51,7 @@ struct sntp_pkt_t { + unsigned long long originate_timestamp; + unsigned long long receive_timestamp; + unsigned long long transmit_timestamp; +-}; ++} __attribute__((packed)); + + void sntp_start(void); /* Begin SNTP */ + +-- +2.7.4 + diff --git a/recipes-bsp/u-boot/u-boot_2016.09.01.bb b/recipes-bsp/u-boot/u-boot_2016.09.01.bb index 3771ee1..59b3c4c 100644 --- a/recipes-bsp/u-boot/u-boot_2016.09.01.bb +++ b/recipes-bsp/u-boot/u-boot_2016.09.01.bb @@ -7,11 +7,12 @@ SRC_URI = "ftp://ftp.denx.de/pub/u-boot/u-boot-${PV}.tar.bz2 \ file://kconfig_common.patch \ file://config.patch \ file://i2c.patch \ - file://macb.patch \ file://printeepromcrc.patch \ file://mtpwd.patch \ file://tftpput.patch \ - file://hide_uboot_version.patch" + file://hide_uboot_version.patch \ + file://fix_2_6.patch \ + file://fix_net.patch" SRC_URI_append_mtcdt = " \ file://mtcdt.patch \ -- cgit v1.2.3