On Thu, Jun 3, 2010 at 4:06 AM, Wu Fengguang <[email protected]> wrote:
> --- gpxe.orig/src/arch/i386/prefix/libprefix.S 2010-06-03 10:38:34.000000000
> +0800
> +++ gpxe/src/arch/i386/prefix/libprefix.S 2010-06-03 10:40:58.000000000
> +0800
> @@ -704,6 +704,11 @@ install_prealloc:
> /* Set up %ds for access to .data16 */
> movw %bx, %ds
>
> + movl %es:ramdisk_image, %ecx
> + movl %ecx, lkrn_ramdisk
> + movl %es:ramdisk_size, %ecx
> + movl %ecx, lkrn_ramdisk_size
> +
> #ifdef KEEP_IT_REAL
> /* Initialise libkir */
> movw %ax, (init_libkir_vector+2)
>
I would put this in lkrnprefix.S instead. If you look at pxeprefix.S
there is code to copy an undi device structure for .prefix.data to the
.data16 section:
/* Copy our undi_device structure to the preloaded_undi variable */
movw %bx, %es
movw $preloaded_undi, %di
movw $undi_device, %si
movw $undi_device_size, %cx
rep movsb
This is done after install has returned to pxeprefix.S.
Stefan
_______________________________________________
gPXE-devel mailing list
[email protected]
http://etherboot.org/mailman/listinfo/gpxe-devel