[flashrom] [PATCH 1/2] Various fixes for building as a payload.
Idwer Vollering
vidwer at gmail.com
Sun Jun 12 16:26:22 CEST 2011
2011/6/12 Tadas Slotkus <devtadas at gmail.com>:
> Signed-off-by: Tadas Slotkus <devtadas at gmail.com>
> ---
> Makefile | 7 ++++++-
> cli_classic.c | 6 +++++-
> flash.h | 6 +++++-
> flashrom.c | 6 ++++++
> layout.c | 6 ++++--
> nicintel.c | 2 ++
> sst49lfxxxc.c | 3 +--
> 7 files changed, 29 insertions(+), 7 deletions(-)
How does this patch integrate with "make libflashrom.a" ?
>
> diff --git a/Makefile b/Makefile
> index 6e6e2de..fbfbd2f 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -37,6 +37,9 @@ ifeq ($(WARNERROR), yes)
> CFLAGS += -Werror
> endif
>
> +# Uncomment this if you want to build for libpayload
> +# OS_ARCH = libpayload
> +
I would rather/also see something like this:
+libpayload:
+ make OS_ARCH=libpayload
+
> # FIXME We have to differentiate between host and target arch.
> OS_ARCH ?= $(shell uname)
> ifneq ($(OS_ARCH), SunOS)
> @@ -85,7 +88,7 @@ endif
> endif
>
> ifeq ($(OS_ARCH), libpayload)
> -CC:=CC=i386-elf-gcc lpgcc
> +CC:=../libpayload/install/libpayload/bin/lpgcc
> AR:=i386-elf-ar
> RANLIB:=i386-elf-ranlib
> CPPFLAGS += -DSTANDALONE
> @@ -361,7 +364,9 @@ ifeq ($(OS_ARCH), DOS)
> # FIXME There needs to be a better way to do this
> LIBS += ../libpci/lib/libpci.a
> else
> +ifneq ($(OS_ARCH), libpayload)
> LIBS += -lpci
> +endif
> ifeq ($(OS_ARCH), OpenBSD)
> # For (i386|amd64)_iopl(2).
> LIBS += -l$(shell uname -m)
> diff --git a/cli_classic.c b/cli_classic.c
> index d1b4686..f102433 100644
> --- a/cli_classic.c
> +++ b/cli_classic.c
> @@ -22,8 +22,10 @@
> */
>
> #include <stdio.h>
> +#ifndef __LIBPAYLOAD__
> #include <fcntl.h>
> #include <sys/stat.h>
> +#endif
> #include <string.h>
> #include <stdlib.h>
> #include <getopt.h>
> @@ -150,12 +152,14 @@ int cli_classic(int argc, char *argv[])
> if (selfcheck())
> exit(1);
>
> +#ifndef __LIBPAYLOAD__
> setbuf(stdout, NULL);
> +#endif
> /* FIXME: Delay all operation_specified checks until after command
> * line parsing to allow --help overriding everything else.
> */
> while ((opt = getopt_long(argc, argv, optstring,
> - long_options, &option_index)) != EOF) {
> + long_options, &option_index)) != -1) {
> switch (opt) {
> case 'r':
> if (++operation_specified > 1) {
> diff --git a/flash.h b/flash.h
> index 3247700..2d7457e 100644
> --- a/flash.h
> +++ b/flash.h
> @@ -32,7 +32,11 @@
> #undef min
> #undef max
> #endif
> -
> +#ifdef __LIBPAYLOAD__
> +#undef __linux__
> +#define fprintf(stream, ...) printf(__VA_ARGS__)
> +#define vfprintf(output_type, fmt, ap) vprintf(fmt, ap)
> +#endif
> #define ERROR_PTR ((void*)-1)
>
> /* Error codes */
> diff --git a/flashrom.c b/flashrom.c
> index e9e6a77..b145037 100644
> --- a/flashrom.c
> +++ b/flashrom.c
> @@ -26,6 +26,8 @@
> #ifndef __LIBPAYLOAD__
> #include <fcntl.h>
> #include <sys/stat.h>
> +#else
> +#include <libpayload.h>
> #endif
> #include <string.h>
> #include <stdlib.h>
> @@ -1234,6 +1236,7 @@ int verify_flash(struct flashchip *flash, uint8_t *buf)
>
> int read_buf_from_file(unsigned char *buf, unsigned long size, char *filename)
> {
> +#ifndef __LIBPAYLOAD__
> unsigned long numbytes;
> FILE *image;
> struct stat image_stat;
> @@ -1262,11 +1265,13 @@ int read_buf_from_file(unsigned char *buf, unsigned long size, char *filename)
> "wanted %ld!\n", numbytes, size);
> return 1;
> }
> +#endif
> return 0;
> }
>
> int write_buf_to_file(unsigned char *buf, unsigned long size, char *filename)
> {
> +#ifndef __LIBPAYLOAD__
> unsigned long numbytes;
> FILE *image;
>
> @@ -1286,6 +1291,7 @@ int write_buf_to_file(unsigned char *buf, unsigned long size, char *filename)
> filename);
> return 1;
> }
> +#endif
> return 0;
> }
>
> diff --git a/layout.c b/layout.c
> index d719a05..c5a0245 100644
> --- a/layout.c
> +++ b/layout.c
> @@ -136,9 +136,9 @@ int show_id(uint8_t *bios, int size, int force)
> }
> #endif
>
> -#ifndef __LIBPAYLOAD__
> int read_romlayout(char *name)
> {
> +#ifndef __LIBPAYLOAD__
> FILE *romlayout;
> char tempstr[256];
> int i;
> @@ -191,8 +191,10 @@ int read_romlayout(char *name)
> fclose(romlayout);
>
> return 0;
> -}
> +#else
> + return -1;
> #endif
> +}
>
> int find_romentry(char *name)
> {
> diff --git a/nicintel.c b/nicintel.c
> index 3d53ec8..b88597a 100644
> --- a/nicintel.c
> +++ b/nicintel.c
> @@ -23,6 +23,8 @@
> #include "flash.h"
> #include "programmer.h"
>
> +#define PCI_VENDOR_ID_INTEL 0x8086
> +
> uint8_t *nicintel_bar;
> uint8_t *nicintel_control_bar;
This part should be merged with this patch:
http://patchwork.coreboot.org/patch/2823/ -- nicintel.c didn't exist
when I submitted that patch.
>
> diff --git a/sst49lfxxxc.c b/sst49lfxxxc.c
> index 046b9f3..5299c6e 100644
> --- a/sst49lfxxxc.c
> +++ b/sst49lfxxxc.c
> @@ -61,13 +61,12 @@ int unlock_49lfxxxc(struct flashchip *flash)
>
> int erase_sector_49lfxxxc(struct flashchip *flash, unsigned int address, unsigned int sector_size)
> {
> - uint8_t status;
> chipaddr bios = flash->virtual_memory;
>
> chip_writeb(0x30, bios);
> chip_writeb(0xD0, bios + address);
>
> - status = wait_82802ab(flash);
> + wait_82802ab(flash);
>
> if (check_erased_range(flash, address, sector_size)) {
> msg_cerr("ERASE FAILED!\n");
GCC 4.6 fix, applies to all build targets.
> --
> 1.7.0.4
>
>
>
> _______________________________________________
> flashrom mailing list
> flashrom at flashrom.org
> http://www.flashrom.org/mailman/listinfo/flashrom
>
More information about the flashrom
mailing list