In edk2, there are several drivers that associate HII forms (and corresponding config access protocol instances) with each individual network device. (In this context, "network device" means the EFI handle on which the SNP protocol is installed, and on which the device path ending with the MAC() node is installed also.) Such edk2 drivers are, for example: Ip4Dxe, HttpBootDxe, VlanConfigDxe. In UEFI, any given handle can carry at most one instance of a specific protocol (see e.g. the specification of the InstallProtocolInterface() boot service). This implies that the class of drivers mentioned above can't install their EFI_HII_CONFIG_ACCESS_PROTOCOL instances on the SNP handle directly -- they would conflict with each other. Accordingly, each of those edk2 drivers creates a "private" child handle under the SNP handle, and installs its config access protocol (and corresponding HII package list) on its child handle. The device path for the child handle is traditionally derived by appending a Hardware Vendor Device Path node after the MAC() node. The VenHw() nodes in question consist of a GUID (by definition), and no trailing data (by choice). The purpose of these VenHw() nodes is only that all the child nodes can be uniquely identified by device path. At the moment iPXE does not follow this pattern. It doesn't run into a conflict when it installs its EFI_HII_CONFIG_ACCESS_PROTOCOL directly on the SNP handle, but that's only because iPXE is the sole driver not following the pattern. This behavior seems risky (one might call it a "latent bug"); better align iPXE with the edk2 custom. Cc: Michael Brown <mcb30@ipxe.org> Cc: Gary Lin <glin@suse.com> Cc: Ladi Prosek <lprosek@redhat.com> Ref: http://thread.gmane.org/gmane.comp.bios.edk2.devel/13494/focus=13532 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Ladi Prosek <lprosek@redhat.com> Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>tags/v1.20.1
|
|
||
57 |
|
57 |
|
58 |
|
58 |
|
59 |
|
59 |
|
|
60 |
|
|
|
61 |
|
|
|
62 |
|
|
|
63 |
|
|
60 |
|
64 |
|
61 |
|
65 |
|
62 |
|
66 |
|
|
|
||
63 |
|
63 |
|
64 |
|
64 |
|
65 |
|
65 |
|
|
66 |
|
|
66 |
|
67 |
|
67 |
|
68 |
|
68 |
|
69 |
|
|
|
||
653 |
|
654 |
|
654 |
|
655 |
|
655 |
|
656 |
|
|
657 |
|
|
|
658 |
|
|
|
659 |
|
|
656 |
|
660 |
|
657 |
|
661 |
|
658 |
|
662 |
|
|
|
||
674 |
|
678 |
|
675 |
|
679 |
|
676 |
|
680 |
|
|
681 |
|
|
|
682 |
|
|
|
683 |
|
|
|
684 |
|
|
|
685 |
|
|
|
686 |
|
|
|
687 |
|
|
|
688 |
|
|
|
689 |
|
|
|
690 |
|
|
|
691 |
|
|
|
692 |
|
|
|
693 |
|
|
|
694 |
|
|
|
695 |
|
|
|
696 |
|
|
|
697 |
|
|
|
698 |
|
|
|
699 |
|
|
|
700 |
|
|
|
701 |
|
|
|
702 |
|
|
|
703 |
|
|
|
704 |
|
|
|
705 |
|
|
|
706 |
|
|
|
707 |
|
|
|
708 |
|
|
|
709 |
|
|
|
710 |
|
|
|
711 |
|
|
|
712 |
|
|
|
713 |
|
|
|
714 |
|
|
|
715 |
|
|
|
716 |
|
|
|
717 |
|
|
677 |
|
718 |
|
678 |
|
719 |
|
679 |
|
|
|
|
720 |
|
|
680 |
|
721 |
|
681 |
|
722 |
|
682 |
|
723 |
|
|
|
||
686 |
|
727 |
|
687 |
|
728 |
|
688 |
|
729 |
|
689 |
|
|
|
|
730 |
|
|
690 |
|
731 |
|
691 |
|
732 |
|
692 |
|
733 |
|
|
|
||
695 |
|
736 |
|
696 |
|
737 |
|
697 |
|
738 |
|
|
739 |
|
|
|
740 |
|
|
|
741 |
|
|
|
742 |
|
|
|
743 |
|
|
|
744 |
|
|
|
745 |
|
|
|
746 |
|
|
|
747 |
|
|
698 |
|
748 |
|
699 |
|
749 |
|
|
750 |
|
|
|
751 |
|
|
700 |
|
752 |
|
701 |
|
|
|
|
753 |
|
|
702 |
|
754 |
|
703 |
|
755 |
|
704 |
|
756 |
|
705 |
|
757 |
|
706 |
|
758 |
|
|
759 |
|
|
|
760 |
|
|
|
761 |
|
|
|
762 |
|
|
|
763 |
|
|
|
764 |
|
|
|
765 |
|
|
|
766 |
|
|
707 |
|
767 |
|
708 |
|
768 |
|
709 |
|
769 |
|
|
|
||
724 |
|
784 |
|
725 |
|
785 |
|
726 |
|
786 |
|
|
787 |
|
|
727 |
|
788 |
|
728 |
|
|
|
|
789 |
|
|
729 |
|
790 |
|
730 |
|
791 |
|
731 |
|
792 |
|
|
793 |
|
|
|
794 |
|
|
|
795 |
|
|
|
796 |
|
|
|
797 |
|
|
|
798 |
|
|
732 |
|
799 |
|
733 |
|
800 |
|
734 |
|
801 |
|