[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 03/20] eepro100: Fix PXE boot
From: |
Stefan Weil |
Subject: |
[Qemu-devel] [PATCH 03/20] eepro100: Fix PXE boot |
Date: |
Sun, 14 Feb 2010 17:16:12 +0100 |
The phy handling was wrong for PXE, GPXE boot:
GPXE's eepro100 driver did not detect a valid link.
This is fixed here.
Signed-off-by: Stefan Weil <address@hidden>
---
hw/eepro100.c | 20 ++++++++++++++------
1 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/hw/eepro100.c b/hw/eepro100.c
index 124bc49..994722d 100644
--- a/hw/eepro100.c
+++ b/hw/eepro100.c
@@ -20,7 +20,7 @@
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*
* Tested features (i82559):
- * PXE boot (i386) no valid link
+ * PXE boot (i386) ok
* Linux networking (i386) ok
*
* Untested:
@@ -33,10 +33,6 @@
* Open Source Software Developer Manual
*/
-#if defined(TARGET_I386)
-# warning "PXE boot still not working!"
-#endif
-
#include <stddef.h> /* offsetof */
#include <stdbool.h>
#include "hw.h"
@@ -243,6 +239,17 @@ typedef struct {
bool has_extended_tcb_support;
} EEPRO100State;
+/* Word indices in EEPROM. */
+typedef enum {
+ eeprom_cnfg_mdix = 0x03,
+ eeprom_id = 0x05,
+ eeprom_phy_id = 0x06,
+ eeprom_vendor_id = 0x0c,
+ eeprom_config_asf = 0x0d,
+ eeprom_device_id = 0x23,
+ eeprom_smbus_addr = 0x90,
+} EEPROMOffset;
+
/* Default values for MDI (PHY) registers */
static const uint16_t eepro100_mdi_default[] = {
/* MDI Registers 0 - 6, 7 */
@@ -632,9 +639,10 @@ static void nic_selective_reset(EEPRO100State * s)
uint16_t *eeprom_contents = eeprom93xx_data(s->eeprom);
//~ eeprom93xx_reset(s->eeprom);
memcpy(eeprom_contents, s->conf.macaddr.a, 6);
- eeprom_contents[0xa] = 0x4000;
+ eeprom_contents[eeprom_id] = 0x4000;
if (s->device == i82557B || s->device == i82557C)
eeprom_contents[5] = 0x0100;
+ eeprom_contents[eeprom_phy_id] = 1;
uint16_t sum = 0;
for (i = 0; i < EEPROM_SIZE - 1; i++) {
sum += eeprom_contents[i];
--
1.6.6.1
- [Qemu-devel] eepro100: New patch series adds full GPXE support, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 01/20] eepro100: Fix compiler errors from debug messages, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 02/20] eepro100: Add missing SCB register names, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 03/20] eepro100: Fix PXE boot,
Stefan Weil <=
- [Qemu-devel] [PATCH 04/20] eepro100: Support gpxe boot for all eepro100 devices, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 05/20] eepro100: Add all supported devices to pci.c, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 06/20] eepro100: Add TODO list, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 07/20] eepro100: Update copyright notice, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 08/20] eepro100: Add device descriptions, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 09/20] eepro100: Use symbolic names and BIT macros in binary operations, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 10/20] eepro100: Remove old unused code, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 11/20] eepro100: Use symbolic names for bits in EEPROM id, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 12/20] eepro100: Replace variable name to fix a compiler warning, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 13/20] eepro100: Support RNR interrupt, Stefan Weil, 2010/02/14