grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [PATCHv2] EFI - PXE - include details from proxy (altserviceboot) of


From: Mroczek, Joseph T
Subject: RE: [PATCHv2] EFI - PXE - include details from proxy (altserviceboot) offer when available (resend)
Date: Tue, 11 Feb 2014 17:25:21 +0000

From: Andrey Borzenkov [mailto:address@hidden
Sent: Tuesday, February 11, 2014 8:06 AM
> 
> В Tue, 11 Feb 2014 02:20:19 +0000
> "Mroczek, Joseph T" <address@hidden> пишет:
> 
> > Updated efi api.h with more of pxe mode structure. Definitions from uEFI
> specification v2.4 errata A.
> >
> > I had to update the typedef for grub_efi_ip_address_t, but it did not seem
> to be used anywhere at this point.
> >
> > There is a minor issue that it is still not capturing the file name. It is 
> > beyond
> my skill level to track down exactly why and fix it safely.
> >
> > Please let me know if there is anything more I can do.
> >
> > ~joe
> >
> > diff -Naur grub-2.02~beta2/grub-core/net/drivers/efi/efinet.c
> > grub-2.02~beta2-bug41488-jtm/grub-core/net/drivers/efi/efinet.c
> > --- grub-2.02~beta2/grub-core/net/drivers/efi/efinet.c 2013-12-24
> > 11:29:27.000000000 -0500
> > +++ grub-2.02~beta2-bug41488-jtm/grub-
> core/net/drivers/efi/efinet.c
> > +++ 2014-02-10 20:21:29.342895600 -0500
> > @@ -250,6 +250,12 @@
> >
> > &pxe_mode->dhcp_ack,
> >
> > sizeof (pxe_mode->dhcp_ack),
> >                                                                    1,
> > device, path);
> > +    if (pxe_mode->proxy_offer_received)
> 
> Should not preceding grub_net_configure_by_dhcp_ack be made
> conditional on pxe_mode->dhcp_ack_received as well?

That would make sense. It did not perform the check before my change, so I saw 
no reason to add it. As far as I know, there are no issues with it operating 
the it does now. 

I have no insider knowledge of EFI, PXE, or GRUB. I am just a sysadmin who took 
a C class 10 years ago that is very frustrated trying to get a solution to 
netboot both Windows and Linux for BIOS, EFI32 and EFI64.

> 
> > +      grub_net_configure_by_dhcp_ack (card->name, card, 0,
> > +
> > +(struct grub_net_bootp_packet *)
> > +
> > +&pxe_mode->proxy_offer,
> > +
> > +sizeof (pxe_mode->proxy_offer),
> > +                                                                 1,
> > +device, path);
> >      return;
> >    }
> > }
> > diff -Naur grub-2.02~beta2/include/grub/efi/api.h
> > grub-2.02~beta2-bug41488-jtm/include/grub/efi/api.h
> > --- grub-2.02~beta2/include/grub/efi/api.h         2013-12-24
> > 12:04:54.000000000 -0500
> > +++ grub-2.02~beta2-bug41488-jtm/include/grub/efi/api.h
> > +++ 2014-02-10 20:30:32.754895600 -0500
> > @@ -526,7 +526,7 @@
> > typedef grub_uint8_t grub_efi_mac_address_t[32]; typedef grub_uint8_t
> > grub_efi_ipv4_address_t[4]; typedef grub_uint16_t
> > grub_efi_ipv6_address_t[8]; -typedef grub_uint8_t
> > grub_efi_ip_address_t[8] __attribute__ ((aligned(4)));
> > +typedef grub_uint8_t grub_efi_ip_address_t[16] __attribute__
> > +((aligned(4)));
> > typedef grub_efi_uint64_t grub_efi_physical_address_t; typedef
> > grub_efi_uint64_t grub_efi_virtual_address_t;
> >
> > @@ -1342,12 +1342,33 @@
> >
> >  typedef struct grub_efi_pxe_mode
> > {
> > -  grub_uint8_t unused[52];
> > +  grub_uint8_t started;
> > +  grub_uint8_t ipv6_available;
> > +  grub_uint8_t ipv6_supported;
> > +  grub_uint8_t using_ipv6;
> > +  grub_uint8_t bis_supported;
> > +  grub_uint8_t bis_detected;
> > +  grub_uint8_t auto_arp;
> > +  grub_uint8_t send_guid;
> > +  grub_uint8_t dhcp_discover_valid;
> > +  grub_uint8_t dhcp_ack_received;
> > +  grub_uint8_t proxy_offer_received;
> > +  grub_uint8_t pxe_discover_valid;
> > +  grub_uint8_t pxe_reply_received;
> > +  grub_uint8_t pxe_bis_reply_received;
> > +  grub_uint8_t icmp_error_received;
> > +  grub_uint8_t tftp_error_received;
> > +  grub_uint8_t make_callbacks;
> > +  grub_uint8_t ttl;
> > +  grub_uint8_t tos;
> > +  grub_efi_ip_address_t station_ip;
> > +  grub_efi_ip_address_t subnet_mask;
> >    grub_efi_pxe_packet_t dhcp_discover;
> >    grub_efi_pxe_packet_t dhcp_ack;
> >    grub_efi_pxe_packet_t proxy_offer;
> >    grub_efi_pxe_packet_t pxe_discover;
> >    grub_efi_pxe_packet_t pxe_reply;
> > +  grub_efi_pxe_packet_t pxe_bis_reply;
> > } grub_efi_pxe_mode_t;
> >
> >  typedef struct grub_efi_pxe
> >




reply via email to

[Prev in Thread] Current Thread [Next in Thread]