mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 07:02:34 +02:00
Add OpenBSD support
Add a requirements section to the man page which lists the needed access permissions for each programmer. This feature needs my pciutils/libpci 8/16-bit write emulation patch at http://marc.info/?l=openbsd-ports&m=127780030728045 titled [PATCH] Fix pciutils non-32bit PCI write on OpenBSD Corresponding to flashrom svn r1067. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Stuart Henderson <sthen@openbsd.org>
This commit is contained in:
parent
f93b36a6bc
commit
b63b067ae2
8
Makefile
8
Makefile
@ -48,6 +48,10 @@ ifeq ($(OS_ARCH), FreeBSD)
|
||||
CPPFLAGS += -I/usr/local/include
|
||||
LDFLAGS += -L/usr/local/lib
|
||||
endif
|
||||
ifeq ($(OS_ARCH), OpenBSD)
|
||||
CPPFLAGS += -I/usr/local/include
|
||||
LDFLAGS += -L/usr/local/lib
|
||||
endif
|
||||
ifeq ($(OS_ARCH), DOS)
|
||||
EXEC_SUFFIX := .exe
|
||||
CPPFLAGS += -I../libgetopt -I../libpci/include
|
||||
@ -259,6 +263,10 @@ ifeq ($(OS_ARCH), DOS)
|
||||
LIBS += ../libpci/lib/libpci.a
|
||||
else
|
||||
LIBS += -lpci
|
||||
ifeq ($(OS_ARCH), OpenBSD)
|
||||
# For (i386|amd64)_iopl(2).
|
||||
LIBS += -l$(shell uname -m)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
9
README
9
README
@ -55,6 +55,11 @@ On FreeBSD, you need the following ports:
|
||||
* devel/gmake
|
||||
* devel/libpci
|
||||
|
||||
On OpenBSD, you need the following ports:
|
||||
|
||||
* devel/gmake
|
||||
* sysutils/pciutils
|
||||
|
||||
To compile on Linux, use:
|
||||
|
||||
make
|
||||
@ -76,6 +81,10 @@ To compile on NetBSD or DragonFly BSD, use:
|
||||
ln -s /usr/pkg/include/pciutils pci
|
||||
gmake CPPFLAGS=-I. LDFLAGS="-L/usr/pkg/lib -Wl,-rpath-link,/usr/pkg/lib"
|
||||
|
||||
To compile on OpenBSD, use:
|
||||
|
||||
gmake
|
||||
|
||||
To compile and run on Darwin/Mac OS X:
|
||||
|
||||
Install DirectIO from coresystems GmbH.
|
||||
|
47
flashrom.8
47
flashrom.8
@ -306,7 +306,7 @@ can be any comma-separated combination of
|
||||
Example:
|
||||
.B "flashrom \-p dummy:lpc,fwh"
|
||||
.TP
|
||||
.BR "nic3com" , " nicrealtek" , " nicsmc1211" , " gfxnvidia" , " satasii\
|
||||
.BR "nic3com" , " nicrealtek" , " nicsmc1211" , " gfxnvidia" , " satasii \
|
||||
" and " atahpt " programmers
|
||||
These programmers have an option to specify the PCI address of the card
|
||||
your want to use, which must be specified if more than one card supported
|
||||
@ -391,6 +391,51 @@ can be any of
|
||||
.SH EXIT STATUS
|
||||
flashrom exits with 0 on success, 1 on most failures but with 2 if /dev/mem
|
||||
(/dev/xsvc on Solaris) can not be opened and with 3 if a call to mmap() fails.
|
||||
.SH REQUIREMENTS
|
||||
flashrom needs different access permissions for different programmers.
|
||||
.sp
|
||||
.B internal
|
||||
needs raw memory access, PCI configuration space access, raw I/O port
|
||||
access (x86) and MSR access (x86).
|
||||
.sp
|
||||
.B it87spi
|
||||
needs raw I/O port access (x86).
|
||||
.sp
|
||||
.BR nic3com ", " nicrealtek ", " nicsmc1211 " and " nicnatsemi "
|
||||
need PCI configuration space read access and raw I/O port access.
|
||||
.sp
|
||||
.B atahpt
|
||||
needs PCI configuration space access and raw I/O port access.
|
||||
.sp
|
||||
.BR gfxnvidia " and " drkaiser
|
||||
need PCI configuration space access and raw memory access.
|
||||
.sp
|
||||
.B satasii
|
||||
needs PCI configuration space read access and raw memory access.
|
||||
.sp
|
||||
.B serprog
|
||||
needs TCP access to the network or userspace access to a serial port.
|
||||
.sp
|
||||
.B buspirate_spi
|
||||
needs userspace access to a serial port.
|
||||
.sp
|
||||
.BR dediprog " and " ft2232_spi
|
||||
need access to the USB device via libusb.
|
||||
.sp
|
||||
.B dummy
|
||||
needs no access permissions at all.
|
||||
.sp
|
||||
.BR internal ", " it87spi ", " nic3com ", " nicrealtek ", " nicsmc1211 ", "
|
||||
.BR nicnatsemi ", " "gfxnvidia" ", " drkaiser ", " satasii " and " atahpt
|
||||
have to be run as superuser/root, and need additional raw access permission.
|
||||
.sp
|
||||
.BR serprog ", " buspirate_spi ", " dediprog " and " ft2232_spi
|
||||
can be run as normal user on most operating systems if appropriate device
|
||||
permissions are set.
|
||||
.sp
|
||||
On OpenBSD, you can obtain raw access permission by setting
|
||||
securelevel=-1 in /etc/rc.securelevel and rebooting, or rebooting into single
|
||||
user mode.
|
||||
.SH BUGS
|
||||
Please report any bugs at
|
||||
.sp
|
||||
|
@ -57,6 +57,11 @@ void get_io_perms(void)
|
||||
#endif
|
||||
msg_perr("ERROR: Could not get I/O privileges (%s).\n"
|
||||
"You need to be root.\n", strerror(errno));
|
||||
#if defined (__OpenBSD__)
|
||||
msg_perr("Please set securelevel=-1 in /etc/rc.securelevel "
|
||||
"and reboot, or reboot into \n");
|
||||
msg_perr("single user mode.\n");
|
||||
#endif
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
10
hwaccess.h
10
hwaccess.h
@ -228,17 +228,25 @@ cpu_to_be(64)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__NetBSD__)
|
||||
#if defined(__NetBSD__) || defined (__OpenBSD__)
|
||||
#define off64_t off_t
|
||||
#define lseek64 lseek
|
||||
#if defined(__i386__) || defined(__x86_64__)
|
||||
#include <sys/types.h>
|
||||
#include <machine/sysarch.h>
|
||||
#if defined(__NetBSD__)
|
||||
#if defined(__i386__)
|
||||
#define iopl i386_iopl
|
||||
#elif defined(__x86_64__)
|
||||
#define iopl x86_64_iopl
|
||||
#endif
|
||||
#elif defined (__OpenBSD__)
|
||||
#if defined(__i386__)
|
||||
#define iopl i386_iopl
|
||||
#elif defined(__amd64__)
|
||||
#define iopl amd64_iopl
|
||||
#endif
|
||||
#endif
|
||||
#include <stdint.h>
|
||||
|
||||
static inline void outb(uint8_t value, uint16_t port)
|
||||
|
@ -229,6 +229,10 @@ void *physmap_common(const char *descr, unsigned long phys_addr, size_t len, int
|
||||
msg_perr("You can override CONFIG_X86_PAT at boot with the nopat kernel parameter but\n");
|
||||
msg_perr("disabling the other option unfortunately requires a kernel recompile. Sorry!\n");
|
||||
}
|
||||
#elif defined (__OpenBSD__)
|
||||
msg_perr("Please set securelevel=-1 in /etc/rc.securelevel "
|
||||
"and reboot, or reboot into \n");
|
||||
msg_perr("single user mode.\n");
|
||||
#endif
|
||||
if (!mayfail)
|
||||
exit(3);
|
||||
|
Loading…
x
Reference in New Issue
Block a user