aboutsummaryrefslogtreecommitdiffstats
path: root/gpxe/src/drivers/net
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2008-09-25 13:46:43 -0700
committerH. Peter Anvin <hpa@zytor.com>2008-09-25 13:46:43 -0700
commit400e2b589e6d0bdd9efee9369feb7d5f5e0958d6 (patch)
tree5563ff419701da0868ff0da295fb1a6eb44e79ef /gpxe/src/drivers/net
parent41e4481d7bb14abf1e53a9b63abce9533c4e66ad (diff)
downloadsyslinux.git-400e2b589e6d0bdd9efee9369feb7d5f5e0958d6.tar.gz
syslinux.git-400e2b589e6d0bdd9efee9369feb7d5f5e0958d6.tar.xz
syslinux.git-400e2b589e6d0bdd9efee9369feb7d5f5e0958d6.zip
Update gPXE to: gpxe-for-syslinux 0a1f463e8b3218803b42cd3940e90a7678de0b3e gpxe upstream 3392cfa7df58a5662417f25226cf75dedabeb750 Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'gpxe/src/drivers/net')
-rw-r--r--gpxe/src/drivers/net/phantom/phantom.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/gpxe/src/drivers/net/phantom/phantom.c b/gpxe/src/drivers/net/phantom/phantom.c
index 5644c96d..6c7d1fc9 100644
--- a/gpxe/src/drivers/net/phantom/phantom.c
+++ b/gpxe/src/drivers/net/phantom/phantom.c
@@ -1673,6 +1673,17 @@ static int phantom_init_cmdpeg ( struct phantom_nic *phantom ) {
uint32_t cmdpeg_state;
uint32_t last_cmdpeg_state = 0;
+ /* Check for a previous initialisation. This could have
+ * happened if, for example, the BIOS used the UNDI API to
+ * drive the NIC prior to a full PXE boot.
+ */
+ cmdpeg_state = phantom_readl ( phantom, UNM_NIC_REG_CMDPEG_STATE );
+ if ( cmdpeg_state == UNM_NIC_REG_CMDPEG_STATE_INITIALIZE_ACK ) {
+ DBGC ( phantom, "Phantom %p command PEG already initialized\n",
+ phantom );
+ return 0;
+ }
+
/* If this was a cold boot, check that the hardware came up ok */
cold_boot = phantom_readl ( phantom, UNM_CAM_RAM_COLD_BOOT );
if ( cold_boot == UNM_CAM_RAM_COLD_BOOT_MAGIC ) {
@@ -1692,8 +1703,6 @@ static int phantom_init_cmdpeg ( struct phantom_nic *phantom ) {
phantom_writel ( phantom, 0, UNM_CAM_RAM_COLD_BOOT );
/* Set port modes */
- phantom_writel ( phantom, UNM_CAM_RAM_PORT_MODE_AUTO_NEG,
- UNM_CAM_RAM_PORT_MODE );
phantom_writel ( phantom, UNM_CAM_RAM_PORT_MODE_AUTO_NEG_1G,
UNM_CAM_RAM_WOL_PORT_MODE );