[ipxe-devel] 486 with a Realtek 8139
Michael Brown
mcb30 at ipxe.org
Wed May 12 10:12:36 UTC 2021
On 05/05/2021 20:13, Michael Brown wrote:
> 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.
All three of the above are now implemented:
https://github.com/ipxe/ipxe/commit/13c1abe10
https://github.com/ipxe/ipxe/commit/05fcf1a2f
https://github.com/ipxe/ipxe/commit/a6a8bb1a9
With the current master branch, I am able to boot successfully using
iPXE on a (bochs-emulated) 486.
Michael
More information about the ipxe-devel
mailing list