Merge branch 'next' of ../next
* 'next' of ../next: mkenvimage: Add version info switch (-V) mkenvimage: Fix getopt() error handling mkenvimage: Fix some typos phy: add Micrel KS8721BL phy definition net: introduce per device index mvgbe: remove setting of ethaddr within the driver x86: Add support for specifying an initrd with the zboot command x86: Refactor the zboot innards so they can be reused with a vboot image x86: Add infrastructure to extract an e820 table from the coreboot tables x86: Add support for booting Linux using the 32 bit boot protocol x86: Clean up the x86 zimage code in preparation to extend it x86: Import code from coreboot's libpayload to parse the coreboot table x86: Initial commit for running as a coreboot payload CHECKPATCH: ./board/esd/hh405/logo_320_240_8bpp.c CHECKPATCH: ./board/esd/hh405/logo_1024_768_8bpp.c CHECKPATCH: ./board/esd/hh405/logo_320_240_4bpp.c CHECKPATCH: ./board/esd/hh405/logo_640_480_24bpp.c CHECKPATCH: ./board/esd/apc405/logo_640_480_24bpp.c CHECKPATCH: ./board/esd/voh405/logo_320_240_4bpp.c CHECKPATCH: ./board/esd/voh405/logo_640_480_24bpp.c CHECKPATCH: ./board/esd/hh405/fpgadata.c CHECKPATCH: ./board/esd/pci405/fpgadata.c CHECKPATCH: ./board/esd/tasreg/fpgadata.c CHECKPATCH: ./board/esd/apc405/fpgadata.c CHECKPATCH: ./board/esd/voh405/fpgadata.c CHECKPATCH: ./board/esd/ash405/fpgadata.c CHECKPATCH: ./board/esd/dasa_sim/fpgadata.c CHECKPATCH: ./board/esd/ar405/fpgadata_xl30.c CHECKPATCH: ./board/esd/ar405/fpgadata.c CHECKPATCH: ./board/esd/plu405/fpgadata.c CHECKPATCH: ./board/esd/wuh405/fpgadata.c CHECKPATCH: ./board/esd/cpci405/fpgadata_cpci405.c CHECKPATCH: ./board/esd/cpci405/fpgadata_cpci405ab.c CHECKPATCH: ./board/esd/cpci405/fpgadata_cpci4052.c CHECKPATCH: ./board/esd/canbt/fpgadata.c CHECKPATCH: ./board/esd/du405/fpgadata.c CHECKPATCH: ./board/esd/cpciiser4/fpgadata.c CHECKPATCH: ./board/dave/PPChameleonEVB/fpgadata.c avr32:mmu.c: fix printf() length modifier fat.c: fix printf() length modifier cmd_sf.c: fix printf() length modifier Make printf and vprintf safe from buffer overruns vsprintf: Move function documentation into header file Add safe vsnprintf and snprintf library functions Move vsprintf functions into their own header Conflicts: tools/mkenvimage.c Signed-off-by: Wolfgang Denk <wd@denx.de>
This commit is contained in:
@@ -733,16 +733,7 @@ void uuid_str_to_bin(const char *uuid, unsigned char *out);
|
||||
int uuid_str_valid(const char *uuid);
|
||||
|
||||
/* lib/vsprintf.c */
|
||||
ulong simple_strtoul(const char *cp,char **endp,unsigned int base);
|
||||
int strict_strtoul(const char *cp, unsigned int base, unsigned long *res);
|
||||
unsigned long long simple_strtoull(const char *cp,char **endp,unsigned int base);
|
||||
long simple_strtol(const char *cp,char **endp,unsigned int base);
|
||||
void panic(const char *fmt, ...)
|
||||
__attribute__ ((format (__printf__, 1, 2), noreturn));
|
||||
int sprintf(char * buf, const char *fmt, ...)
|
||||
__attribute__ ((format (__printf__, 2, 3)));
|
||||
int vsprintf(char *buf, const char *fmt, va_list args);
|
||||
char *simple_itoa(ulong i);
|
||||
#include <vsprintf.h>
|
||||
|
||||
/* lib/strmhz.c */
|
||||
char * strmhz(char *buf, unsigned long hz);
|
||||
|
||||
225
include/configs/coreboot.h
Normal file
225
include/configs/coreboot.h
Normal file
@@ -0,0 +1,225 @@
|
||||
/*
|
||||
* Copyright (c) 2011 The Chromium OS Authors.
|
||||
* (C) Copyright 2008
|
||||
* Graeme Russ, graeme.russ@gmail.com.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <asm/ibmpc.h>
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
#define CONFIG_SYS_COREBOOT
|
||||
#undef CONFIG_SHOW_BOOT_PROGRESS
|
||||
#define CONFIG_LAST_STAGE_INIT
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Watchdog Configuration
|
||||
*/
|
||||
#undef CONFIG_WATCHDOG
|
||||
#undef CONFIG_HW_WATCHDOG
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Real Time Clock Configuration
|
||||
*/
|
||||
#define CONFIG_RTC_MC146818
|
||||
#define CONFIG_SYS_ISA_IO_BASE_ADDRESS 0
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Serial Configuration
|
||||
*/
|
||||
#define CONFIG_SERIAL_MULTI
|
||||
#define CONFIG_CONS_INDEX 1
|
||||
#define CONFIG_SYS_NS16550
|
||||
#define CONFIG_SYS_NS16550_SERIAL
|
||||
#define CONFIG_SYS_NS16550_REG_SIZE 1
|
||||
#define CONFIG_SYS_NS16550_CLK 1843200
|
||||
#define CONFIG_BAUDRATE 9600
|
||||
#define CONFIG_SYS_BAUDRATE_TABLE {300, 600, 1200, 2400, 4800, \
|
||||
9600, 19200, 38400, 115200}
|
||||
#define CONFIG_SYS_NS16550_COM1 UART0_BASE
|
||||
#define CONFIG_SYS_NS16550_COM2 UART1_BASE
|
||||
#define CONFIG_SYS_NS16550_PORT_MAPPED
|
||||
|
||||
/* max. 1 IDE bus */
|
||||
#define CONFIG_SYS_IDE_MAXBUS 1
|
||||
/* max. 1 drive per IDE bus */
|
||||
#define CONFIG_SYS_IDE_MAXDEVICE (CONFIG_SYS_IDE_MAXBUS * 1)
|
||||
|
||||
#define CONFIG_SYS_ATA_BASE_ADDR CONFIG_SYS_ISA_IO_BASE_ADDRESS
|
||||
#define CONFIG_SYS_ATA_IDE0_OFFSET 0x01f0
|
||||
#define CONFIG_SYS_ATA_IDE1_OFFSET 0x0170
|
||||
#define CONFIG_SYS_ATA_DATA_OFFSET 0
|
||||
#define CONFIG_SYS_ATA_REG_OFFSET 0
|
||||
#define CONFIG_SYS_ATA_ALT_OFFSET 0x200
|
||||
|
||||
|
||||
#define CONFIG_SUPPORT_VFAT
|
||||
/************************************************************
|
||||
* ATAPI support (experimental)
|
||||
************************************************************/
|
||||
#define CONFIG_ATAPI
|
||||
|
||||
/************************************************************
|
||||
* DISK Partition support
|
||||
************************************************************/
|
||||
#define CONFIG_DOS_PARTITION
|
||||
#define CONFIG_MAC_PARTITION
|
||||
#define CONFIG_ISO_PARTITION /* Experimental */
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Video Configuration
|
||||
*/
|
||||
#undef CONFIG_VIDEO
|
||||
#undef CONFIG_CFB_CONSOLE
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Command line configuration.
|
||||
*/
|
||||
#include <config_cmd_default.h>
|
||||
|
||||
#define CONFIG_CMD_BDI
|
||||
#define CONFIG_CMD_BOOTD
|
||||
#define CONFIG_CMD_CONSOLE
|
||||
#define CONFIG_CMD_DATE
|
||||
#define CONFIG_CMD_ECHO
|
||||
#undef CONFIG_CMD_FLASH
|
||||
#define CONFIG_CMD_FPGA
|
||||
#define CONFIG_CMD_IMI
|
||||
#undef CONFIG_CMD_IMLS
|
||||
#define CONFIG_CMD_IRQ
|
||||
#define CONFIG_CMD_ITEST
|
||||
#define CONFIG_CMD_LOADB
|
||||
#define CONFIG_CMD_LOADS
|
||||
#define CONFIG_CMD_MEMORY
|
||||
#define CONFIG_CMD_MISC
|
||||
#define CONFIG_CMD_NET
|
||||
#undef CONFIG_CMD_NFS
|
||||
#define CONFIG_CMD_PCI
|
||||
#define CONFIG_CMD_PING
|
||||
#define CONFIG_CMD_RUN
|
||||
#define CONFIG_CMD_SAVEENV
|
||||
#define CONFIG_CMD_SETGETDCR
|
||||
#define CONFIG_CMD_SOURCE
|
||||
#define CONFIG_CMD_XIMG
|
||||
#define CONFIG_CMD_IDE
|
||||
#define CONFIG_CMD_FAT
|
||||
#define CONFIG_CMD_EXT2
|
||||
|
||||
#define CONFIG_BOOTDELAY 2
|
||||
#define CONFIG_BOOTARGS "root=/dev/mtdblock0 console=ttyS0,9600"
|
||||
|
||||
#if defined(CONFIG_CMD_KGDB)
|
||||
#define CONFIG_KGDB_BAUDRATE 115200
|
||||
#define CONFIG_KGDB_SER_INDEX 2
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CONFIG_SYS_LONGHELP
|
||||
#define CONFIG_SYS_PROMPT "boot > "
|
||||
#define CONFIG_SYS_CBSIZE 256
|
||||
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \
|
||||
sizeof(CONFIG_SYS_PROMPT) + \
|
||||
16)
|
||||
#define CONFIG_SYS_MAXARGS 16
|
||||
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
|
||||
|
||||
#define CONFIG_SYS_MEMTEST_START 0x00100000
|
||||
#define CONFIG_SYS_MEMTEST_END 0x01000000
|
||||
#define CONFIG_SYS_LOAD_ADDR 0x100000
|
||||
#define CONFIG_SYS_HZ 1000
|
||||
#define CONFIG_SYS_X86_ISR_TIMER
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SDRAM Configuration
|
||||
*/
|
||||
#define CONFIG_NR_DRAM_BANKS 4
|
||||
|
||||
/* CONFIG_SYS_SDRAM_DRCTMCTL Overrides the following*/
|
||||
#undef CONFIG_SYS_SDRAM_PRECHARGE_DELAY
|
||||
#undef CONFIG_SYS_SDRAM_RAS_CAS_DELAY
|
||||
#undef CONFIG_SYS_SDRAM_CAS_LATENCY_2T
|
||||
#undef CONFIG_SYS_SDRAM_CAS_LATENCY_3T
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* CPU Features
|
||||
*/
|
||||
|
||||
#define CONFIG_SYS_GENERIC_TIMER
|
||||
#define CONFIG_SYS_PCAT_INTERRUPTS
|
||||
#define CONFIG_SYS_NUM_IRQS 16
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Memory organization:
|
||||
* 32kB Stack
|
||||
* 16kB Cache-As-RAM @ 0x19200000
|
||||
* 256kB Monitor
|
||||
* (128kB + Environment Sector Size) malloc pool
|
||||
*/
|
||||
#define CONFIG_SYS_STACK_SIZE (32 * 1024)
|
||||
#define CONFIG_SYS_INIT_SP_ADDR (256 * 1024 + 16 * 1024)
|
||||
#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
|
||||
#define CONFIG_SYS_MONITOR_LEN (256 * 1024)
|
||||
#define CONFIG_SYS_MALLOC_LEN (0x20000 + 128 * 1024)
|
||||
/* Address of temporary Global Data */
|
||||
#define CONFIG_SYS_INIT_GD_ADDR (256 * 1024)
|
||||
|
||||
|
||||
/* allow to overwrite serial and ethaddr */
|
||||
#define CONFIG_ENV_OVERWRITE
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH configuration
|
||||
*/
|
||||
#define CONFIG_SYS_NO_FLASH
|
||||
#undef CONFIG_FLASH_CFI_DRIVER
|
||||
#define CONFIG_SYS_MAX_FLASH_SECT 1
|
||||
#define CONFIG_SYS_MAX_FLASH_BANKS 1
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Environment configuration
|
||||
*/
|
||||
#define CONFIG_ENV_IS_NOWHERE
|
||||
#define CONFIG_ENV_SIZE 0x01000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PCI configuration
|
||||
*/
|
||||
#define CONFIG_PCI
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Network device support
|
||||
*/
|
||||
#define CONFIG_NET_MULTI
|
||||
|
||||
|
||||
#endif /* __CONFIG_H */
|
||||
@@ -90,6 +90,7 @@ struct eth_device {
|
||||
#endif
|
||||
int (*write_hwaddr) (struct eth_device*);
|
||||
struct eth_device *next;
|
||||
int index;
|
||||
void *priv;
|
||||
};
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ extern struct serial_device *default_serial_console(void);
|
||||
defined(CONFIG_MB86R0x) || defined(CONFIG_MPC5xxx) || \
|
||||
defined(CONFIG_MPC83xx) || defined(CONFIG_MPC85xx) || \
|
||||
defined(CONFIG_MPC86xx) || defined(CONFIG_SYS_SC520) || \
|
||||
defined(CONFIG_TEGRA2)
|
||||
defined(CONFIG_TEGRA2) || defined(CONFIG_SYS_COREBOOT)
|
||||
extern struct serial_device serial0_device;
|
||||
extern struct serial_device serial1_device;
|
||||
#if defined(CONFIG_SYS_NS16550_SERIAL)
|
||||
|
||||
181
include/vsprintf.h
Normal file
181
include/vsprintf.h
Normal file
@@ -0,0 +1,181 @@
|
||||
/*
|
||||
* (C) Copyright 2000-2009
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __VSPRINTF_H
|
||||
#define __VSPRINTF_H
|
||||
|
||||
ulong simple_strtoul(const char *cp, char **endp, unsigned int base);
|
||||
|
||||
/**
|
||||
* strict_strtoul - convert a string to an unsigned long strictly
|
||||
* @param cp The string to be converted
|
||||
* @param base The number base to use
|
||||
* @param res The converted result value
|
||||
* @return 0 if conversion is successful and *res is set to the converted
|
||||
* value, otherwise it returns -EINVAL and *res is set to 0.
|
||||
*
|
||||
* strict_strtoul converts a string to an unsigned long only if the
|
||||
* string is really an unsigned long string, any string containing
|
||||
* any invalid char at the tail will be rejected and -EINVAL is returned,
|
||||
* only a newline char at the tail is acceptible because people generally
|
||||
* change a module parameter in the following way:
|
||||
*
|
||||
* echo 1024 > /sys/module/e1000/parameters/copybreak
|
||||
*
|
||||
* echo will append a newline to the tail.
|
||||
*
|
||||
* simple_strtoul just ignores the successive invalid characters and
|
||||
* return the converted value of prefix part of the string.
|
||||
*
|
||||
* Copied this function from Linux 2.6.38 commit ID:
|
||||
* 521cb40b0c44418a4fd36dc633f575813d59a43d
|
||||
*
|
||||
*/
|
||||
int strict_strtoul(const char *cp, unsigned int base, unsigned long *res);
|
||||
unsigned long long simple_strtoull(const char *cp, char **endp,
|
||||
unsigned int base);
|
||||
long simple_strtol(const char *cp, char **endp, unsigned int base);
|
||||
void panic(const char *fmt, ...)
|
||||
__attribute__ ((format (__printf__, 1, 2), noreturn));
|
||||
|
||||
/**
|
||||
* Format a string and place it in a buffer
|
||||
*
|
||||
* @param buf The buffer to place the result into
|
||||
* @param fmt The format string to use
|
||||
* @param ... Arguments for the format string
|
||||
*
|
||||
* The function returns the number of characters written
|
||||
* into @buf.
|
||||
*
|
||||
* See the vsprintf() documentation for format string extensions over C99.
|
||||
*/
|
||||
int sprintf(char *buf, const char *fmt, ...)
|
||||
__attribute__ ((format (__printf__, 2, 3)));
|
||||
|
||||
/**
|
||||
* Format a string and place it in a buffer (va_list version)
|
||||
*
|
||||
* @param buf The buffer to place the result into
|
||||
* @param size The size of the buffer, including the trailing null space
|
||||
* @param fmt The format string to use
|
||||
* @param args Arguments for the format string
|
||||
* @return the number of characters which have been written into
|
||||
* the @buf not including the trailing '\0'. If @size is == 0 the function
|
||||
* returns 0.
|
||||
*
|
||||
* If you're not already dealing with a va_list consider using scnprintf().
|
||||
*
|
||||
* See the vsprintf() documentation for format string extensions over C99.
|
||||
*/
|
||||
int vsprintf(char *buf, const char *fmt, va_list args);
|
||||
char *simple_itoa(ulong i);
|
||||
|
||||
#ifdef CONFIG_SYS_VSNPRINTF
|
||||
/**
|
||||
* Format a string and place it in a buffer
|
||||
*
|
||||
* @param buf The buffer to place the result into
|
||||
* @param size The size of the buffer, including the trailing null space
|
||||
* @param fmt The format string to use
|
||||
* @param ... Arguments for the format string
|
||||
* @return the number of characters which would be
|
||||
* generated for the given input, excluding the trailing null,
|
||||
* as per ISO C99. If the return is greater than or equal to
|
||||
* @size, the resulting string is truncated.
|
||||
*
|
||||
* See the vsprintf() documentation for format string extensions over C99.
|
||||
*/
|
||||
int snprintf(char *buf, size_t size, const char *fmt, ...)
|
||||
__attribute__ ((format (__printf__, 3, 4)));
|
||||
|
||||
/**
|
||||
* Format a string and place it in a buffer
|
||||
*
|
||||
* @param buf The buffer to place the result into
|
||||
* @param size The size of the buffer, including the trailing null space
|
||||
* @param fmt The format string to use
|
||||
* @param ... Arguments for the format string
|
||||
*
|
||||
* The return value is the number of characters written into @buf not including
|
||||
* the trailing '\0'. If @size is == 0 the function returns 0.
|
||||
*
|
||||
* See the vsprintf() documentation for format string extensions over C99.
|
||||
*/
|
||||
int scnprintf(char *buf, size_t size, const char *fmt, ...)
|
||||
__attribute__ ((format (__printf__, 3, 4)));
|
||||
|
||||
/**
|
||||
* Format a string and place it in a buffer (base function)
|
||||
*
|
||||
* @param buf The buffer to place the result into
|
||||
* @param size The size of the buffer, including the trailing null space
|
||||
* @param fmt The format string to use
|
||||
* @param args Arguments for the format string
|
||||
* @return The number characters which would be generated for the given
|
||||
* input, excluding the trailing '\0', as per ISO C99. Note that fewer
|
||||
* characters may be written if this number of characters is >= size.
|
||||
*
|
||||
* This function follows C99 vsnprintf, but has some extensions:
|
||||
* %pS output the name of a text symbol
|
||||
* %pF output the name of a function pointer
|
||||
* %pR output the address range in a struct resource
|
||||
*
|
||||
* The function returns the number of characters which would be
|
||||
* generated for the given input, excluding the trailing '\0',
|
||||
* as per ISO C99.
|
||||
*
|
||||
* Call this function if you are already dealing with a va_list.
|
||||
* You probably want snprintf() instead.
|
||||
*/
|
||||
int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
|
||||
|
||||
/**
|
||||
* Format a string and place it in a buffer (va_list version)
|
||||
*
|
||||
* @param buf The buffer to place the result into
|
||||
* @param size The size of the buffer, including the trailing null space
|
||||
* @param fmt The format string to use
|
||||
* @param args Arguments for the format string
|
||||
* @return the number of characters which have been written into
|
||||
* the @buf not including the trailing '\0'. If @size is == 0 the function
|
||||
* returns 0.
|
||||
*
|
||||
* If you're not already dealing with a va_list consider using scnprintf().
|
||||
*
|
||||
* See the vsprintf() documentation for format string extensions over C99.
|
||||
*/
|
||||
int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
|
||||
#else
|
||||
/*
|
||||
* Use macros to silently drop the size parameter. Note that the 'cn'
|
||||
* versions are the same as the 'n' versions since the functions assume
|
||||
* there is always enough buffer space when !CONFIG_SYS_VSNPRINTF
|
||||
*/
|
||||
#define snprintf(buf, size, fmt, args...) sprintf(buf, fmt, ##args)
|
||||
#define scnprintf(buf, size, fmt, args...) sprintf(buf, fmt, ##args)
|
||||
#define vsnprintf(buf, size, fmt, args...) vsprintf(buf, fmt, ##args)
|
||||
#define vscnprintf(buf, size, fmt, args...) vsprintf(buf, fmt, ##args)
|
||||
#endif /* CONFIG_SYS_VSNPRINTF */
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user