diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2020-02-13 19:09:24 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2020-02-13 19:09:24 +0000 |
| commit | decf9c5ff61b4a53951fb065fb8139bc7859263d (patch) | |
| tree | 2528fa2d44bbcb7b708cf7155ece14d1e6c92a7b | |
| parent | 4afea6b4e087d9606a285bce06b20b847b7e9e50 (diff) | |
Notes
| -rw-r--r-- | sys/dev/amdsbwd/amd_chipset.h | 2 | ||||
| -rw-r--r-- | sys/dev/amdsbwd/amdsbwd.c | 10 | ||||
| -rw-r--r-- | sys/dev/intpm/intpm.c | 2 |
3 files changed, 12 insertions, 2 deletions
diff --git a/sys/dev/amdsbwd/amd_chipset.h b/sys/dev/amdsbwd/amd_chipset.h index 19fe49fad38b..9d5c9d9cc0cf 100644 --- a/sys/dev/amdsbwd/amd_chipset.h +++ b/sys/dev/amdsbwd/amd_chipset.h @@ -146,3 +146,5 @@ #define AMDCZ_SMBUS_DEVID 0x790b1022 #define AMDCZ49_SMBUS_REVID 0x49 +#define HYGONCZ_SMBUS_DEVID 0x790b1d94 + diff --git a/sys/dev/amdsbwd/amdsbwd.c b/sys/dev/amdsbwd/amdsbwd.c index 00acfac69a19..e0b21c05c3dd 100644 --- a/sys/dev/amdsbwd/amdsbwd.c +++ b/sys/dev/amdsbwd/amdsbwd.c @@ -60,6 +60,8 @@ __FBSDID("$FreeBSD$"); #include <sys/bus.h> #include <machine/bus.h> #include <sys/rman.h> +#include <machine/cputypes.h> +#include <machine/md_var.h> #include <machine/resource.h> #include <sys/watchdog.h> @@ -269,7 +271,8 @@ amdsbwd_identify(driver_t *driver, device_t parent) return; if (pci_get_devid(smb_dev) != AMDSB_SMBUS_DEVID && pci_get_devid(smb_dev) != AMDFCH_SMBUS_DEVID && - pci_get_devid(smb_dev) != AMDCZ_SMBUS_DEVID) + pci_get_devid(smb_dev) != AMDCZ_SMBUS_DEVID && + pci_get_devid(smb_dev) != HYGONCZ_SMBUS_DEVID) return; child = BUS_ADD_CHILD(parent, ISA_ORDER_SPECULATIVE, "amdsbwd", -1); @@ -378,6 +381,7 @@ static void amdsbwd_probe_fch41(device_t dev, struct resource *pmres, uint32_t *addr) { uint8_t val; + char buf[36]; val = pmio_read(pmres, AMDFCH41_PM_ISA_CTRL); if ((val & AMDFCH41_MMIO_EN) != 0) { @@ -416,7 +420,9 @@ amdsbwd_probe_fch41(device_t dev, struct resource *pmres, uint32_t *addr) amdsbwd_verbose_printf(dev, "AMDFCH41_PM_DECODE_EN3 value = %#04x\n", val); #endif - device_set_desc(dev, "AMD FCH Rev 41h+ Watchdog Timer"); + snprintf(buf, sizeof(buf), "%s FCH Rev 41h+ Watchdog Timer", + cpu_vendor_id == CPU_VENDOR_HYGON ? "Hygon" : "AMD"); + device_set_desc_copy(dev, buf); } static int diff --git a/sys/dev/intpm/intpm.c b/sys/dev/intpm/intpm.c index 5ab2249c6691..a394a8a0be73 100644 --- a/sys/dev/intpm/intpm.c +++ b/sys/dev/intpm/intpm.c @@ -102,6 +102,7 @@ const struct intsmb_device { { AMDSB_SMBUS_DEVID, "AMD SB600/7xx/8xx/9xx SMBus Controller" }, { AMDFCH_SMBUS_DEVID, "AMD FCH SMBus Controller" }, { AMDCZ_SMBUS_DEVID, "AMD FCH SMBus Controller" }, + { HYGONCZ_SMBUS_DEVID, "Hygon FCH SMBus Controller" }, }; static int @@ -243,6 +244,7 @@ intsmb_attach(device_t dev) break; case AMDFCH_SMBUS_DEVID: case AMDCZ_SMBUS_DEVID: + case HYGONCZ_SMBUS_DEVID: sc->sb8xx = 1; break; } |
