Add support for Transmeta(TM) Crusoe(TM) CPU
I am aware of contributing guidelines 1, but I thought this might be helpful if you don't have a Crusoe at hand.
Initial support for Transmeta Crusoe CPU. Tested on TM5800 @ 1GHz. Still trying to figure out how to read cache topology/set peak performance, but at least now my CPU is detected.
Upstream:
With this PR:
neofetch, for reference:
cpufetch does not accept pull requests, see the contributing guidelines for details
I don't see why you get 0 MFLOP/s in peak performance. You will have to go to get_peak_performance in src/x86/cpuid.c and debug what is going on. I would suggest printing the variable flops just after doing:
int64_t flops = topo->physical_cores * topo->sockets * (freq*1000000) * vpus;
I suspect some of those values might be zero.
Hey @Dr-Noob thanks a lot for the detailed review. Glad to see this is being considered. I'll be addressing your comments ASAP.
@Dr-Noob I've fixed the style/dead code comments. About retreiving topology and cache information, I'm not sure if you want to provide some guidance for me to move ahead. I might be able to provide you temporary access to the machine if you think this might be quicker. :)
also, let me know if you want me to rebase this on top of latest master
@Dr-Noob I've fixed the style/dead code comments. About retreiving topology and cache information, I'm not sure if you want to provide some guidance for me to move ahead. I might be able to provide you temporary access to the machine if you think this might be quicker. :)
Thank you for the feedback and the offer, but for now I think we should be good if you just do it in your machine :+1:
My general guidance is to use cpuid whenever possible. This pdf should be used as a reference. You can also look at the cpufetch documentation (and more specifically, x86 docs) which explains how cpuid is used for various detections in both Intel and AMD. You can have this as an example and to understand how it is done in general and then have a look at the transmeta pdf to see the particular details of this vendor.
also, let me know if you want me to rebase this on top of latest master
I might commit some additional stuff in the upcoming days, so you could rebase just after this PR is ready to be merged.
thanks for your patience. I've been a few days AFK, I'll resume on this during the weekend.