[Armadeus-commitlog] armadeus branch, master, updated. armadeus-7.0-141-g5098e7bbf
Brought to you by:
sszy
|
From: Sébastien S. <ss...@us...> - 2019-11-14 15:09:27
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 5098e7bbf455a6061f5c80f16b63989012532504 (commit)
via eaf7da0ccb0b185044c75a76ce9974c937c7c8c1 (commit)
from 4096b12e669370f4b2cd894c9205a72cbde20194 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 5098e7bbf455a6061f5c80f16b63989012532504
Author: Sébastien Szymanski <seb...@ar...>
Date: Thu Nov 14 16:06:52 2019 +0100
[UBOOT]: 2017.01: apf28: backport patches
* Fixes crash when using Ethernet
* Fixes build
commit eaf7da0ccb0b185044c75a76ce9974c937c7c8c1
Author: Sébastien Szymanski <seb...@ar...>
Date: Thu Nov 14 15:59:40 2019 +0100
[BUILDROOT] gnet-imx28-usb-downloader: support usb bus and dev id
-----------------------------------------------------------------------
Summary of changes:
...etic-Do-not-use-magic-values-for-ARP_HLEN.patch | 261 +++++++++++++++++++++
...-net-Use-packed-structures-for-networking.patch | 155 ++++++++++++
.../0609-use-local-libfdt-headers.patch} | 105 ++++++---
...-Makefile-build-host-tools-with-std-gnu99.patch | 43 ++++
.../gnet-imx28-usb-downloader/libusb_handler.c | 6 +-
.../gnet-imx28-usb-downloader/libusb_handler.h | 2 +-
target/packages/gnet-imx28-usb-downloader/main.c | 19 +-
7 files changed, 550 insertions(+), 41 deletions(-)
create mode 100644 patches/u-boot/2017.01/0603-net-cosmetic-Do-not-use-magic-values-for-ARP_HLEN.patch
create mode 100644 patches/u-boot/2017.01/0604-net-Use-packed-structures-for-networking.patch
copy patches/u-boot/{2014.07/609-use-local-libfdt-headers.patch => 2017.01/0609-use-local-libfdt-headers.patch} (55%)
create mode 100644 patches/u-boot/2017.01/0610-tools-Makefile-build-host-tools-with-std-gnu99.patch
diff --git a/patches/u-boot/2017.01/0603-net-cosmetic-Do-not-use-magic-values-for-ARP_HLEN.patch b/patches/u-boot/2017.01/0603-net-cosmetic-Do-not-use-magic-values-for-ARP_HLEN.patch
new file mode 100644
index 000000000..49cb5f97f
--- /dev/null
+++ b/patches/u-boot/2017.01/0603-net-cosmetic-Do-not-use-magic-values-for-ARP_HLEN.patch
@@ -0,0 +1,261 @@
+From a40db6d511712f53b6663e61786a9eb825589984 Mon Sep 17 00:00:00 2001
+From: "ol...@sc..." <ol...@sc...>
+Date: Fri, 25 Nov 2016 16:30:19 +0100
+Subject: [PATCH] net: cosmetic: Do not use magic values for ARP_HLEN
+
+Commit 674bb249825a ("net: cosmetic: Replace magic numbers in arp.c with
+constants") introduced a nice define to replace the magic value 6 for
+the ethernet hardware address. Replace more hardcoded instances of 6
+which really reference the ARP_HLEN (iow the MAC/Hardware/Ethernet
+address).
+
+Signed-off-by: Olliver Schinagl <ol...@sc...>
+Acked-by: Joe Hershberger <joe...@ni...>
+---
+ common/fdt_support.c | 2 +-
+ include/net.h | 52 +++++++++++++++++++++++---------------------
+ net/eth-uclass.c | 10 ++++-----
+ net/eth_legacy.c | 10 ++++-----
+ 4 files changed, 38 insertions(+), 36 deletions(-)
+
+diff --git a/common/fdt_support.c b/common/fdt_support.c
+index c9f7019e38..f16039114a 100644
+--- a/common/fdt_support.c
++++ b/common/fdt_support.c
+@@ -473,7 +473,7 @@ void fdt_fixup_ethernet(void *fdt)
+ char *tmp, *end;
+ char mac[16];
+ const char *path;
+- unsigned char mac_addr[6];
++ unsigned char mac_addr[ARP_HLEN];
+ int offset;
+
+ if (fdt_path_offset(fdt, "/aliases") < 0)
+diff --git a/include/net.h b/include/net.h
+index 1f4d947350..61568f6b31 100644
+--- a/include/net.h
++++ b/include/net.h
+@@ -38,6 +38,9 @@
+
+ #define PKTALIGN ARCH_DMA_MINALIGN
+
++/* ARP hardware address length */
++#define ARP_HLEN 6
++
+ /* IPv4 addresses are always 32 bits in size */
+ struct in_addr {
+ __be32 s_addr;
+@@ -90,7 +93,7 @@ enum eth_state_t {
+ */
+ struct eth_pdata {
+ phys_addr_t iobase;
+- unsigned char enetaddr[6];
++ unsigned char enetaddr[ARP_HLEN];
+ int phy_interface;
+ int max_speed;
+ };
+@@ -161,7 +164,7 @@ void eth_halt_state_only(void); /* Set passive state */
+ #ifndef CONFIG_DM_ETH
+ struct eth_device {
+ char name[16];
+- unsigned char enetaddr[6];
++ unsigned char enetaddr[ARP_HLEN];
+ phys_addr_t iobase;
+ int state;
+
+@@ -300,9 +303,9 @@ u32 ether_crc(size_t len, unsigned char const *p);
+ */
+
+ struct ethernet_hdr {
+- u8 et_dest[6]; /* Destination node */
+- u8 et_src[6]; /* Source node */
+- u16 et_protlen; /* Protocol or length */
++ u8 et_dest[ARP_HLEN]; /* Destination node */
++ u8 et_src[ARP_HLEN]; /* Source node */
++ u16 et_protlen; /* Protocol or length */
+ };
+
+ /* Ethernet header size */
+@@ -311,16 +314,16 @@ struct ethernet_hdr {
+ #define ETH_FCS_LEN 4 /* Octets in the FCS */
+
+ struct e802_hdr {
+- u8 et_dest[6]; /* Destination node */
+- u8 et_src[6]; /* Source node */
+- u16 et_protlen; /* Protocol or length */
+- u8 et_dsap; /* 802 DSAP */
+- u8 et_ssap; /* 802 SSAP */
+- u8 et_ctl; /* 802 control */
+- u8 et_snap1; /* SNAP */
++ u8 et_dest[ARP_HLEN]; /* Destination node */
++ u8 et_src[ARP_HLEN]; /* Source node */
++ u16 et_protlen; /* Protocol or length */
++ u8 et_dsap; /* 802 DSAP */
++ u8 et_ssap; /* 802 SSAP */
++ u8 et_ctl; /* 802 control */
++ u8 et_snap1; /* SNAP */
+ u8 et_snap2;
+ u8 et_snap3;
+- u16 et_prot; /* 802 protocol */
++ u16 et_prot; /* 802 protocol */
+ };
+
+ /* 802 + SNAP + ethernet header size */
+@@ -330,11 +333,11 @@ struct e802_hdr {
+ * Virtual LAN Ethernet header
+ */
+ struct vlan_ethernet_hdr {
+- u8 vet_dest[6]; /* Destination node */
+- u8 vet_src[6]; /* Source node */
+- u16 vet_vlan_type; /* PROT_VLAN */
+- u16 vet_tag; /* TAG of VLAN */
+- u16 vet_type; /* protocol type */
++ u8 vet_dest[ARP_HLEN]; /* Destination node */
++ u8 vet_src[ARP_HLEN]; /* Source node */
++ u16 vet_vlan_type; /* PROT_VLAN */
++ u16 vet_tag; /* TAG of VLAN */
++ u16 vet_type; /* protocol type */
+ };
+
+ /* VLAN Ethernet header size */
+@@ -405,7 +408,6 @@ struct arp_hdr {
+ # define ARP_ETHER 1 /* Ethernet hardware address */
+ u16 ar_pro; /* Format of protocol address */
+ u8 ar_hln; /* Length of hardware address */
+-# define ARP_HLEN 6
+ u8 ar_pln; /* Length of protocol address */
+ # define ARP_PLEN 4
+ u16 ar_op; /* Operation */
+@@ -514,16 +516,16 @@ extern char net_nis_domain[32]; /* Our IS domain */
+ extern char net_hostname[32]; /* Our hostname */
+ extern char net_root_path[64]; /* Our root path */
+ /** END OF BOOTP EXTENTIONS **/
+-extern u8 net_ethaddr[6]; /* Our ethernet address */
+-extern u8 net_server_ethaddr[6]; /* Boot server enet address */
++extern u8 net_ethaddr[ARP_HLEN]; /* Our ethernet address */
++extern u8 net_server_ethaddr[ARP_HLEN]; /* Boot server enet address */
+ extern struct in_addr net_ip; /* Our IP addr (0 = unknown) */
+ extern struct in_addr net_server_ip; /* Server IP addr (0 = unknown) */
+ extern uchar *net_tx_packet; /* THE transmit packet */
+ extern uchar *net_rx_packets[PKTBUFSRX]; /* Receive packets */
+ extern uchar *net_rx_packet; /* Current receive packet */
+ extern int net_rx_packet_len; /* Current rx packet length */
+-extern const u8 net_bcast_ethaddr[6]; /* Ethernet broadcast address */
+-extern const u8 net_null_ethaddr[6];
++extern const u8 net_bcast_ethaddr[ARP_HLEN]; /* Ethernet broadcast address */
++extern const u8 net_null_ethaddr[ARP_HLEN];
+
+ #define VLAN_NONE 4095 /* untagged */
+ #define VLAN_IDMASK 0x0fff /* mask of valid vlan id */
+@@ -562,9 +564,9 @@ extern ushort cdp_appliance_vlan; /* CDP returned appliance VLAN */
+ */
+ static inline int is_cdp_packet(const uchar *ethaddr)
+ {
+- extern const u8 net_cdp_ethaddr[6];
++ extern const u8 net_cdp_ethaddr[ARP_HLEN];
+
+- return memcmp(ethaddr, net_cdp_ethaddr, 6) == 0;
++ return memcmp(ethaddr, net_cdp_ethaddr, ARP_HLEN) == 0;
+ }
+ #endif
+
+diff --git a/net/eth-uclass.c b/net/eth-uclass.c
+index 1d13011089..140e47d52d 100644
+--- a/net/eth-uclass.c
++++ b/net/eth-uclass.c
+@@ -230,7 +230,7 @@ static int on_ethaddr(const char *name, const char *value, enum env_op op,
+ eth_write_hwaddr(dev);
+ break;
+ case env_op_delete:
+- memset(pdata->enetaddr, 0, 6);
++ memset(pdata->enetaddr, 0, ARP_HLEN);
+ }
+ }
+
+@@ -458,7 +458,7 @@ static int eth_post_probe(struct udevice *dev)
+ {
+ struct eth_device_priv *priv = dev->uclass_priv;
+ struct eth_pdata *pdata = dev->platdata;
+- unsigned char env_enetaddr[6];
++ unsigned char env_enetaddr[ARP_HLEN];
+
+ #if defined(CONFIG_NEEDS_MANUAL_RELOC)
+ struct eth_ops *ops = eth_get_ops(dev);
+@@ -497,7 +497,7 @@ static int eth_post_probe(struct udevice *dev)
+ eth_getenv_enetaddr_by_index("eth", dev->seq, env_enetaddr);
+ if (!is_zero_ethaddr(env_enetaddr)) {
+ if (!is_zero_ethaddr(pdata->enetaddr) &&
+- memcmp(pdata->enetaddr, env_enetaddr, 6)) {
++ memcmp(pdata->enetaddr, env_enetaddr, ARP_HLEN)) {
+ printf("\nWarning: %s MAC addresses don't match:\n",
+ dev->name);
+ printf("Address in SROM is %pM\n",
+@@ -507,7 +507,7 @@ static int eth_post_probe(struct udevice *dev)
+ }
+
+ /* Override the ROM MAC address */
+- memcpy(pdata->enetaddr, env_enetaddr, 6);
++ memcpy(pdata->enetaddr, env_enetaddr, ARP_HLEN);
+ } else if (is_valid_ethaddr(pdata->enetaddr)) {
+ eth_setenv_enetaddr_by_index("eth", dev->seq, pdata->enetaddr);
+ printf("\nWarning: %s using MAC address from ROM\n",
+@@ -535,7 +535,7 @@ static int eth_pre_remove(struct udevice *dev)
+ eth_get_ops(dev)->stop(dev);
+
+ /* clear the MAC address */
+- memset(pdata->enetaddr, 0, 6);
++ memset(pdata->enetaddr, 0, ARP_HLEN);
+
+ return 0;
+ }
+diff --git a/net/eth_legacy.c b/net/eth_legacy.c
+index 1354f49ec0..e4bd0f4c1a 100644
+--- a/net/eth_legacy.c
++++ b/net/eth_legacy.c
+@@ -121,7 +121,7 @@ static int on_ethaddr(const char *name, const char *value, enum env_op op,
+ eth_write_hwaddr(dev, "eth", dev->index);
+ break;
+ case env_op_delete:
+- memset(dev->enetaddr, 0, 6);
++ memset(dev->enetaddr, 0, ARP_HLEN);
+ }
+ }
+ dev = dev->next;
+@@ -134,14 +134,14 @@ U_BOOT_ENV_CALLBACK(ethaddr, on_ethaddr);
+ int eth_write_hwaddr(struct eth_device *dev, const char *base_name,
+ int eth_number)
+ {
+- unsigned char env_enetaddr[6];
++ unsigned char env_enetaddr[ARP_HLEN];
+ int ret = 0;
+
+ eth_getenv_enetaddr_by_index(base_name, eth_number, env_enetaddr);
+
+ if (!is_zero_ethaddr(env_enetaddr)) {
+ if (!is_zero_ethaddr(dev->enetaddr) &&
+- memcmp(dev->enetaddr, env_enetaddr, 6)) {
++ memcmp(dev->enetaddr, env_enetaddr, ARP_HLEN)) {
+ printf("\nWarning: %s MAC addresses don't match:\n",
+ dev->name);
+ printf("Address in SROM is %pM\n",
+@@ -150,7 +150,7 @@ int eth_write_hwaddr(struct eth_device *dev, const char *base_name,
+ env_enetaddr);
+ }
+
+- memcpy(dev->enetaddr, env_enetaddr, 6);
++ memcpy(dev->enetaddr, env_enetaddr, ARP_HLEN);
+ } else if (is_valid_ethaddr(dev->enetaddr)) {
+ eth_setenv_enetaddr_by_index(base_name, eth_number,
+ dev->enetaddr);
+@@ -299,7 +299,7 @@ int eth_initialize(void)
+ */
+ int eth_mcast_join(struct in_addr mcast_ip, int join)
+ {
+- u8 mcast_mac[6];
++ u8 mcast_mac[ARP_HLEN];
+ if (!eth_current || !eth_current->mcast)
+ return -1;
+ mcast_mac[5] = htonl(mcast_ip.s_addr) & 0xff;
+--
+2.21.0
+
diff --git a/patches/u-boot/2017.01/0604-net-Use-packed-structures-for-networking.patch b/patches/u-boot/2017.01/0604-net-Use-packed-structures-for-networking.patch
new file mode 100644
index 000000000..d2dffa3c9
--- /dev/null
+++ b/patches/u-boot/2017.01/0604-net-Use-packed-structures-for-networking.patch
@@ -0,0 +1,155 @@
+From 704f3acfcf55343043bbed01c5fb0a0094a68e8a Mon Sep 17 00:00:00 2001
+From: Denis Pynkin <den...@co...>
+Date: Fri, 21 Jul 2017 19:28:42 +0300
+Subject: [PATCH] net: Use packed structures for networking
+
+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 <yau...@re...>
+Signed-off-by: Denis Pynkin <den...@co...>
+Acked-by: Joe Hershberger <joe...@ni...>
+---
+ 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 2eaa88224c..e1269486ad 100644
+--- a/include/net.h
++++ b/include/net.h
+@@ -308,7 +308,7 @@ struct ethernet_hdr {
+ u8 et_dest[ARP_HLEN]; /* Destination node */
+ u8 et_src[ARP_HLEN]; /* Source node */
+ u16 et_protlen; /* Protocol or length */
+-};
++} __attribute__((packed));
+
+ /* Ethernet header size */
+ #define ETHER_HDR_SIZE (sizeof(struct ethernet_hdr))
+@@ -326,7 +326,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))
+@@ -340,7 +340,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))
+@@ -369,7 +369,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 */
+@@ -397,7 +397,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)
+@@ -435,7 +435,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 */
+
+@@ -470,7 +470,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 fcb0a64e61..567340ec5d 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 c4e96afa06..c55a5c1b04 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 45da246aa1..70a1a6d554 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 6a9c6bb82f..c38bceed3f 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.21.0
+
diff --git a/patches/u-boot/2014.07/609-use-local-libfdt-headers.patch b/patches/u-boot/2017.01/0609-use-local-libfdt-headers.patch
similarity index 55%
copy from patches/u-boot/2014.07/609-use-local-libfdt-headers.patch
copy to patches/u-boot/2017.01/0609-use-local-libfdt-headers.patch
index 44fe81d12..4218a75c7 100644
--- a/patches/u-boot/2014.07/609-use-local-libfdt-headers.patch
+++ b/patches/u-boot/2017.01/0609-use-local-libfdt-headers.patch
@@ -1,7 +1,7 @@
-Index: uboot-2014.07/include/libfdt.h
+Index: uboot-2017.01/include/libfdt.h
===================================================================
---- uboot-2014.07.orig/include/libfdt.h
-+++ uboot-2014.07/include/libfdt.h
+--- uboot-2017.01.orig/include/libfdt.h
++++ uboot-2017.01/include/libfdt.h
@@ -51,8 +51,8 @@
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
@@ -13,13 +13,13 @@ Index: uboot-2014.07/include/libfdt.h
#define FDT_FIRST_SUPPORTED_VERSION 0x10
#define FDT_LAST_SUPPORTED_VERSION 0x11
-Index: uboot-2014.07/include/image.h
+Index: uboot-2017.01/include/image.h
===================================================================
---- uboot-2014.07.orig/include/image.h
-+++ uboot-2014.07/include/image.h
-@@ -46,8 +46,8 @@ struct lmb;
+--- uboot-2017.01.orig/include/image.h
++++ uboot-2017.01/include/image.h
+@@ -50,8 +50,8 @@ struct lmb;
- #if defined(CONFIG_FIT)
+ #if IMAGE_ENABLE_FIT
#include <hash.h>
-#include <libfdt.h>
-#include <fdt_support.h>
@@ -28,10 +28,10 @@ Index: uboot-2014.07/include/image.h
# ifdef CONFIG_SPL_BUILD
# ifdef CONFIG_SPL_CRC32_SUPPORT
# define IMAGE_ENABLE_CRC32 1
-Index: uboot-2014.07/include/fdt_support.h
+Index: uboot-2017.01/include/fdt_support.h
===================================================================
---- uboot-2014.07.orig/include/fdt_support.h
-+++ uboot-2014.07/include/fdt_support.h
+--- uboot-2017.01.orig/include/fdt_support.h
++++ uboot-2017.01/include/fdt_support.h
@@ -10,7 +10,7 @@
#ifdef CONFIG_OF_LIBFDT
@@ -41,49 +41,49 @@ Index: uboot-2014.07/include/fdt_support.h
u32 fdt_getprop_u32_default_node(const void *fdt, int off, int cell,
const char *prop, const u32 dflt);
-Index: uboot-2014.07/lib/libfdt/fdt_ro.c
+Index: uboot-2017.01/lib/libfdt/fdt_ro.c
===================================================================
---- uboot-2014.07.orig/lib/libfdt/fdt_ro.c
-+++ uboot-2014.07/lib/libfdt/fdt_ro.c
+--- uboot-2017.01.orig/lib/libfdt/fdt_ro.c
++++ uboot-2017.01/lib/libfdt/fdt_ro.c
@@ -3,7 +3,7 @@
* Copyright (C) 2006 David Gibson, IBM Corporation.
* SPDX-License-Identifier: GPL-2.0+ BSD-2-Clause
*/
--#include "libfdt_env.h"
+-#include <libfdt_env.h>
+#include "../../include/libfdt_env.h"
#ifndef USE_HOSTCC
#include <fdt.h>
-Index: uboot-2014.07/lib/libfdt/fdt.c
+Index: uboot-2017.01/lib/libfdt/fdt.c
===================================================================
---- uboot-2014.07.orig/lib/libfdt/fdt.c
-+++ uboot-2014.07/lib/libfdt/fdt.c
+--- uboot-2017.01.orig/lib/libfdt/fdt.c
++++ uboot-2017.01/lib/libfdt/fdt.c
@@ -3,7 +3,7 @@
* Copyright (C) 2006 David Gibson, IBM Corporation.
* SPDX-License-Identifier: GPL-2.0+ BSD-2-Clause
*/
--#include "libfdt_env.h"
+-#include <libfdt_env.h>
+#include "../../include/libfdt_env.h"
#ifndef USE_HOSTCC
#include <fdt.h>
-Index: uboot-2014.07/lib/libfdt/fdt_strerror.c
+Index: uboot-2017.01/lib/libfdt/fdt_strerror.c
===================================================================
---- uboot-2014.07.orig/lib/libfdt/fdt_strerror.c
-+++ uboot-2014.07/lib/libfdt/fdt_strerror.c
+--- uboot-2017.01.orig/lib/libfdt/fdt_strerror.c
++++ uboot-2017.01/lib/libfdt/fdt_strerror.c
@@ -3,7 +3,7 @@
* Copyright (C) 2006 David Gibson, IBM Corporation.
* SPDX-License-Identifier: GPL-2.0+ BSD-2-Clause
*/
--#include "libfdt_env.h"
+-#include <libfdt_env.h>
+#include "../../include/libfdt_env.h"
#ifndef USE_HOSTCC
#include <fdt.h>
-Index: uboot-2014.07/lib/fdtdec_common.c
+Index: uboot-2017.01/lib/fdtdec_common.c
===================================================================
---- uboot-2014.07.orig/lib/fdtdec_common.c
-+++ uboot-2014.07/lib/fdtdec_common.c
+--- uboot-2017.01.orig/lib/fdtdec_common.c
++++ uboot-2017.01/lib/fdtdec_common.c
@@ -13,8 +13,8 @@
#include <libfdt.h>
#include <fdtdec.h>
@@ -95,10 +95,10 @@ Index: uboot-2014.07/lib/fdtdec_common.c
#define debug(...)
#endif
-Index: uboot-2014.07/lib/libfdt/libfdt_internal.h
+Index: uboot-2017.01/lib/libfdt/libfdt_internal.h
===================================================================
---- uboot-2014.07.orig/lib/libfdt/libfdt_internal.h
-+++ uboot-2014.07/lib/libfdt/libfdt_internal.h
+--- uboot-2017.01.orig/lib/libfdt/libfdt_internal.h
++++ uboot-2017.01/lib/libfdt/libfdt_internal.h
@@ -5,7 +5,7 @@
* Copyright (C) 2006 David Gibson, IBM Corporation.
* SPDX-License-Identifier: GPL-2.0+ BSD-2-Clause
@@ -108,29 +108,60 @@ Index: uboot-2014.07/lib/libfdt/libfdt_internal.h
#define FDT_ALIGN(x, a) (((x) + (a) - 1) & ~((a) - 1))
#define FDT_TAGALIGN(x) (FDT_ALIGN((x), FDT_TAGSIZE))
-Index: uboot-2014.07/lib/libfdt/fdt_wip.c
+Index: uboot-2017.01/lib/libfdt/fdt_wip.c
===================================================================
---- uboot-2014.07.orig/lib/libfdt/fdt_wip.c
-+++ uboot-2014.07/lib/libfdt/fdt_wip.c
+--- uboot-2017.01.orig/lib/libfdt/fdt_wip.c
++++ uboot-2017.01/lib/libfdt/fdt_wip.c
@@ -3,7 +3,7 @@
* Copyright (C) 2006 David Gibson, IBM Corporation.
* SPDX-License-Identifier: GPL-2.0+ BSD-2-Clause
*/
--#include "libfdt_env.h"
+-#include <libfdt_env.h>
+#include "../../include/libfdt_env.h"
#ifndef USE_HOSTCC
#include <fdt.h>
-Index: uboot-2014.07/lib/libfdt/fdt_rw.c
+Index: uboot-2017.01/lib/libfdt/fdt_rw.c
===================================================================
---- uboot-2014.07.orig/lib/libfdt/fdt_rw.c
-+++ uboot-2014.07/lib/libfdt/fdt_rw.c
+--- uboot-2017.01.orig/lib/libfdt/fdt_rw.c
++++ uboot-2017.01/lib/libfdt/fdt_rw.c
@@ -3,7 +3,7 @@
* Copyright (C) 2006 David Gibson, IBM Corporation.
* SPDX-License-Identifier: GPL-2.0+ BSD-2-Clause
*/
--#include "libfdt_env.h"
+-#include <libfdt_env.h>
++#include "../../include/libfdt_env.h"
+
+ #ifndef USE_HOSTCC
+ #include <fdt.h>
+Index: uboot-2017.01/lib/libfdt/fdt_region.c
+===================================================================
+--- uboot-2017.01.orig/lib/libfdt/fdt_region.c
++++ uboot-2017.01/lib/libfdt/fdt_region.c
+@@ -5,7 +5,7 @@
+ * SPDX-License-Identifier: GPL-2.0+ BSD-2-Clause
+ */
+
+-#include <libfdt_env.h>
+#include "../../include/libfdt_env.h"
#ifndef USE_HOSTCC
#include <fdt.h>
+Index: uboot-2017.01/lib/libfdt/fdt_sw.c
+===================================================================
+--- uboot-2017.01.orig/lib/libfdt/fdt_sw.c
++++ uboot-2017.01/lib/libfdt/fdt_sw.c
+@@ -3,9 +3,10 @@
+ * Copyright (C) 2006 David Gibson, IBM Corporation.
+ * SPDX-License-Identifier: GPL-2.0+ BSD-2-Clause
+ */
+-#include <libfdt_env.h>
+-#include <fdt.h>
+-#include <libfdt.h>
++#include "../../include/libfdt_env.h"
++
++#include "../../include/fdt.h"
++#include "../../include/libfdt.h"
+
+ #include "libfdt_internal.h"
+
diff --git a/patches/u-boot/2017.01/0610-tools-Makefile-build-host-tools-with-std-gnu99.patch b/patches/u-boot/2017.01/0610-tools-Makefile-build-host-tools-with-std-gnu99.patch
new file mode 100644
index 000000000..2a1e81c1c
--- /dev/null
+++ b/patches/u-boot/2017.01/0610-tools-Makefile-build-host-tools-with-std-gnu99.patch
@@ -0,0 +1,43 @@
+From d7edeba79b2776a2097adf952b3b392c2dfb036b Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <tho...@bo...>
+Date: Sat, 30 Mar 2019 15:29:23 +0100
+Subject: [PATCH 1/1] tools/Makefile: build host tools with -std=gnu99
+
+Parts of the code are using C99 constructs (such as variables declared
+inside loops), but also GNU extensions (such as typeof), so using
+-std=gnu99 is necessary to build with older versions of gcc that don't
+default to building with gnu99.
+
+It fixes the following build failure:
+
+./tools/../lib/crc16.c: In function "crc16_ccitt":
+./tools/../lib/crc16.c:70:2: error: "for" loop initial declarations are only allowed in C99 mode
+ for (int i = 0; i < len; i++)
+ ^
+./tools/../lib/crc16.c:70:2: note: use option -std=c99 or -std=gnu99 to compile your code
+
+when building the host tools with gcc 4.7.
+
+Signed-off-by: Thomas Petazzoni <tho...@bo...>
+Reviewed-by: Philipp Tomsich <phi...@th...>
+---
+ tools/Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/tools/Makefile b/tools/Makefile
+index 081383d7a7..d377d85f74 100644
+--- a/tools/Makefile
++++ b/tools/Makefile
+@@ -254,7 +254,8 @@ HOST_EXTRACFLAGS += -include $(srctree)/include/compiler.h \
+ -I$(srctree)/tools \
+ -DUSE_HOSTCC \
+ -D__KERNEL_STRICT_NAMES \
+- -D_GNU_SOURCE
++ -D_GNU_SOURCE \
++ -std=gnu99
+
+ __build: $(LOGO-y)
+
+--
+2.21.0
+
diff --git a/target/packages/gnet-imx28-usb-downloader/libusb_handler.c b/target/packages/gnet-imx28-usb-downloader/libusb_handler.c
index eb0276b3e..513339257 100644
--- a/target/packages/gnet-imx28-usb-downloader/libusb_handler.c
+++ b/target/packages/gnet-imx28-usb-downloader/libusb_handler.c
@@ -118,7 +118,7 @@ int transferData(struct usb_dev_handle *dev, size_t tx_size, char *data)
return SUCCESS;
}
-int usb_write(int size, char *dataBuf)
+int usb_write(int size, char *dataBuf, unsigned int bus_id, unsigned int dev_id)
{
struct usb_bus *bus;
struct usb_device *dev;
@@ -130,9 +130,13 @@ int usb_write(int size, char *dataBuf)
usb_find_devices();
for (bus = usb_busses; bus; bus = bus->next) {
+ if (bus_id != 0 && bus_id != bus->location)
+ continue;
for (dev = bus->devices; dev; dev = dev->next) {
usb_dev_handle *udev;
+ if (dev_id != 0 && dev_id != dev->devnum)
+ continue;
if ((dev->descriptor.idVendor == FREESCALE_VENDOR_ID)
&& (dev->descriptor.idProduct ==
FREESCALE_PRODUCT_ID)) {
diff --git a/target/packages/gnet-imx28-usb-downloader/libusb_handler.h b/target/packages/gnet-imx28-usb-downloader/libusb_handler.h
index 13e57b282..36549876f 100644
--- a/target/packages/gnet-imx28-usb-downloader/libusb_handler.h
+++ b/target/packages/gnet-imx28-usb-downloader/libusb_handler.h
@@ -24,7 +24,7 @@
#define SUCCESS 0
-int usb_write( int size, char * dataBuf);
+int usb_write( int size, char * dataBuf, unsigned int bus_id, unsigned int dev_id );
/* USB DRIVER INFO */
diff --git a/target/packages/gnet-imx28-usb-downloader/main.c b/target/packages/gnet-imx28-usb-downloader/main.c
index b570cbaf2..0c4a09cf2 100644
--- a/target/packages/gnet-imx28-usb-downloader/main.c
+++ b/target/packages/gnet-imx28-usb-downloader/main.c
@@ -32,6 +32,8 @@
struct params {
char file_name[1024];
+ unsigned int bus_id;
+ unsigned int dev_id;
};
void checkargs(int argc, char *argv[], struct params *param)
@@ -59,6 +61,16 @@ void checkargs(int argc, char *argv[], struct params *param)
strcpy(param->file_name, argv[arg + 1]);
}
}
+
+ if(strcmp("-b", argv[arg]) == 0) {
+ if (argc > arg + 1)
+ param->bus_id = atoi(argv[arg + 1]);
+ }
+
+ if(strcmp("-d", argv[arg]) == 0) {
+ if (argc > arg + 1)
+ param->dev_id = atoi(argv[arg + 1]);
+ }
arg++;
}
@@ -67,6 +79,9 @@ void checkargs(int argc, char *argv[], struct params *param)
printf(USAGE_MSG);
exit(-EINERR);
}
+
+ if (param->bus_id != 0 && param->dev_id != 0)
+ printf("bus ID %d, dev ID %d\n", param->bus_id, param->dev_id);
}
int main(int argc, char *argv[])
@@ -75,7 +90,7 @@ int main(int argc, char *argv[])
void *data;
int retval;
unsigned int sz, bytesRead;
- struct params params = { "" };
+ struct params params = { "", 0, 0 };
checkargs(argc, argv, ¶ms);
@@ -103,7 +118,7 @@ int main(int argc, char *argv[])
printf("attempting to write writing [%s] bootstream...",
params.file_name);
- retval = usb_write(sz, data);
+ retval = usb_write(sz, data, params.bus_id, params.dev_id);
switch (retval) {
case -ERR_TX:
hooks/post-receive
--
armadeus
|