You should be able to do it the same way as you enter unreal mode, ie:
 - in protected mode cpl0, crate a segment that has index 0xf000 (ie you 
   need a large GDT for this to work), and has the right attributes (ie 
   base 0xffff0000, 16-bit, etc).
   Make sure you reload the other segments with something sanish and be 
   16-bit clean.
 - clear the PE bit, but do _not_ do the long jump to reload the segment 
   that intel says you should do - just do a short jump to 0xfff0.
One problem is that the code segment you create this way will have the 
right base and size, but it will be non-writeable (no way to create a 
writable code segment in protected mode), so it will be different in other 
ways.
And because you'll have to do some of the the setup with that new and
inconvenient CS, you'll either have to make the limit be big (and wrap 
around EIP in order to first execute code that is in low memory), or 
you'll have to play even more tricks and clear both PE and PG at the same 
time and just "fall through" to the code at 0xfffffff0. 
Sounds like it might work, at least on a few CPU's. 
		Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/