Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for/ flesh out a lot of other x86 vendors (Centaur/Cyrix/Rise/Zhaoxin) #258

Open
timw4mail opened this issue Jul 22, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@timw4mail
Copy link
Contributor

I'm not going to make this a PR directly, as there are a large number of changes, and PRs are denied by default.

I have a fork here: master...timw4mail:cpufetch:retrox86
(I merged in the @danielinux Transmeta changes before I rebased on the most recent changes, I'm not trying to taking credit for those).

I'm willing to split into multiple PRs of more limited scope to make things easier. I have verified CPUs that I've added with real hardware, other than the IDT Winchips (as I haven't been able to get a linux distro to boot on that architecture).

@Dr-Noob
Copy link
Owner

Dr-Noob commented Jul 25, 2024

Thank you for your interest in the project, this seems like an interesting addition to the project!

I had a look at your branch and it seems like we could split it into the following contributions:

  • Support for Centaur
  • Support for Cyrix
  • Support for Rise
  • Support for Zhaoxin
  • Easter egg detection in AMD

Please let me know if I missed something. I think the best would be to open separate PR for each of those like you suggested. I would create and merge one by one, if you are okay with that (I don't mind the order). Regarding the support for old x86 vendors, I need two additional things (open for discussion):

  • Add proper documentation here. It's very important to keep documented how detection works for each vendor. For the time being I think you could create a new file, DOCUMENTATION_X86_retro.md and add a section for every vendor. I don't need super specific details about everything, but more a general overview and, specially, the online source you used to find all the necessary information. This can actually be used as your description for the PR, i.e., I'll have a look at the documentation to understand how your PR is implemented.
  • Move the implementation of these new vendors into a new file, something like cpuid_extra.c. Same for uarch, move it to uarch_extra.c. I prefer to have cpuid.c/uarch.c for mainstream vendors (Intel/AMD) and the rest (which will rarely be updated) into a separate file to keep things cleaner.

@Dr-Noob Dr-Noob added the enhancement New feature or request label Jul 25, 2024
@timw4mail
Copy link
Contributor Author

timw4mail commented Jul 25, 2024

Yeah, that seems pretty reasonable.

I think more likely I'd split the changes more along these lines:

As for documentation, the vast majority has come from our favorite cpuid reference (sandpile.org), but I'll try to track down anything else that is relevant.

@Dr-Noob
Copy link
Owner

Dr-Noob commented Jul 28, 2024

Sounds good to me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants