[ipxe-devel] 486 with a Realtek 8139

Martin Habets habetsm.xilinx at gmail.com
Thu May 6 07:00:32 UTC 2021

The CPUID opcode also does not exist on i486.
See arch/x86/include/ipxe/cpuid.h
I think iPXE will cope with this if it calls cpuid_supported()
in the right places.

New i586 opcodes are at:


On Wed, May 05, 2021 at 08:13:39PM +0100, Michael Brown wrote:
> On 05/05/2021 19:53, Nikolai Zhubr wrote:
> > Thanks for mentioning Bochs, I've copied your 486 config commandline and
> > was able to build and start testing. Its way more handy than with real
> > iron. It is even possible to disable e820 function by hand.
> > 
> > Now as long as 586+ requirement is not really critical for operation,
> > maybe put such fragments into conditional ifdefs and introduce some
> > config option (say LEGACY486) to allow 486-compatible builds?
> I've gone to a *lot* of effort over the past 15 years to eliminate that kind
> of conditional ifdef from the codebase (see the various "#ifdef considered
> harmful" articles around the web).
> For unlzma.S, just changing to ".arch i486" is fine, since there are no
> 586-class instructions in that file.
> For undinet.c, the "rdtsc" instructions are used only for profiling. It's
> probably not worth the marginally increased accuracy from having the rdtsc
> within the real-mode code: those TSC reads could be moved outside the
> REAL_CODE() block and implemented using the standard profile_xxx() functions
> instead of hardcoded "rdtsc" instructions.  (An alternative approach would
> be to conditionalise the presence of the "rdtsc" instructions, but it would
> need to be an exceptionally neat solution to justify such a special case.)
> For rtc_entropy.c, the use of the TSC is intrinsic to the way that the code
> operates.  There is already an entropy_enable() call that is allowed to
> return an error to indicate that the entropy source is unusable: this could
> be extended to include a low-overhead check for the existence of the TSC.
> With those changes, there would be no need for any compile-time option or
> accompanying documentation: the code would Just Work on a 486.
> Michael
> _______________________________________________
> ipxe-devel mailing list
> ipxe-devel at lists.ipxe.org
> https://lists.ipxe.org/mailman/listinfo/ipxe-devel

More information about the ipxe-devel mailing list