freebsd-skq/stand/i386/libi386
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
..
amd64_tramp.S
bio.c Add Copyright. 2018-12-30 15:34:12 +00:00
biosacpi.c Prefer uintXX_t to u_intXX_t 2018-03-13 16:33:00 +00:00
biosdisk.c loader: bioscd probe can get sector size 0 2020-01-09 21:21:08 +00:00
biosmem.c Add Dell Chromebook to the list of devices with E820 extmem quirk enabled 2019-01-14 01:30:48 +00:00
biospci.c Regularize the Netflix copyright 2019-02-04 21:28:25 +00:00
biospnp.c Prefer uintXX_t to u_intXX_t 2018-03-13 16:33:00 +00:00
biossmap.c
bootinfo32.c loader: create separate lists for fd, cd and hd, merge bioscd with biosdisk 2018-11-30 08:01:11 +00:00
bootinfo64.c Add support for Hygon Dhyana Family 18h processor. 2020-01-21 13:22:35 +00:00
bootinfo.c Transition to boot_env_to_howto and boot_howto_to_env in the boot 2018-07-13 16:43:29 +00:00
comconsole.c loader: libi386/comconsole.c cstyle cleanup 2019-11-02 10:53:23 +00:00
devicename.c i386_parsedev() needs to support fd devices 2019-01-02 20:31:15 +00:00
elf32_freebsd.c
elf64_freebsd.c Prefer uintXX_t to u_intXX_t 2018-03-13 16:33:00 +00:00
i386_copy.c cstyle cleanup for i386_copy.c 2019-11-08 12:19:03 +00:00
i386_module.c
libi386.h loader: create bio_alloc and bio_free for bios bounce buffer 2018-12-30 09:35:47 +00:00
Makefile loader: use teken teminal emulator for x86 and uefi 2019-09-05 22:15:50 +00:00
Makefile.depend
multiboot_tramp.S
multiboot.c Prefer uintXX_t to u_intXX_t 2018-03-13 16:33:00 +00:00
multiboot.h
nullconsole.c
pread.c
pxe.c Backout 356693. The libsa malloc does provide necessary alignment and 2020-01-13 20:02:27 +00:00
pxe.h Drop "All rights reserved" from my copyright statements. 2019-03-06 22:11:45 +00:00
pxetramp.S stand/i386/libi386: rename .s file to .S to use Clang IAS 2018-11-26 19:29:18 +00:00
relocater_tramp.S
smbios.c
smbios.h
spinconsole.c
time.c
vidconsole.c loader: fix indentation in efi_console and vidconsole 2019-09-25 07:36:35 +00:00