freebsd-skq/stand
Konstantin Belousov 2ee49fac82 Add support for Hygon Dhyana Family 18h processor.
As a new x86 CPU vendor, Chengdu Haiguang IC Design Co., Ltd (Hygon)
is a joint venture between AMD and Haiguang Information Technology Co.,
Ltd., aims at providing x86 processors for China server market.

The first generation Hygon processor(Dhyana) shares most architecture
with AMD's family 17h, but with different CPU vendor ID("HygonGenuine")
and PCI vendor ID(0x1d94) and family series number 18h(Hygon negotiated
with AMD to confirm that only Hygon use family 18h).

To enable Hygon Dhyana support in FreeBSD, add new definitions
HYGON_VENDOR_ID("HygonGenuine") and X86_VENDOR_HYGON(0x1d94) to identify
Hygon Dhyana CPU.

Initialize the CPU features(topology, local APIC ext, MSI, TSC, hwpstate,
MCA, DEBUG_CTL, etc) for amd64 and i386 mode by sharing the code path of
AMD family 17h.

The changes have been applied on FreeBSD 13.0-CURRENT and tested
successfully on Hygon Dhyana processor.

References:
[1] Linux kernel patches for Hygon Dhyana, merged in 4.20:

https://git.kernel.org/tip/c9661c1e80b609cd038db7c908e061f0535804ef

[2] MSR and CPUID definition:

https://www.amd.com/system/files/TechDocs/54945_PPR_Family_17h_Models_00h-0Fh.pdf

Submitted by:	Pu Wen <puwen@hygon.cn>
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D23163
2020-01-21 13:22:35 +00:00
..
arm Remove NAND and NANDFS support 2019-06-25 04:50:09 +00:00
arm64 No need to make objects here. 2018-04-27 22:15:18 +00:00
common loader: clean up devopen and devclose a bit 2019-12-13 08:41:37 +00:00
defaults Enable lualoader's kernel autodetection, disabled on install media 2018-10-11 17:17:54 +00:00
efi Backout 356693. The libsa malloc does provide necessary alignment and 2020-01-13 20:02:27 +00:00
fdt stand/fdt: Scale blob size better as overlays apply 2020-01-09 04:34:42 +00:00
ficl Add support for hypervisor check on x86 2019-10-24 20:02:48 +00:00
ficl32 Enable veriexec for loader 2019-02-26 06:22:10 +00:00
forth loader_4th: menu items need to reset color attribute, not switch to white 2019-09-22 16:10:25 +00:00
i386 Add support for Hygon Dhyana Family 18h processor. 2020-01-21 13:22:35 +00:00
kshim A more definitions to kernel emulation shim in order to build stand/usb. 2018-02-07 18:50:36 +00:00
liblua stand: liblua: drop default buffer size to 128 2019-12-12 01:35:56 +00:00
liblua32 Add Lua as a scripting langauge to /boot/loader 2018-02-12 15:31:53 +00:00
libofw Backout 356693. The libsa malloc does provide necessary alignment and 2020-01-13 20:02:27 +00:00
libsa loader: update zfsimpl.c from illumos review suggestions 2020-01-06 19:35:22 +00:00
libsa32 Enable veriexec for loader 2019-02-26 06:22:10 +00:00
lua lualoader: correct a typo from r354247 2019-12-03 18:44:19 +00:00
man Improve formatting. 2018-08-15 11:39:13 +00:00
mips mips: ubldr: use truncated load address for mips32 2019-09-18 01:33:17 +00:00
powerpc [PowerPC] Fix 32-bit ubldr calling convention 2020-01-19 04:13:19 +00:00
sparc64 Move stand/ofw/libofw to stand/libofw. 2020-01-02 04:34:22 +00:00
uboot Backout 356693. The libsa malloc does provide necessary alignment and 2020-01-13 20:02:27 +00:00
usb Distinguish between "no partition" and "choose best partition" with a constant. 2019-03-24 18:51:52 +00:00
userboot loader: userboot/test should accept more than one disk 2019-11-03 09:14:29 +00:00
defs.mk Move stand/ofw/libofw to stand/libofw. 2020-01-02 04:34:22 +00:00
fdt.mk
ficl.mk ficl pfopen: verify file 2019-05-24 19:43:38 +00:00
loader.mk Add flua to the base system, install to /usr/libexec 2019-11-18 23:21:13 +00:00
lua.mk Do not include float interfaces when using libsa. 2018-02-23 04:04:25 +00:00
Makefile Move stand/ofw/libofw to stand/libofw. 2020-01-02 04:34:22 +00:00
Makefile.amd64 Create LOADER_UBOOT, and LOADER_OFW. Move these options out of 2018-03-01 19:50:55 +00:00
Makefile.inc Minor flags cleanup 2017-12-02 00:06:58 +00:00
uboot.mk Unify metadata load files for arm, mips, powerpc, sparc64 2018-02-13 03:44:50 +00:00