[ipxe-devel] Problem chainloading iPXE from some legacy Intel PXE

Michael Brown mbrown at fensystems.co.uk
Fri May 20 00:37:12 UTC 2011


On Thursday 19 May 2011 22:07:35 Jedrzej Kalinowski wrote:
>  Maybe just some hint on how to debug it further or how can I find some
>  workaround?

The bisection result doesn't make much sense to me.

If I had your system in front of me, I would probably approach this by dumping 
out memory contents, register values, etc, to find out how a straightforward 
memcpy()-equivalent in pxeprefix.S is somehow copying zeroes.

Before the jump to .text16 in pxeprefix.S (i.e. before the comment "/* Jump to 
.text16 segment... */"), you can call the debugging routines in libprefix.S to 
dump out values.  For example, to print out the address and contents of 
preloaded_undi immediately after the copy:

  pushl %eax
  xorw %di, %di
  movw %es, %ax       /* Print segment:offset address for preloaded_undi */
  call print_hex_word
  movw $preloaded_undi, %ax
  call print_hex_word
  movl (preloaded_undi+0), %eax  /* Print contents of preloaded_undi */
  call print_hex_dword
  movl (preloaded_undi+4), %eax
  call print_hex_dword
  movl (preloaded_undi+8), %eax
  call print_hex_dword
  ...
  popl %eax

Michael



More information about the ipxe-devel mailing list