On Wednesday 04 May 2011 06:58:02 Jedrzej Kalinowski wrote:
> > Hi,
> > I've applied the patch and basically I got zeros everywhere:
> > http://www.iem.pw.edu.pl/~kalinoj1/public/DEBUG-undionly.kkpxe.jpg
> > http://www.iem.pw.edu.pl/~kalinoj1/public/DEBUG-undionly.kpxe.jpg
> >
> >
> > BTW. I also tried removing the second NIC, and you were right - it
> > didn't change anything.
> 
>  Hi Michael,
> 
>  Any chance you could look into this issue. I can help debugging :)

Try the attached patch with DEBUG=undionly and undionly.kpxe.  (It will break 
undionly.kkpxe.)

Michael
diff --git a/src/arch/i386/drivers/net/undionly.c b/src/arch/i386/drivers/net/undionly.c
index c38b574..09bc9e3 100644
--- a/src/arch/i386/drivers/net/undionly.c
+++ b/src/arch/i386/drivers/net/undionly.c
@@ -43,6 +43,9 @@ FILE_LICENCE ( GPL2_OR_LATER );
  * addition to the UNDI driver, build e.g. "bin/undi.dsk".
  */
 
+extern char pxeprefix_dump[0];
+extern char pxeprefix_dump_len[0];
+
 /**
  * Probe UNDI root bus
  *
@@ -58,9 +61,26 @@ static int undibus_probe ( struct root_device *rootdev ) {
 	/* Check for a valie preloaded UNDI device */
 	if ( ! undi->entry.segment ) {
 		DBG ( "No preloaded UNDI device found!\n" );
+
+		DBG ( "preloaded_undi:\n" );
+		DBG_HDA ( 0, undi, sizeof ( *undi ) );
 		return -ENODEV;
 	}
 
+	{
+		struct segoff address = {
+			.segment = 0x7c0,
+			.offset = ( int ) pxeprefix_dump,
+		};
+		size_t len = ( size_t ) pxeprefix_dump_len;
+		userptr_t user = real_to_user ( address.segment,
+						address.offset );
+		void *ptr = user_to_virt ( user, 0 );
+
+		DBG ( "pxeprefix_dump:\n" );
+		DBG_HDA ( address, ptr, len );
+	}
+
 	/* Add to device hierarchy */
 	strncpy ( undi->dev.name, "UNDI",
 		  ( sizeof ( undi->dev.name ) - 1 ) );
diff --git a/src/arch/i386/prefix/pxeprefix.S b/src/arch/i386/prefix/pxeprefix.S
index b7468cd..e7a0a94 100644
--- a/src/arch/i386/prefix/pxeprefix.S
+++ b/src/arch/i386/prefix/pxeprefix.S
@@ -642,6 +642,11 @@ print_pxe_error:
  */
 	.section ".prefix.data"
 
+#ifndef PXELOADER_KEEP_PXE
+	.globl	pxeprefix_dump
+pxeprefix_dump:
+#endif
+
 pxe_esp:		.long 0
 pxe_ss:			.word 0
 
@@ -687,6 +692,11 @@ flags:
 
 	.equ undi_device_size, ( . - undi_device )
 
+#ifndef PXELOADER_KEEP_PXE
+	.globl	pxeprefix_dump_len
+	.equ	pxeprefix_dump_len, ( . - pxeprefix_dump )
+#endif
+	
 /*****************************************************************************
  * Run iPXE main code
  *****************************************************************************
_______________________________________________
ipxe-devel mailing list
[email protected]
https://lists.ipxe.org/mailman/listinfo/ipxe-devel

Reply via email to