inteltool: add NetBSD compatibility
Tested on NetBSD-7.0/i386 Change-Id: I6a693633d3a80ea07ade233b1b4fd1c5a1412032 Signed-off-by: Andrey Korolyov <andrey@xdel.ru> Reviewed-on: https://review.coreboot.org/12835 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
committed by
Patrick Georgi
parent
0ff8f9048b
commit
046d217420
@@ -34,6 +34,10 @@ CFLAGS += -I/usr/local/include
|
|||||||
LDFLAGS += -L/usr/local/lib
|
LDFLAGS += -L/usr/local/lib
|
||||||
LIBS = -lz
|
LIBS = -lz
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(OS_ARCH), NetBSD)
|
||||||
|
CFLAGS += -I/usr/pkg/include
|
||||||
|
LDFLAGS += -L/usr/pkg/lib -Wl,-rpath-link,/usr/pkg/lib -lz -lpciutils -lpci -l$(shell uname -p)
|
||||||
|
endif
|
||||||
|
|
||||||
all: pciutils dep $(PROGRAM)
|
all: pciutils dep $(PROGRAM)
|
||||||
|
|
||||||
@@ -52,7 +56,11 @@ dep:
|
|||||||
define LIBPCI_TEST
|
define LIBPCI_TEST
|
||||||
/* Avoid a failing test due to libpci header symbol shadowing breakage */
|
/* Avoid a failing test due to libpci header symbol shadowing breakage */
|
||||||
#define index shadow_workaround_index
|
#define index shadow_workaround_index
|
||||||
|
#ifdef __NetBSD__
|
||||||
|
#include <pciutils/pci.h>
|
||||||
|
#else
|
||||||
#include <pci/pci.h>
|
#include <pci/pci.h>
|
||||||
|
#endif
|
||||||
struct pci_access *pacc;
|
struct pci_access *pacc;
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
@@ -24,6 +24,10 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include "inteltool.h"
|
#include "inteltool.h"
|
||||||
|
|
||||||
|
#ifdef __NetBSD__
|
||||||
|
#include <machine/sysarch.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* http://pci-ids.ucw.cz/read/PC/8086
|
* http://pci-ids.ucw.cz/read/PC/8086
|
||||||
* http://en.wikipedia.org/wiki/Intel_Tick-Tock
|
* http://en.wikipedia.org/wiki/Intel_Tick-Tock
|
||||||
@@ -344,6 +348,14 @@ int main(int argc, char *argv[])
|
|||||||
#if defined(__FreeBSD__)
|
#if defined(__FreeBSD__)
|
||||||
if (open("/dev/io", O_RDWR) < 0) {
|
if (open("/dev/io", O_RDWR) < 0) {
|
||||||
perror("/dev/io");
|
perror("/dev/io");
|
||||||
|
#elif defined(__NetBSD__)
|
||||||
|
# ifdef __i386__
|
||||||
|
if (i386_iopl(3)) {
|
||||||
|
perror("iopl");
|
||||||
|
# else
|
||||||
|
if (x86_64_iopl(3)) {
|
||||||
|
perror("iopl");
|
||||||
|
# endif
|
||||||
#else
|
#else
|
||||||
if (iopl(3)) {
|
if (iopl(3)) {
|
||||||
perror("iopl");
|
perror("iopl");
|
||||||
|
@@ -24,13 +24,38 @@
|
|||||||
#define __DARWIN__
|
#define __DARWIN__
|
||||||
#include <DirectHW/DirectHW.h>
|
#include <DirectHW/DirectHW.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef __NetBSD__
|
||||||
|
#include <pciutils/pci.h>
|
||||||
|
#else
|
||||||
#include <pci/pci.h>
|
#include <pci/pci.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/* This #include is needed for freebsd_{rd,wr}msr. */
|
/* This #include is needed for freebsd_{rd,wr}msr. */
|
||||||
#if defined(__FreeBSD__)
|
#if defined(__FreeBSD__)
|
||||||
#include <machine/cpufunc.h>
|
#include <machine/cpufunc.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __NetBSD__
|
||||||
|
static inline uint8_t inb(unsigned port)
|
||||||
|
{
|
||||||
|
uint8_t data;
|
||||||
|
__asm volatile("inb %w1,%0" : "=a" (data) : "d" (port));
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
static inline uint16_t inw(unsigned port)
|
||||||
|
{
|
||||||
|
uint16_t data;
|
||||||
|
__asm volatile("inw %w1,%0": "=a" (data) : "d" (port));
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
static inline uint32_t inl(unsigned port)
|
||||||
|
{
|
||||||
|
uint32_t data;
|
||||||
|
__asm volatile("inl %w1,%0": "=a" (data) : "d" (port));
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#define INTELTOOL_VERSION "1.0"
|
#define INTELTOOL_VERSION "1.0"
|
||||||
|
|
||||||
/* Tested chipsets: */
|
/* Tested chipsets: */
|
||||||
|
Reference in New Issue
Block a user