Created attachment 190344 [details] Get the timebase from the proper OF field. After revision rS328534('PPC64: use hwref instead of cpuid'), FreeBSD on powerpc64 virtual machine panics since it is unable to read the timebase, showing the following error: gcc version 4.2.1 20070831 patched [FreeBSD] WARNING: WITNESS option enabled, expect reduced performance. WARNING: Running on a broken hypervisor that does not support mandatory H_CLEAR_MOD and H_CLEAR_REF hypercalls. Performance will be suboptimal. VT: init without driver. get-property for timebase-frequency on zero phandle panic: Unable to determine timebase frequency! cpuid = 0 time = 1 KDB: stack backtrace: 0xc000000000008510: at .kdb_backtrace+0x5c 0xc000000000008640: at .vpanic+0x1a4 0xc000000000008700: at .panic+0x38 0xc000000000008790: at .chrp_timebase_freq+0x44 0xc000000000008820: at .platform_timebase_freq+0x78 0xc0000000000088b0: at .decr_init+0x54 0xc000000000008980: at .cpu_startup+0x20 0xc000000000008a10: at .mi_startup+0x11c 0xc000000000008aa0: at btext+0xb4 KDB: enter: panic With the change above, cpuref->cr_hwref does not contain the phandle anymore, thus, it never reads the proper CPU entry in OF.
Please find the patch that fix this issue attached.
I also created a diff at phabricator. Since this is my first time using this system, it might not be in the appropriate format: https://reviews.freebsd.org/D14204
The fix seems present in all supported branches.
Fixed long ago, a00ce4e85.