4 ms·
The kernel does support the 486[0], it is just looks like some "486"s were really 386s. 486SX (which is supported) has its FPU disabled so it most likely uses t
by badsectoracula 5y ago
The kernel does support the 486[0], it is just looks like some "486"s were really 386s. 486SX (which is supported) has its FPU disabled so it most likely uses the x87 emulation.
[0] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/Kconfig.cpu https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...
- leeter 5y agoI can't find support for those flags outside of two files, I'm 90% sure the kernel requires CMPXCHG8B which isn't supported on 486 iirc
- cesarb 5y ago> I can't find support for those flags outside of two files Most of or all of the uses of those M486/M486SX/etc flags are on that file itself. For instance, it sets CONFIG_X86_INVD_BUG whenever either CONFIG_M486SX or CONFIG_M486 is set. It's those other flags that are used elsewhere; as you can see, there are many of them. > I'm 90% sure the kernel requires CMPXCHG8B which isn't supported on 486 iirc I believe CMPXCHG8B is CONFIG_X86_CMPXCHG64, which as you can see on that file, is not set for M486/M486SX. As you can see searching for that, there is support for CMPXCHG8B emulation (see for instance https://lxr.missinglinkelectronics.com/linux+v5.16/arch/x86/include/asm/cmpxchg_32.h https://lxr.missinglinkelectronics.com/linux+v5.16/arch/x86/...) on CPUs which do not have that instruction (complete with an use of the "alternatives" mechanism to automatically replaces the emulation calls with the real CMPXCHG8B instruction when it's available on the current CPU).
- danbee 5y agoIf I remember rightly, the 487SX was actually a full 486DX processor that, when installed, disabled the existing 486SX CPU.
- ForOldHack 5y agoConfirmed. The 487SX was a full 486DX with FPU and caches. https://news.ycombinator.com/item?id=5471932 https://news.ycombinator.com/item?id=5471932 Nice to hear confirmation of something I saw with my own eyes.