nvramtool: Add dummy cmos-hw-unix accessor implementation for non-x86

The default implementation uses inb/outb, that is not available on ARM
platforms and others. A dummy implementation allows building nvramtool
on these platforms.

Change-Id: I75e4a1a0cbd35ca40f7b108658686839ccf9784a
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-on: https://review.coreboot.org/22562
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Paul Kocialkowski 2017-11-22 14:22:59 +01:00 committed by Martin Roth
parent 87f67bc699
commit 826713ff61
1 changed files with 29 additions and 1 deletions

View File

@ -11,7 +11,7 @@
#define INW(x) __extension__ ({ u_int tmp = (x); inw(tmp); }) #define INW(x) __extension__ ({ u_int tmp = (x); inw(tmp); })
#define INL(x) __extension__ ({ u_int tmp = (x); inl(tmp); }) #define INL(x) __extension__ ({ u_int tmp = (x); inl(tmp); })
#else #else
#if defined(__GLIBC__) #if defined(__GLIBC__) && (defined(__i386__) || defined(__x86_64__))
#include <sys/io.h> #include <sys/io.h>
#endif #endif
#if (defined(__MACH__) && defined(__APPLE__)) #if (defined(__MACH__) && defined(__APPLE__))
@ -77,6 +77,8 @@ static unsigned char cmos_hal_read(unsigned addr);
static void cmos_hal_write(unsigned addr, unsigned char value); static void cmos_hal_write(unsigned addr, unsigned char value);
static void cmos_set_iopl(int level); static void cmos_set_iopl(int level);
#if defined(__i386__) || defined(__x86_64__)
/* no need to initialize anything */ /* no need to initialize anything */
static void cmos_hal_init(__attribute__((unused)) void *data) static void cmos_hal_init(__attribute__((unused)) void *data)
{ {
@ -160,6 +162,32 @@ static void cmos_set_iopl(int level)
#endif #endif
} }
#else
/* no need to initialize anything */
static void cmos_hal_init(__attribute__((unused)) void *data)
{
return;
}
static unsigned char cmos_hal_read(__attribute__((unused)) unsigned index)
{
return;
}
static void cmos_hal_write(__attribute__((unused)) unsigned index,
__attribute__((unused)) unsigned char value)
{
return;
}
static void cmos_set_iopl(__attribute__((unused)) int level)
{
return;
}
#endif
cmos_access_t cmos_hal = { cmos_access_t cmos_hal = {
.init = cmos_hal_init, .init = cmos_hal_init,
.read = cmos_hal_read, .read = cmos_hal_read,