Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[efi] Add the "snpnet" driver
Add a new network driver that consumes the EFI Simple Network
Protocol.  Also add a bus driver that can find the Simple Network
Protocol that iPXE was loaded from; the resulting behavior is similar
to the "undionly" driver for BIOS systems.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
Geoff Lywood authored and mcb30 committed Jun 2, 2010
1 parent 74bc1b9 commit 62149de
Show file tree
Hide file tree
Showing 10 changed files with 724 additions and 4 deletions.
1 change: 1 addition & 0 deletions src/Makefile
Expand Up @@ -67,6 +67,7 @@ SRCDIRS += drivers/net/phantom
SRCDIRS += drivers/net/rtl818x
SRCDIRS += drivers/net/ath5k
SRCDIRS += drivers/net/vxge
SRCDIRS += drivers/net/efi
SRCDIRS += drivers/block
SRCDIRS += drivers/nvs
SRCDIRS += drivers/bitbash
Expand Down
49 changes: 49 additions & 0 deletions src/drivers/net/efi/snp.h
@@ -0,0 +1,49 @@
/*
* Copyright (C) 2010 VMware, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#ifndef _SNP_H
#define _SNP_H

/** @file
*
* SNP driver
*
*/

FILE_LICENCE ( GPL2_OR_LATER );

#include <ipxe/device.h>
#include <ipxe/netdevice.h>
#include <ipxe/efi/Protocol/SimpleNetwork.h>

/** A network device that consumes the EFI Simple Network Protocol */
struct snp_device {
/** Underlying simple network protocol instance */
EFI_SIMPLE_NETWORK_PROTOCOL *snp;

/** Generic device */
struct device dev;

/** Network device */
struct net_device *netdev;

/** State to put the snp in when removing the device */
uint32 removal_state;
};

#endif /* _SNP_H */

0 comments on commit 62149de

Please sign in to comment.