Summary: | ppc64: Unable to read timebase | ||||||
---|---|---|---|---|---|---|---|
Product: | Base System | Reporter: | Breno Leitao <breno.leitao> | ||||
Component: | kern | Assignee: | freebsd-ppc (Nobody) <ppc> | ||||
Status: | Closed FIXED | ||||||
Severity: | Affects Only Me | CC: | jhibbits, pstef | ||||
Priority: | --- | ||||||
Version: | CURRENT | ||||||
Hardware: | Any | ||||||
OS: | Any | ||||||
Attachments: |
|
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. |
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.