{"push_id":720630595,"size":1,"distinct_size":1,"ref":"refs/heads/svn_head","head":"655eddcc8fa54df56c0a9442af11e93d6cb5e1b1","before":"9bf647417b012be13d8f3f1a9279ed1210d266ab","commits":[{"sha":"655eddcc8fa54df56c0a9442af11e93d6cb5e1b1","author":{"email":"8d3093630820d106f09020ea478d17f40b22b135@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f","name":"zbb"},"message":"Rework CPU identification on ARM64\n\nThis commit reworks the code responsible for identification of\nthe CPUs during runtime.\nIt is necessary to provide a way for workarounds and erratums\nto be applied only for certain HW versions.\n\nThe copy of MIDR is now stored in pcpu to provide a fast and\nconvenient way for assambly code to read it (pcpu is used quite often\nso there is a chance it's inside the cache).\nThe MIDR is also better way of identification than using user-friendly\ncpu_desc structure, because it can be compiled into comparision of\nsingle u32 with only one access to the memory - this is crucial\nfor some erratums which are called from performance-critical\nplaces.\n\nChanges in cpu_identify makes this function safe to be called\non non-boot CPUs.\n\nNew function CPU_MATCH was implemented which returns boolean\nvalue based on mathing masked MIDR with chip identification.\nExample of usage:\n\nprintf(\"is thunder: %d\\n\", CPU_MATCH(CPU_IMPL_MASK | CPU_PART_MASK,\n        CPU_IMPL_CAVIUM, CPU_PART_THUNDER, 0, 0));\nprintf(\"is generic: %d\\n\", CPU_MATCH(CPU_IMPL_MASK | CPU_PART_MASK,\n        CPU_IMPL_ARM, CPU_PART_FOUNDATION, 0, 0));\n\nReviewed by:   andrew\nObtained from: Semihalf\nSponsored by:  The FreeBSD Foundation\nDifferential Revision: https://reviews.freebsd.org/D3030\n\n\ngit-svn-id: svn+ssh://svn.freebsd.org/base/head@285311 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f","distinct":true,"url":"https://api.github.com/repos/freebsd/freebsd/commits/655eddcc8fa54df56c0a9442af11e93d6cb5e1b1"}]}