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:
@@ -655,6 +655,15 @@ The following options need to be configured:
|
||||
to get the character out. Baud rates will need to default
|
||||
to something sensible.
|
||||
|
||||
- Safe printf() functions
|
||||
Define CONFIG_SYS_VSNPRINTF to compile in safe versions of
|
||||
the printf() functions. These are defined in
|
||||
include/vsprintf.h and include snprintf(), vsnprintf() and
|
||||
so on. Code size increase is approximately 300-500 bytes.
|
||||
If this option is not given then these functions will
|
||||
silently discard their buffer size argument - this means
|
||||
you are not getting any overflow checking in this case.
|
||||
|
||||
- Boot Delay: CONFIG_BOOTDELAY - in seconds
|
||||
Delay before automatically booting the default image;
|
||||
set to -1 to disable autoboot.
|
||||
|
||||
@@ -22,7 +22,7 @@ void mmu_init_r(unsigned long dest_addr)
|
||||
*/
|
||||
vmr_table_addr = (uintptr_t)&mmu_vmr_table;
|
||||
sysreg_write(PTBR, vmr_table_addr);
|
||||
printf("VMR table @ 0x%08x\n", vmr_table_addr);
|
||||
printf("VMR table @ 0x%08lx\n", vmr_table_addr);
|
||||
|
||||
/* Enable paging */
|
||||
sysreg_write(MMUCR, SYSREG_BF(DRP, 1) | SYSREG_BF(DLA, 1)
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
#
|
||||
# Copyright (c) 2011 The Chromium OS Authors.
|
||||
#
|
||||
# (C) Copyright 2008
|
||||
# Graeme Russ, graeme.russ@gmail.com.
|
||||
#
|
||||
# (C) Copyright 2006
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# (C) Copyright 2002
|
||||
# Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
|
||||
#
|
||||
# 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 $(TOPDIR)/config.mk
|
||||
|
||||
LIB := $(obj)lib$(SOC).o
|
||||
|
||||
COBJS-$(CONFIG_SYS_COREBOOT) += tables.o
|
||||
COBJS-$(CONFIG_SYS_COREBOOT) += ipchecksum.o
|
||||
COBJS-$(CONFIG_SYS_COREBOOT) += sdram.o
|
||||
COBJS-$(CONFIG_SYS_COREBOOT) += sysinfo.o
|
||||
|
||||
SOBJS-$(CONFIG_SYS_COREBOOT) += coreboot_car.o
|
||||
|
||||
SRCS := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
|
||||
|
||||
all: $(obj).depend $(LIB)
|
||||
|
||||
$(LIB): $(OBJS)
|
||||
$(call cmd_link_o_target, $(OBJS))
|
||||
|
||||
#########################################################################
|
||||
|
||||
# defines $(obj).depend target
|
||||
include $(SRCTREE)/rules.mk
|
||||
|
||||
sinclude $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Adapted from Linux v2.6.36 kernel: arch/powerpc/kernel/asm-offsets.c
|
||||
*
|
||||
* This program is used to generate definitions needed by
|
||||
* assembly language modules.
|
||||
*
|
||||
* We use the technique used in the OSF Mach kernel code:
|
||||
* generate asm statements containing #defines,
|
||||
* compile this file to assembler, and then extract the
|
||||
* #defines from the assembly-language output.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <linux/kbuild.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
DEFINE(GENERATED_GD_RELOC_OFF, offsetof(gd_t, reloc_off));
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright (c) 2011 The Chromium OS Authors.
|
||||
* (C) Copyright 2010-2011
|
||||
* 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
|
||||
*/
|
||||
|
||||
.section .text
|
||||
|
||||
.globl car_init
|
||||
car_init:
|
||||
jmp car_init_ret
|
||||
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* This file is part of the libpayload project.
|
||||
*
|
||||
* It has originally been taken from the FreeBSD project.
|
||||
*
|
||||
* Copyright (c) 2001 Charles Mott <cm@linktel.net>
|
||||
* Copyright (c) 2008 coresystems GmbH
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <compiler.h>
|
||||
#include <asm/arch-coreboot/ipchecksum.h>
|
||||
|
||||
unsigned short ipchksum(const void *vptr, unsigned long nbytes)
|
||||
{
|
||||
int sum, oddbyte;
|
||||
const unsigned short *ptr = vptr;
|
||||
|
||||
sum = 0;
|
||||
while (nbytes > 1) {
|
||||
sum += *ptr++;
|
||||
nbytes -= 2;
|
||||
}
|
||||
if (nbytes == 1) {
|
||||
oddbyte = 0;
|
||||
((u8 *)&oddbyte)[0] = *(u8 *) ptr;
|
||||
((u8 *)&oddbyte)[1] = 0;
|
||||
sum += oddbyte;
|
||||
}
|
||||
sum = (sum >> 16) + (sum & 0xffff);
|
||||
sum += (sum >> 16);
|
||||
return ~sum;
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Copyright (c) 2011 The Chromium OS Authors.
|
||||
* (C) Copyright 2010,2011
|
||||
* 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 <common.h>
|
||||
#include <malloc.h>
|
||||
#include <asm/e820.h>
|
||||
#include <asm/u-boot-x86.h>
|
||||
#include <asm/global_data.h>
|
||||
#include <asm/arch-coreboot/sysinfo.h>
|
||||
#include <asm/arch-coreboot/tables.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
unsigned install_e820_map(unsigned max_entries, struct e820entry *entries)
|
||||
{
|
||||
int i;
|
||||
|
||||
unsigned num_entries = min(lib_sysinfo.n_memranges, max_entries);
|
||||
if (num_entries < lib_sysinfo.n_memranges) {
|
||||
printf("Warning: Limiting e820 map to %d entries.\n",
|
||||
num_entries);
|
||||
}
|
||||
for (i = 0; i < num_entries; i++) {
|
||||
struct memrange *memrange = &lib_sysinfo.memrange[i];
|
||||
|
||||
entries[i].addr = memrange->base;
|
||||
entries[i].size = memrange->size;
|
||||
entries[i].type = memrange->type;
|
||||
}
|
||||
return num_entries;
|
||||
}
|
||||
|
||||
int dram_init_f(void)
|
||||
{
|
||||
int i;
|
||||
phys_size_t ram_size = 0;
|
||||
|
||||
for (i = 0; i < lib_sysinfo.n_memranges; i++) {
|
||||
struct memrange *memrange = &lib_sysinfo.memrange[i];
|
||||
unsigned long long end = memrange->base + memrange->size;
|
||||
|
||||
if (memrange->type == CB_MEM_RAM && end > ram_size)
|
||||
ram_size = end;
|
||||
}
|
||||
gd->ram_size = ram_size;
|
||||
if (ram_size == 0)
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int dram_init(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* This file is part of the libpayload project.
|
||||
*
|
||||
* Copyright (C) 2008 Advanced Micro Devices, Inc.
|
||||
* Copyright (C) 2009 coresystems GmbH
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <asm/arch-coreboot/sysinfo.h>
|
||||
|
||||
/*
|
||||
* This needs to be in the .data section so that it's copied over during
|
||||
* relocation. By default it's put in the .bss section which is simply filled
|
||||
* with zeroes when transitioning from "ROM", which is really RAM, to other
|
||||
* RAM.
|
||||
*/
|
||||
struct sysinfo_t lib_sysinfo __attribute__((section(".data")));
|
||||
@@ -0,0 +1,183 @@
|
||||
/*
|
||||
* This file is part of the libpayload project.
|
||||
*
|
||||
* Copyright (C) 2008 Advanced Micro Devices, Inc.
|
||||
* Copyright (C) 2009 coresystems GmbH
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <asm/arch-coreboot/ipchecksum.h>
|
||||
#include <asm/arch-coreboot/sysinfo.h>
|
||||
#include <asm/arch-coreboot/tables.h>
|
||||
|
||||
/*
|
||||
* Some of this is x86 specific, and the rest of it is generic. Right now,
|
||||
* since we only support x86, we'll avoid trying to make lots of infrastructure
|
||||
* we don't need. If in the future, we want to use coreboot on some other
|
||||
* architecture, then take out the generic parsing code and move it elsewhere.
|
||||
*/
|
||||
|
||||
/* === Parsing code === */
|
||||
/* This is the generic parsing code. */
|
||||
|
||||
static void cb_parse_memory(unsigned char *ptr, struct sysinfo_t *info)
|
||||
{
|
||||
struct cb_memory *mem = (struct cb_memory *)ptr;
|
||||
int count = MEM_RANGE_COUNT(mem);
|
||||
int i;
|
||||
|
||||
if (count > SYSINFO_MAX_MEM_RANGES)
|
||||
count = SYSINFO_MAX_MEM_RANGES;
|
||||
|
||||
info->n_memranges = 0;
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
struct cb_memory_range *range =
|
||||
(struct cb_memory_range *)MEM_RANGE_PTR(mem, i);
|
||||
|
||||
info->memrange[info->n_memranges].base =
|
||||
UNPACK_CB64(range->start);
|
||||
|
||||
info->memrange[info->n_memranges].size =
|
||||
UNPACK_CB64(range->size);
|
||||
|
||||
info->memrange[info->n_memranges].type = range->type;
|
||||
|
||||
info->n_memranges++;
|
||||
}
|
||||
}
|
||||
|
||||
static void cb_parse_serial(unsigned char *ptr, struct sysinfo_t *info)
|
||||
{
|
||||
struct cb_serial *ser = (struct cb_serial *)ptr;
|
||||
if (ser->type != CB_SERIAL_TYPE_IO_MAPPED)
|
||||
return;
|
||||
info->ser_ioport = ser->baseaddr;
|
||||
}
|
||||
|
||||
static void cb_parse_optiontable(unsigned char *ptr, struct sysinfo_t *info)
|
||||
{
|
||||
info->option_table = (struct cb_cmos_option_table *)ptr;
|
||||
}
|
||||
|
||||
static void cb_parse_checksum(unsigned char *ptr, struct sysinfo_t *info)
|
||||
{
|
||||
struct cb_cmos_checksum *cmos_cksum = (struct cb_cmos_checksum *)ptr;
|
||||
info->cmos_range_start = cmos_cksum->range_start;
|
||||
info->cmos_range_end = cmos_cksum->range_end;
|
||||
info->cmos_checksum_location = cmos_cksum->location;
|
||||
}
|
||||
|
||||
static void cb_parse_framebuffer(unsigned char *ptr, struct sysinfo_t *info)
|
||||
{
|
||||
info->framebuffer = (struct cb_framebuffer *)ptr;
|
||||
}
|
||||
|
||||
static int cb_parse_header(void *addr, int len, struct sysinfo_t *info)
|
||||
{
|
||||
struct cb_header *header;
|
||||
unsigned char *ptr = (unsigned char *)addr;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < len; i += 16, ptr += 16) {
|
||||
header = (struct cb_header *)ptr;
|
||||
if (!strncmp((const char *)header->signature, "LBIO", 4))
|
||||
break;
|
||||
}
|
||||
|
||||
/* We walked the entire space and didn't find anything. */
|
||||
if (i >= len)
|
||||
return -1;
|
||||
|
||||
if (!header->table_bytes)
|
||||
return 0;
|
||||
|
||||
/* Make sure the checksums match. */
|
||||
if (ipchksum((u16 *) header, sizeof(*header)) != 0)
|
||||
return -1;
|
||||
|
||||
if (ipchksum((u16 *) (ptr + sizeof(*header)),
|
||||
header->table_bytes) != header->table_checksum)
|
||||
return -1;
|
||||
|
||||
/* Now, walk the tables. */
|
||||
ptr += header->header_bytes;
|
||||
|
||||
for (i = 0; i < header->table_entries; i++) {
|
||||
struct cb_record *rec = (struct cb_record *)ptr;
|
||||
|
||||
/* We only care about a few tags here (maybe more later). */
|
||||
switch (rec->tag) {
|
||||
case CB_TAG_FORWARD:
|
||||
return cb_parse_header(
|
||||
(void *)(unsigned long)
|
||||
((struct cb_forward *)rec)->forward,
|
||||
len, info);
|
||||
continue;
|
||||
case CB_TAG_MEMORY:
|
||||
cb_parse_memory(ptr, info);
|
||||
break;
|
||||
case CB_TAG_SERIAL:
|
||||
cb_parse_serial(ptr, info);
|
||||
break;
|
||||
case CB_TAG_CMOS_OPTION_TABLE:
|
||||
cb_parse_optiontable(ptr, info);
|
||||
break;
|
||||
case CB_TAG_OPTION_CHECKSUM:
|
||||
cb_parse_checksum(ptr, info);
|
||||
break;
|
||||
/*
|
||||
* FIXME we should warn on serial if coreboot set up a
|
||||
* framebuffer buf the payload does not know about it.
|
||||
*/
|
||||
case CB_TAG_FRAMEBUFFER:
|
||||
cb_parse_framebuffer(ptr, info);
|
||||
break;
|
||||
}
|
||||
|
||||
ptr += rec->size;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* == Architecture specific == */
|
||||
/* This is the x86 specific stuff. */
|
||||
|
||||
/* Assume no translation or that memory is identity mapped. */
|
||||
static void *phys_to_virt(unsigned long virt)
|
||||
{
|
||||
return (void *)(uintptr_t)virt;
|
||||
}
|
||||
|
||||
int get_coreboot_info(struct sysinfo_t *info)
|
||||
{
|
||||
int ret = cb_parse_header(phys_to_virt(0x00000000), 0x1000, info);
|
||||
|
||||
if (ret != 1)
|
||||
ret = cb_parse_header(phys_to_virt(0x000f0000), 0x1000, info);
|
||||
|
||||
return (ret == 1) ? 0 : -1;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* This file is part of the libpayload project.
|
||||
*
|
||||
* It has originally been taken from the FreeBSD project.
|
||||
*
|
||||
* Copyright (c) 2001 Charles Mott <cm@linktel.net>
|
||||
* Copyright (c) 2008 coresystems GmbH
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _COREBOOT_IPCHECKSUM_H
|
||||
#define _COREBOOT_IPCHECKSUM_H
|
||||
|
||||
unsigned short ipchksum(const void *vptr, unsigned long nbytes);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* This file is part of the libpayload project.
|
||||
*
|
||||
* Copyright (C) 2008 Advanced Micro Devices, Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _COREBOOT_SYSINFO_H
|
||||
#define _COREBOOT_SYSINFO_H
|
||||
|
||||
#include <compiler.h>
|
||||
|
||||
/* Allow a maximum of 16 memory range definitions. */
|
||||
#define SYSINFO_MAX_MEM_RANGES 16
|
||||
|
||||
struct sysinfo_t {
|
||||
unsigned int cpu_khz;
|
||||
unsigned short ser_ioport;
|
||||
unsigned long ser_base; /* for mmapped serial */
|
||||
|
||||
int n_memranges;
|
||||
|
||||
struct memrange {
|
||||
unsigned long long base;
|
||||
unsigned long long size;
|
||||
unsigned int type;
|
||||
} memrange[SYSINFO_MAX_MEM_RANGES];
|
||||
|
||||
struct cb_cmos_option_table *option_table;
|
||||
u32 cmos_range_start;
|
||||
u32 cmos_range_end;
|
||||
u32 cmos_checksum_location;
|
||||
|
||||
struct cb_framebuffer *framebuffer;
|
||||
|
||||
unsigned long *mbtable; /** Pointer to the multiboot table */
|
||||
};
|
||||
|
||||
extern struct sysinfo_t lib_sysinfo;
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,241 @@
|
||||
/*
|
||||
* This file is part of the libpayload project.
|
||||
*
|
||||
* Copyright (C) 2008 Advanced Micro Devices, Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _COREBOOT_TABLES_H
|
||||
#define _COREBOOT_TABLES_H
|
||||
|
||||
#include <compiler.h>
|
||||
|
||||
struct cbuint64 {
|
||||
u32 lo;
|
||||
u32 hi;
|
||||
};
|
||||
|
||||
struct cb_header {
|
||||
u8 signature[4];
|
||||
u32 header_bytes;
|
||||
u32 header_checksum;
|
||||
u32 table_bytes;
|
||||
u32 table_checksum;
|
||||
u32 table_entries;
|
||||
};
|
||||
|
||||
struct cb_record {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
};
|
||||
|
||||
#define CB_TAG_UNUSED 0x0000
|
||||
#define CB_TAG_MEMORY 0x0001
|
||||
|
||||
struct cb_memory_range {
|
||||
struct cbuint64 start;
|
||||
struct cbuint64 size;
|
||||
u32 type;
|
||||
};
|
||||
|
||||
#define CB_MEM_RAM 1
|
||||
#define CB_MEM_RESERVED 2
|
||||
#define CB_MEM_ACPI 3
|
||||
#define CB_MEM_NVS 4
|
||||
#define CB_MEM_UNUSABLE 5
|
||||
#define CB_MEM_VENDOR_RSVD 6
|
||||
#define CB_MEM_TABLE 16
|
||||
|
||||
struct cb_memory {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
struct cb_memory_range map[0];
|
||||
};
|
||||
|
||||
#define CB_TAG_HWRPB 0x0002
|
||||
|
||||
struct cb_hwrpb {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
u64 hwrpb;
|
||||
};
|
||||
|
||||
#define CB_TAG_MAINBOARD 0x0003
|
||||
|
||||
struct cb_mainboard {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
u8 vendor_idx;
|
||||
u8 part_number_idx;
|
||||
u8 strings[0];
|
||||
};
|
||||
|
||||
#define CB_TAG_VERSION 0x0004
|
||||
#define CB_TAG_EXTRA_VERSION 0x0005
|
||||
#define CB_TAG_BUILD 0x0006
|
||||
#define CB_TAG_COMPILE_TIME 0x0007
|
||||
#define CB_TAG_COMPILE_BY 0x0008
|
||||
#define CB_TAG_COMPILE_HOST 0x0009
|
||||
#define CB_TAG_COMPILE_DOMAIN 0x000a
|
||||
#define CB_TAG_COMPILER 0x000b
|
||||
#define CB_TAG_LINKER 0x000c
|
||||
#define CB_TAG_ASSEMBLER 0x000d
|
||||
|
||||
struct cb_string {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
u8 string[0];
|
||||
};
|
||||
|
||||
#define CB_TAG_SERIAL 0x000f
|
||||
|
||||
struct cb_serial {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
#define CB_SERIAL_TYPE_IO_MAPPED 1
|
||||
#define CB_SERIAL_TYPE_MEMORY_MAPPED 2
|
||||
u32 type;
|
||||
u32 baseaddr;
|
||||
u32 baud;
|
||||
};
|
||||
|
||||
#define CB_TAG_CONSOLE 0x00010
|
||||
|
||||
struct cb_console {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
u16 type;
|
||||
};
|
||||
|
||||
#define CB_TAG_CONSOLE_SERIAL8250 0
|
||||
#define CB_TAG_CONSOLE_VGA 1 /* OBSOLETE */
|
||||
#define CB_TAG_CONSOLE_BTEXT 2 /* OBSOLETE */
|
||||
#define CB_TAG_CONSOLE_LOGBUF 3
|
||||
#define CB_TAG_CONSOLE_SROM 4 /* OBSOLETE */
|
||||
#define CB_TAG_CONSOLE_EHCI 5
|
||||
|
||||
#define CB_TAG_FORWARD 0x00011
|
||||
|
||||
struct cb_forward {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
u64 forward;
|
||||
};
|
||||
|
||||
#define CB_TAG_FRAMEBUFFER 0x0012
|
||||
struct cb_framebuffer {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
|
||||
u64 physical_address;
|
||||
u32 x_resolution;
|
||||
u32 y_resolution;
|
||||
u32 bytes_per_line;
|
||||
u8 bits_per_pixel;
|
||||
u8 red_mask_pos;
|
||||
u8 red_mask_size;
|
||||
u8 green_mask_pos;
|
||||
u8 green_mask_size;
|
||||
u8 blue_mask_pos;
|
||||
u8 blue_mask_size;
|
||||
u8 reserved_mask_pos;
|
||||
u8 reserved_mask_size;
|
||||
};
|
||||
|
||||
#define CB_TAG_CMOS_OPTION_TABLE 0x00c8
|
||||
struct cb_cmos_option_table {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
u32 header_length;
|
||||
};
|
||||
|
||||
#define CB_TAG_OPTION 0x00c9
|
||||
#define CMOS_MAX_NAME_LENGTH 32
|
||||
struct cb_cmos_entries {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
u32 bit;
|
||||
u32 length;
|
||||
u32 config;
|
||||
u32 config_id;
|
||||
u8 name[CMOS_MAX_NAME_LENGTH];
|
||||
};
|
||||
|
||||
|
||||
#define CB_TAG_OPTION_ENUM 0x00ca
|
||||
#define CMOS_MAX_TEXT_LENGTH 32
|
||||
struct cb_cmos_enums {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
u32 config_id;
|
||||
u32 value;
|
||||
u8 text[CMOS_MAX_TEXT_LENGTH];
|
||||
};
|
||||
|
||||
#define CB_TAG_OPTION_DEFAULTS 0x00cb
|
||||
#define CMOS_IMAGE_BUFFER_SIZE 128
|
||||
struct cb_cmos_defaults {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
u32 name_length;
|
||||
u8 name[CMOS_MAX_NAME_LENGTH];
|
||||
u8 default_set[CMOS_IMAGE_BUFFER_SIZE];
|
||||
};
|
||||
|
||||
#define CB_TAG_OPTION_CHECKSUM 0x00cc
|
||||
#define CHECKSUM_NONE 0
|
||||
#define CHECKSUM_PCBIOS 1
|
||||
struct cb_cmos_checksum {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
u32 range_start;
|
||||
u32 range_end;
|
||||
u32 location;
|
||||
u32 type;
|
||||
};
|
||||
|
||||
/* Helpful macros */
|
||||
|
||||
#define MEM_RANGE_COUNT(_rec) \
|
||||
(((_rec)->size - sizeof(*(_rec))) / sizeof((_rec)->map[0]))
|
||||
|
||||
#define MEM_RANGE_PTR(_rec, _idx) \
|
||||
(((u8 *) (_rec)) + sizeof(*(_rec)) \
|
||||
+ (sizeof((_rec)->map[0]) * (_idx)))
|
||||
|
||||
#define MB_VENDOR_STRING(_mb) \
|
||||
(((unsigned char *) ((_mb)->strings)) + (_mb)->vendor_idx)
|
||||
|
||||
#define MB_PART_STRING(_mb) \
|
||||
(((unsigned char *) ((_mb)->strings)) + (_mb)->part_number_idx)
|
||||
|
||||
#define UNPACK_CB64(_in) \
|
||||
((((u64) _in.hi) << 32) | _in.lo)
|
||||
|
||||
struct sysinfo_t;
|
||||
|
||||
int get_coreboot_info(struct sysinfo_t *info);
|
||||
|
||||
#endif
|
||||
@@ -24,30 +24,12 @@
|
||||
#ifndef _ASM_ZIMAGE_H_
|
||||
#define _ASM_ZIMAGE_H_
|
||||
|
||||
#include <asm/bootparam.h>
|
||||
#include <asm/e820.h>
|
||||
|
||||
/* linux i386 zImage/bzImage header. Offsets relative to
|
||||
* the start of the image */
|
||||
|
||||
#define CMD_LINE_MAGIC_OFF 0x020 /* Magic 0xa33f if the offset below is valid */
|
||||
#define CMD_LINE_OFFSET_OFF 0x022 /* Offset to comandline */
|
||||
#define SETUP_SECTS_OFF 0x1F1 /* The size of the setup in sectors */
|
||||
#define ROOT_FLAGS_OFF 0x1F2 /* If set, the root is mounted readonly */
|
||||
#define VID_MODE_OFF 0x1FA /* Video mode control */
|
||||
#define ROOT_DEV_OFF 0x1FC /* Default root device number */
|
||||
#define BOOT_FLAG_OFF 0x1FE /* 0xAA55 magic number */
|
||||
#define HEADER_OFF 0x202 /* Magic signature "HdrS" */
|
||||
#define VERSION_OFF 0x206 /* Boot protocol version supported */
|
||||
#define REALMODE_SWTCH_OFF 0x208 /* Boot loader hook (see below) */
|
||||
#define START_SYS_OFF 0x20C /* Points to kernel version string */
|
||||
#define TYPE_OF_LOADER_OFF 0x210 /* Boot loader identifier */
|
||||
#define LOADFLAGS_OFF 0x211 /* Boot protocol option flags */
|
||||
#define SETUP_MOVE_SIZE_OFF 0x212 /* Move to high memory size (used with hooks) */
|
||||
#define CODE32_START_OFF 0x214 /* Boot loader hook (see below) */
|
||||
#define RAMDISK_IMAGE_OFF 0x218 /* initrd load address (set by boot loader) */
|
||||
#define RAMDISK_SIZE_OFF 0x21C /* initrd size (set by boot loader) */
|
||||
#define HEAP_END_PTR_OFF 0x224 /* Free memory after setup end */
|
||||
#define CMD_LINE_PTR_OFF 0x228 /* 32-bit pointer to the kernel command line */
|
||||
|
||||
|
||||
#define HEAP_FLAG 0x80
|
||||
#define BIG_KERNEL_FLAG 0x01
|
||||
|
||||
@@ -65,10 +47,14 @@
|
||||
#define BZIMAGE_LOAD_ADDR 0x100000
|
||||
#define ZIMAGE_LOAD_ADDR 0x10000
|
||||
|
||||
void *load_zimage(char *image, unsigned long kernel_size,
|
||||
unsigned long initrd_addr, unsigned long initrd_size,
|
||||
int auto_boot);
|
||||
/* Implementation defined function to install an e820 map. */
|
||||
unsigned install_e820_map(unsigned max_entries, struct e820entry *);
|
||||
|
||||
void boot_zimage(void *setup_base);
|
||||
struct boot_params *load_zimage(char *image, unsigned long kernel_size,
|
||||
void **load_address);
|
||||
int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
|
||||
unsigned long initrd_addr, unsigned long initrd_size);
|
||||
|
||||
void boot_zimage(void *setup_base, void *load_address);
|
||||
|
||||
#endif
|
||||
|
||||
+15
-6
@@ -28,16 +28,20 @@
|
||||
#include <command.h>
|
||||
#include <image.h>
|
||||
#include <u-boot/zlib.h>
|
||||
#include <asm/bootparam.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include <asm/zimage.h>
|
||||
|
||||
#define COMMAND_LINE_OFFSET 0x9000
|
||||
|
||||
/*cmd_boot.c*/
|
||||
int do_bootm_linux(int flag, int argc, char * const argv[],
|
||||
bootm_headers_t *images)
|
||||
{
|
||||
void *base_ptr = NULL;
|
||||
ulong os_data, os_len;
|
||||
image_header_t *hdr;
|
||||
struct boot_params *base_ptr = NULL;
|
||||
ulong os_data, os_len;
|
||||
image_header_t *hdr;
|
||||
void *load_address;
|
||||
|
||||
#if defined(CONFIG_FIT)
|
||||
const void *data;
|
||||
@@ -74,14 +78,19 @@ int do_bootm_linux(int flag, int argc, char * const argv[],
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CMD_ZBOOT
|
||||
base_ptr = load_zimage((void *)os_data, os_len,
|
||||
images->rd_start, images->rd_end - images->rd_start, 0);
|
||||
base_ptr = load_zimage((void *)os_data, os_len, &load_address);
|
||||
#endif
|
||||
|
||||
if (NULL == base_ptr) {
|
||||
printf("## Kernel loading failed ...\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (setup_zimage(base_ptr, (char *)base_ptr + COMMAND_LINE_OFFSET,
|
||||
0, images->rd_start,
|
||||
images->rd_end - images->rd_start)) {
|
||||
printf("## Setting up boot parameters failed ...\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
@@ -92,7 +101,7 @@ int do_bootm_linux(int flag, int argc, char * const argv[],
|
||||
/* we assume that the kernel is in place */
|
||||
printf("\nStarting kernel ...\n\n");
|
||||
|
||||
boot_zimage(base_ptr);
|
||||
boot_zimage(base_ptr, load_address);
|
||||
/* does not return */
|
||||
|
||||
error:
|
||||
|
||||
+181
-97
@@ -1,4 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2011 The Chromium OS Authors.
|
||||
* (C) Copyright 2002
|
||||
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||
*
|
||||
@@ -51,6 +52,16 @@
|
||||
|
||||
#define COMMAND_LINE_SIZE 2048
|
||||
|
||||
unsigned generic_install_e820_map(unsigned max_entries,
|
||||
struct e820entry *entries)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned install_e820_map(unsigned max_entries,
|
||||
struct e820entry *entries)
|
||||
__attribute__((weak, alias("generic_install_e820_map")));
|
||||
|
||||
static void build_command_line(char *command_line, int auto_boot)
|
||||
{
|
||||
char *env_command_line;
|
||||
@@ -78,40 +89,47 @@ static void build_command_line(char *command_line, int auto_boot)
|
||||
printf("Kernel command line: \"%s\"\n", command_line);
|
||||
}
|
||||
|
||||
void *load_zimage(char *image, unsigned long kernel_size,
|
||||
unsigned long initrd_addr, unsigned long initrd_size,
|
||||
int auto_boot)
|
||||
static int kernel_magic_ok(struct setup_header *hdr)
|
||||
{
|
||||
void *setup_base;
|
||||
int setup_size;
|
||||
int bootproto;
|
||||
int big_image;
|
||||
void *load_address;
|
||||
struct setup_header *hdr;
|
||||
|
||||
hdr = (struct setup_header *)(image + SETUP_SECTS_OFF);
|
||||
|
||||
/* base address for real-mode segment */
|
||||
setup_base = (void *)DEFAULT_SETUP_BASE;
|
||||
|
||||
if (KERNEL_MAGIC != hdr->boot_flag) {
|
||||
printf("Error: Invalid Boot Flag (found 0x%04x, expected 0x%04x)\n",
|
||||
hdr->boot_flag, KERNEL_MAGIC);
|
||||
printf("Error: Invalid Boot Flag "
|
||||
"(found 0x%04x, expected 0x%04x)\n",
|
||||
hdr->boot_flag, KERNEL_MAGIC);
|
||||
return 0;
|
||||
} else {
|
||||
printf("Valid Boot Flag\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* determine boot protocol version */
|
||||
if (KERNEL_V2_MAGIC == hdr->header) {
|
||||
static int get_boot_protocol(struct setup_header *hdr)
|
||||
{
|
||||
if (hdr->header == KERNEL_V2_MAGIC) {
|
||||
printf("Magic signature found\n");
|
||||
|
||||
bootproto = hdr->version;
|
||||
return hdr->version;
|
||||
} else {
|
||||
/* Very old kernel */
|
||||
printf("Magic signature not found\n");
|
||||
bootproto = 0x0100;
|
||||
return 0x0100;
|
||||
}
|
||||
}
|
||||
|
||||
struct boot_params *load_zimage(char *image, unsigned long kernel_size,
|
||||
void **load_address)
|
||||
{
|
||||
struct boot_params *setup_base;
|
||||
int setup_size;
|
||||
int bootproto;
|
||||
int big_image;
|
||||
|
||||
struct boot_params *params = (struct boot_params *)image;
|
||||
struct setup_header *hdr = ¶ms->hdr;
|
||||
|
||||
/* base address for real-mode segment */
|
||||
setup_base = (struct boot_params *)DEFAULT_SETUP_BASE;
|
||||
|
||||
if (!kernel_magic_ok(hdr))
|
||||
return 0;
|
||||
|
||||
/* determine size of setup */
|
||||
if (0 == hdr->setup_sects) {
|
||||
@@ -126,27 +144,50 @@ void *load_zimage(char *image, unsigned long kernel_size,
|
||||
if (setup_size > SETUP_MAX_SIZE)
|
||||
printf("Error: Setup is too large (%d bytes)\n", setup_size);
|
||||
|
||||
/* determine boot protocol version */
|
||||
bootproto = get_boot_protocol(hdr);
|
||||
|
||||
printf("Using boot protocol version %x.%02x\n",
|
||||
(bootproto & 0xff00) >> 8, bootproto & 0xff);
|
||||
|
||||
if (bootproto >= 0x0200) {
|
||||
if (hdr->setup_sects >= 15) {
|
||||
printf("Linux kernel version %s\n",
|
||||
(char *)params +
|
||||
hdr->kernel_version + 0x200);
|
||||
} else {
|
||||
printf("Setup Sectors < 15 - "
|
||||
"Cannot print kernel version.\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* Determine image type */
|
||||
big_image = (bootproto >= 0x0200) &&
|
||||
(hdr->loadflags & BIG_KERNEL_FLAG);
|
||||
|
||||
/* Determine load address */
|
||||
load_address = (void *)(big_image ?
|
||||
BZIMAGE_LOAD_ADDR :
|
||||
ZIMAGE_LOAD_ADDR);
|
||||
if (big_image)
|
||||
*load_address = (void *)BZIMAGE_LOAD_ADDR;
|
||||
else
|
||||
*load_address = (void *)ZIMAGE_LOAD_ADDR;
|
||||
|
||||
#if defined CONFIG_ZBOOT_32
|
||||
printf("Building boot_params at 0x%8.8lx\n", (ulong)setup_base);
|
||||
memset(setup_base, 0, sizeof(*setup_base));
|
||||
setup_base->hdr = params->hdr;
|
||||
#else
|
||||
/* load setup */
|
||||
printf("Moving Real-Mode Code to 0x%8.8lx (%d bytes)\n",
|
||||
(ulong)setup_base, setup_size);
|
||||
memmove(setup_base, image, setup_size);
|
||||
#endif
|
||||
|
||||
printf("Using boot protocol version %x.%02x\n",
|
||||
(bootproto & 0xff00) >> 8, bootproto & 0xff);
|
||||
if (bootproto >= 0x0204)
|
||||
kernel_size = hdr->syssize * 16;
|
||||
else
|
||||
kernel_size -= setup_size;
|
||||
|
||||
if (bootproto == 0x0100) {
|
||||
*(u16 *)(setup_base + CMD_LINE_MAGIC_OFF) = COMMAND_LINE_MAGIC;
|
||||
*(u16 *)(setup_base + CMD_LINE_OFFSET_OFF) = COMMAND_LINE_OFFSET;
|
||||
|
||||
/*
|
||||
* A very old kernel MUST have its real-mode code
|
||||
* loaded at 0x90000
|
||||
@@ -157,33 +198,60 @@ void *load_zimage(char *image, unsigned long kernel_size,
|
||||
|
||||
/* Copy the command line */
|
||||
memmove((void *)0x99000,
|
||||
setup_base + COMMAND_LINE_OFFSET,
|
||||
(u8 *)setup_base + COMMAND_LINE_OFFSET,
|
||||
COMMAND_LINE_SIZE);
|
||||
|
||||
/* Relocated */
|
||||
setup_base = (void *)0x90000;
|
||||
setup_base = (struct boot_params *)0x90000;
|
||||
}
|
||||
|
||||
/* It is recommended to clear memory up to the 32K mark */
|
||||
memset((void *)0x90000 + setup_size, 0,
|
||||
SETUP_MAX_SIZE-setup_size);
|
||||
memset((u8 *)0x90000 + setup_size, 0,
|
||||
SETUP_MAX_SIZE - setup_size);
|
||||
}
|
||||
|
||||
/* We are now setting up the real-mode version of the header */
|
||||
hdr = (struct setup_header *)(setup_base + SETUP_SECTS_OFF);
|
||||
if (big_image) {
|
||||
if (kernel_size > BZIMAGE_MAX_SIZE) {
|
||||
printf("Error: bzImage kernel too big! "
|
||||
"(size: %ld, max: %d)\n",
|
||||
kernel_size, BZIMAGE_MAX_SIZE);
|
||||
return 0;
|
||||
}
|
||||
} else if ((kernel_size) > ZIMAGE_MAX_SIZE) {
|
||||
printf("Error: zImage kernel too big! (size: %ld, max: %d)\n",
|
||||
kernel_size, ZIMAGE_MAX_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
printf("Loading %s at address %p (%ld bytes)\n",
|
||||
big_image ? "bzImage" : "zImage", *load_address, kernel_size);
|
||||
|
||||
memmove(*load_address, image + setup_size, kernel_size);
|
||||
|
||||
return setup_base;
|
||||
}
|
||||
|
||||
int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
|
||||
unsigned long initrd_addr, unsigned long initrd_size)
|
||||
{
|
||||
struct setup_header *hdr = &setup_base->hdr;
|
||||
int bootproto = get_boot_protocol(hdr);
|
||||
|
||||
#if defined CONFIG_ZBOOT_32
|
||||
setup_base->e820_entries = install_e820_map(
|
||||
ARRAY_SIZE(setup_base->e820_map), setup_base->e820_map);
|
||||
#endif
|
||||
|
||||
if (bootproto == 0x0100) {
|
||||
setup_base->screen_info.cl_magic = COMMAND_LINE_MAGIC;
|
||||
setup_base->screen_info.cl_offset = COMMAND_LINE_OFFSET;
|
||||
}
|
||||
if (bootproto >= 0x0200) {
|
||||
hdr->type_of_loader = 8;
|
||||
|
||||
if (hdr->setup_sects >= 15)
|
||||
printf("Linux kernel version %s\n",
|
||||
(char *)(setup_base +
|
||||
(hdr->kernel_version + 0x200)));
|
||||
else
|
||||
printf("Setup Sectors < 15 - Cannot print kernel version.\n");
|
||||
|
||||
if (initrd_addr) {
|
||||
printf("Initial RAM disk at linear address 0x%08lx, size %ld bytes\n",
|
||||
printf("Initial RAM disk at linear address "
|
||||
"0x%08lx, size %ld bytes\n",
|
||||
initrd_addr, initrd_size);
|
||||
|
||||
hdr->ramdisk_image = initrd_addr;
|
||||
@@ -197,49 +265,42 @@ void *load_zimage(char *image, unsigned long kernel_size,
|
||||
}
|
||||
|
||||
if (bootproto >= 0x0202) {
|
||||
hdr->cmd_line_ptr = (u32)setup_base + COMMAND_LINE_OFFSET;
|
||||
hdr->cmd_line_ptr = (uintptr_t)cmd_line;
|
||||
} else if (bootproto >= 0x0200) {
|
||||
|
||||
*(u16 *)(setup_base + CMD_LINE_MAGIC_OFF) = COMMAND_LINE_MAGIC;
|
||||
*(u16 *)(setup_base + CMD_LINE_OFFSET_OFF) = COMMAND_LINE_OFFSET;
|
||||
setup_base->screen_info.cl_magic = COMMAND_LINE_MAGIC;
|
||||
setup_base->screen_info.cl_offset =
|
||||
(uintptr_t)cmd_line - (uintptr_t)setup_base;
|
||||
|
||||
hdr->setup_move_size = 0x9100;
|
||||
}
|
||||
|
||||
if (bootproto >= 0x0204)
|
||||
kernel_size = hdr->syssize * 16;
|
||||
else
|
||||
kernel_size -= setup_size;
|
||||
|
||||
|
||||
if (big_image) {
|
||||
if ((kernel_size) > BZIMAGE_MAX_SIZE) {
|
||||
printf("Error: bzImage kernel too big! (size: %ld, max: %d)\n",
|
||||
kernel_size, BZIMAGE_MAX_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
} else if ((kernel_size) > ZIMAGE_MAX_SIZE) {
|
||||
printf("Error: zImage kernel too big! (size: %ld, max: %d)\n",
|
||||
kernel_size, ZIMAGE_MAX_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* build command line at COMMAND_LINE_OFFSET */
|
||||
build_command_line(setup_base + COMMAND_LINE_OFFSET, auto_boot);
|
||||
|
||||
printf("Loading %czImage at address 0x%08x (%ld bytes)\n",
|
||||
big_image ? 'b' : ' ', (u32)load_address, kernel_size);
|
||||
|
||||
|
||||
memmove(load_address, image + setup_size, kernel_size);
|
||||
|
||||
/* ready for booting */
|
||||
return setup_base;
|
||||
build_command_line(cmd_line, auto_boot);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void boot_zimage(void *setup_base)
|
||||
void boot_zimage(void *setup_base, void *load_address)
|
||||
{
|
||||
printf("\nStarting kernel ...\n\n");
|
||||
|
||||
#if defined CONFIG_ZBOOT_32
|
||||
/*
|
||||
* Set %ebx, %ebp, and %edi to 0, %esi to point to the boot_params
|
||||
* structure, and then jump to the kernel. We assume that %cs is
|
||||
* 0x10, 4GB flat, and read/execute, and the data segments are 0x18,
|
||||
* 4GB flat, and read/write. U-boot is setting them up that way for
|
||||
* itself in arch/i386/cpu/cpu.c.
|
||||
*/
|
||||
__asm__ __volatile__ (
|
||||
"movl $0, %%ebp \n"
|
||||
"cli \n"
|
||||
"jmp %[kernel_entry] \n"
|
||||
:: [kernel_entry]"a"(load_address),
|
||||
[boot_params] "S"(setup_base),
|
||||
"b"(0), "D"(0)
|
||||
: "%ebp"
|
||||
);
|
||||
#else
|
||||
struct pt_regs regs;
|
||||
|
||||
memset(®s, 0, sizeof(struct pt_regs));
|
||||
@@ -248,56 +309,79 @@ void boot_zimage(void *setup_base)
|
||||
regs.xss = regs.xds;
|
||||
regs.esp = 0x9000;
|
||||
regs.eflags = 0;
|
||||
enter_realmode(((u32)setup_base+SETUP_START_OFFSET)>>4, 0, ®s,
|
||||
®s);
|
||||
enter_realmode(((u32)setup_base + SETUP_START_OFFSET) >> 4, 0,
|
||||
®s, ®s);
|
||||
#endif
|
||||
}
|
||||
|
||||
int do_zboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
|
||||
{
|
||||
void *base_ptr;
|
||||
struct boot_params *base_ptr;
|
||||
void *bzImage_addr = NULL;
|
||||
void *load_address;
|
||||
char *s;
|
||||
ulong bzImage_size = 0;
|
||||
ulong initrd_addr = 0;
|
||||
ulong initrd_size = 0;
|
||||
|
||||
disable_interrupts();
|
||||
|
||||
/* Setup board for maximum PC/AT Compatibility */
|
||||
setup_pcat_compatibility();
|
||||
|
||||
if (argc >= 2)
|
||||
if (argc >= 2) {
|
||||
/* argv[1] holds the address of the bzImage */
|
||||
s = argv[1];
|
||||
else
|
||||
} else {
|
||||
s = getenv("fileaddr");
|
||||
}
|
||||
|
||||
if (s)
|
||||
bzImage_addr = (void *)simple_strtoul(s, NULL, 16);
|
||||
|
||||
if (argc >= 3)
|
||||
if (argc >= 3) {
|
||||
/* argv[2] holds the size of the bzImage */
|
||||
bzImage_size = simple_strtoul(argv[2], NULL, 16);
|
||||
}
|
||||
|
||||
/* Lets look for*/
|
||||
base_ptr = load_zimage(bzImage_addr, bzImage_size, 0, 0, 0);
|
||||
if (argc >= 4)
|
||||
initrd_addr = simple_strtoul(argv[3], NULL, 16);
|
||||
if (argc >= 5)
|
||||
initrd_size = simple_strtoul(argv[4], NULL, 16);
|
||||
|
||||
/* Lets look for */
|
||||
base_ptr = load_zimage(bzImage_addr, bzImage_size, &load_address);
|
||||
|
||||
if (!base_ptr) {
|
||||
printf("## Kernel loading failed ...\n");
|
||||
} else {
|
||||
printf("## Transferring control to Linux (at address %08x) ...\n",
|
||||
(u32)base_ptr);
|
||||
|
||||
/* we assume that the kernel is in place */
|
||||
printf("\nStarting kernel ...\n\n");
|
||||
|
||||
boot_zimage(base_ptr);
|
||||
/* does not return */
|
||||
return -1;
|
||||
}
|
||||
if (setup_zimage(base_ptr, (char *)base_ptr + COMMAND_LINE_OFFSET,
|
||||
0, initrd_addr, initrd_size)) {
|
||||
printf("Setting up boot parameters failed ...\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("## Transferring control to Linux "
|
||||
"(at address %08x) ...\n",
|
||||
(u32)base_ptr);
|
||||
|
||||
/* we assume that the kernel is in place */
|
||||
boot_zimage(base_ptr, load_address);
|
||||
/* does not return */
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
U_BOOT_CMD(
|
||||
zboot, 2, 0, do_zboot,
|
||||
zboot, 5, 0, do_zboot,
|
||||
"Boot bzImage",
|
||||
""
|
||||
"[addr] [size] [initrd addr] [initrd size]\n"
|
||||
" addr - The optional starting address of the bzimage.\n"
|
||||
" If not set it defaults to the environment\n"
|
||||
" variable \"fileaddr\".\n"
|
||||
" size - The optional size of the bzimage. Defaults to\n"
|
||||
" zero.\n"
|
||||
" initrd addr - The address of the initrd image to use, if any.\n"
|
||||
" initrd size - The size of the initrd image to use, if any.\n"
|
||||
);
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
#
|
||||
# Copyright (c) 2011 The Chromium OS Authors.
|
||||
# (C) Copyright 2008
|
||||
# Graeme Russ, graeme.russ@gmail.com.
|
||||
#
|
||||
# (C) Copyright 2006
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# (C) Copyright 2002
|
||||
# Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
|
||||
#
|
||||
# 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 $(TOPDIR)/config.mk
|
||||
|
||||
LIB = $(obj)lib$(BOARD).o
|
||||
|
||||
COBJS-y += coreboot.o
|
||||
COBJS-$(CONFIG_PCI) += coreboot_pci.o
|
||||
SOBJS-y += coreboot_start16.o
|
||||
SOBJS-y += coreboot_start.o
|
||||
|
||||
SRCS := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
|
||||
|
||||
$(LIB): $(obj).depend $(OBJS) $(SOBJS)
|
||||
$(call cmd_link_o_target, $(OBJS) $(SOBJS))
|
||||
|
||||
#########################################################################
|
||||
|
||||
# defines $(obj).depend target
|
||||
include $(SRCTREE)/rules.mk
|
||||
|
||||
sinclude $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
* 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 <common.h>
|
||||
#include <asm/u-boot-x86.h>
|
||||
#include <flash.h>
|
||||
#include <netdev.h>
|
||||
#include <asm/arch-coreboot/tables.h>
|
||||
#include <asm/arch-coreboot/sysinfo.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
unsigned long monitor_flash_len = CONFIG_SYS_MONITOR_LEN;
|
||||
|
||||
/*
|
||||
* Miscellaneous platform dependent initializations
|
||||
*/
|
||||
int cpu_init_f(void)
|
||||
{
|
||||
int ret = get_coreboot_info(&lib_sysinfo);
|
||||
if (ret != 0)
|
||||
printf("Failed to parse coreboot tables.\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
int board_early_init_f(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int board_early_init_r(void)
|
||||
{
|
||||
/* CPU Speed to 100MHz */
|
||||
gd->cpu_clk = 100000000;
|
||||
|
||||
/* Crystal is 33.000MHz */
|
||||
gd->bus_clk = 33000000;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void show_boot_progress(int val)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
int last_stage_init(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_SYS_NO_FLASH
|
||||
ulong board_flash_get_legacy(ulong base, int banknum, flash_info_t *info)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
int board_eth_init(bd_t *bis)
|
||||
{
|
||||
return pci_eth_init(bis);
|
||||
}
|
||||
|
||||
void setup_pcat_compatibility()
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright (c) 2011 The Chromium OS Authors.
|
||||
* (C) Copyright 2008,2009
|
||||
* Graeme Russ, <graeme.russ@gmail.com>
|
||||
*
|
||||
* (C) Copyright 2002
|
||||
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
void pci_init_board(void)
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* 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
|
||||
*/
|
||||
|
||||
/* board early intialization */
|
||||
.globl early_board_init
|
||||
early_board_init:
|
||||
/* No 32-bit board specific initialisation */
|
||||
jmp early_board_init_ret
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* 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
|
||||
*/
|
||||
|
||||
/*
|
||||
* 16bit initialization code.
|
||||
* This code have to map the area of the boot flash
|
||||
* that is used by U-boot to its final destination.
|
||||
*/
|
||||
|
||||
.text
|
||||
.section .start16, "ax"
|
||||
.code16
|
||||
.globl board_init16
|
||||
board_init16:
|
||||
jmp board_init16_ret
|
||||
|
||||
.section .bios, "ax"
|
||||
.code16
|
||||
.globl realmode_reset
|
||||
.hidden realmode_reset
|
||||
.type realmode_reset, @function
|
||||
realmode_reset:
|
||||
|
||||
1: hlt
|
||||
jmp 1
|
||||
+2277
-1139
File diff suppressed because it is too large
Load Diff
+4008
-2004
File diff suppressed because it is too large
Load Diff
+1129
-565
File diff suppressed because it is too large
Load Diff
+5500
-2750
File diff suppressed because it is too large
Load Diff
+4872
-2436
File diff suppressed because it is too large
Load Diff
+4983
-2492
File diff suppressed because it is too large
Load Diff
+807
-404
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+1529
-765
File diff suppressed because it is too large
Load Diff
+2569
-1285
File diff suppressed because it is too large
Load Diff
+4136
-2068
File diff suppressed because it is too large
Load Diff
+3903
-1952
File diff suppressed because it is too large
Load Diff
+1405
-703
File diff suppressed because it is too large
Load Diff
+5034
-2517
File diff suppressed because it is too large
Load Diff
+5087
-2544
File diff suppressed because it is too large
Load Diff
+454
-227
@@ -1,227 +1,454 @@
|
||||
0x1f,0x8b,0x08,0x08,0x9c,0x03,0x94,0x3f,0x00,0x03,0x48,0x6f,0x6c,0x7a,0x48,0x65,
|
||||
0x72,0x5f,0x4c,0x6f,0x67,0x6f,0x5f,0x33,0x32,0x30,0x78,0x32,0x34,0x30,0x5f,0x6d,
|
||||
0x69,0x74,0x74,0x65,0x5f,0x31,0x36,0x67,0x2e,0x62,0x6d,0x70,0x00,0xed,0x9c,0xfd,
|
||||
0x6b,0x1b,0x47,0x1a,0xc7,0x9f,0xae,0xa2,0xe8,0x8c,0x4b,0x42,0xff,0x03,0xb1,0x26,
|
||||
0x2f,0x26,0xa5,0x67,0x2c,0x52,0xd7,0xf8,0xb8,0x1e,0xb1,0xfb,0x62,0xc2,0x81,0xa9,
|
||||
0xa3,0xe6,0x42,0x43,0x02,0x21,0xf1,0x35,0x57,0x38,0x4c,0x8a,0xbd,0x71,0x1d,0xe2,
|
||||
0xa3,0x70,0x89,0x4c,0x8f,0x62,0xdc,0x4b,0xed,0x8d,0x84,0xfd,0xd3,0x71,0x77,0x0e,
|
||||
0x94,0x90,0x50,0x7c,0x3a,0x09,0x29,0xb4,0xe4,0x87,0x9c,0x85,0xfc,0x17,0x14,0x42,
|
||||
0x8a,0x31,0xc5,0x62,0xd7,0xb4,0x04,0x63,0x24,0x76,0xee,0x79,0x66,0x66,0x57,0x2b,
|
||||
0xeb,0xd5,0x24,0x75,0x0b,0x9d,0x2f,0x28,0xfb,0x36,0x3b,0xf3,0xd9,0x67,0xe6,0x79,
|
||||
0x66,0x76,0x66,0x9d,0x13,0xbf,0x1f,0xff,0x1c,0xb8,0xc6,0xf1,0x77,0x14,0x7f,0xbf,
|
||||
0x7b,0x01,0x60,0x13,0xb7,0x2f,0xc0,0x3e,0x70,0x15,0x6b,0x17,0x3f,0xbf,0x5e,0x7a,
|
||||
0xe9,0x25,0xd0,0x75,0x1d,0x22,0x91,0x08,0x0c,0x0c,0x0c,0x40,0x34,0x1a,0x85,0x91,
|
||||
0x91,0x11,0x30,0x0c,0x03,0x62,0xb1,0x18,0x98,0xa6,0x09,0x4b,0x4b,0x4b,0x90,0x4a,
|
||||
0xa5,0x20,0x97,0xcb,0xc1,0x37,0xdf,0x7c,0x03,0x96,0x65,0x01,0x63,0x8c,0x7e,0x4a,
|
||||
0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,
|
||||
0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,
|
||||
0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0xbf,0x6c,0x95,0x72,
|
||||
0xf9,0x9f,0x1a,0xa1,0xa1,0xbe,0x87,0xd0,0x4f,0x8d,0xd0,0x50,0x9b,0x8a,0xef,0x99,
|
||||
0xa4,0xf8,0xb8,0x9c,0xdd,0xdf,0xe1,0xd8,0xb4,0x21,0x3e,0xb1,0x87,0xb2,0xaa,0x53,
|
||||
0xd9,0x55,0xa7,0x76,0xc8,0xb2,0x5b,0x48,0xe9,0xd8,0x56,0xd3,0x8c,0x2a,0xf5,0x34,
|
||||
0x0c,0x10,0xc8,0x72,0xbe,0xfb,0x00,0xbf,0xa1,0x3c,0x70,0x0b,0x93,0xec,0x07,0x9d,
|
||||
0x6b,0x75,0x5b,0x3f,0xc6,0x9c,0xaf,0x00,0x12,0xf7,0xf4,0x29,0xa7,0x5b,0xb7,0xd9,
|
||||
0x6c,0x47,0x96,0x6d,0x77,0x77,0x32,0xf6,0xad,0x7e,0x8e,0x15,0xaf,0x80,0xb6,0x3a,
|
||||
0x7b,0x88,0x3d,0x04,0x71,0xf3,0xc6,0x10,0x40,0x90,0xe9,0x3a,0xe6,0xf8,0x8e,0x3e,
|
||||
0xc5,0x66,0x71,0xe7,0x89,0xfe,0x3a,0x63,0x9f,0xe9,0xbf,0xc6,0x47,0xc0,0x8b,0x81,
|
||||
0x38,0x2b,0xe9,0x47,0xb0,0x14,0xbd,0xa3,0x25,0x52,0xfa,0x93,0x1d,0x02,0xdc,0x84,
|
||||
0x20,0xee,0x68,0x98,0xef,0x53,0xfe,0x67,0x3a,0x18,0x70,0xb8,0xec,0x2d,0x68,0x67,
|
||||
0x5b,0xf4,0x10,0x33,0x30,0xe5,0xe0,0x31,0x9b,0xd1,0x16,0xd9,0x76,0xb8,0x8d,0xb1,
|
||||
0x27,0x70,0x0e,0x7f,0x00,0x47,0x46,0x83,0xec,0x01,0xdd,0x7c,0x9d,0xb1,0x2e,0x20,
|
||||
0x3e,0x00,0xcc,0x67,0x08,0xce,0xb3,0x19,0x58,0xc4,0x9c,0x11,0x6d,0x16,0x0e,0x32,
|
||||
0xe7,0x0a,0x2f,0x8b,0x95,0x20,0x68,0x33,0x07,0xb4,0x16,0xf9,0x0e,0x75,0x03,0x1c,
|
||||
0x20,0x4e,0x2d,0x1a,0xc6,0xbc,0xb1,0x88,0x4e,0x73,0x8c,0xf3,0x91,0xfd,0xec,0x6d,
|
||||
0xe4,0xdb,0x84,0x80,0x89,0x25,0x2f,0x56,0xf1,0x39,0x43,0xd0,0x33,0x07,0xd8,0x34,
|
||||
0x1e,0xf7,0x24,0x47,0xf1,0x66,0x7c,0xb6,0xd0,0x87,0x15,0x7c,0x59,0xf6,0xd8,0xe5,
|
||||
0x2b,0x02,0x4c,0xcc,0x0d,0x69,0xc4,0xc7,0x5a,0xe7,0xeb,0x4d,0x27,0xc3,0xf0,0x22,
|
||||
0xf1,0xf5,0x59,0x33,0xa0,0x61,0x2e,0x58,0x7e,0x61,0x88,0xfd,0x80,0xb9,0x99,0xa6,
|
||||
0xc9,0xf9,0x1e,0x40,0x1f,0xbb,0x5f,0x93,0xaf,0x0b,0x32,0xf8,0x0b,0xb1,0xb5,0x3c,
|
||||
0xde,0xa0,0xb1,0xaf,0x20,0x30,0x55,0x34,0xed,0xda,0x7c,0x6b,0x64,0xb7,0xf5,0x8e,
|
||||
0xdd,0xf1,0x15,0x31,0xd5,0xd7,0x10,0xb2,0x91,0x8f,0x8a,0x00,0xcc,0xa5,0x1d,0xef,
|
||||
0x2e,0xb0,0x62,0x17,0xbc,0x4c,0x09,0x88,0xef,0x2e,0x16,0x83,0x6c,0x8b,0xac,0x8a,
|
||||
0x2f,0x0c,0x96,0xbd,0x4e,0xae,0x45,0x09,0xc1,0x19,0xc5,0x27,0x45,0x27,0xa8,0xcd,
|
||||
0x77,0x17,0xae,0x3b,0xcc,0xd9,0xd8,0x1d,0x9f,0x40,0x08,0xac,0x6e,0xe2,0xd3,0xb3,
|
||||
0x52,0x17,0xac,0x8e,0x52,0x76,0xa4,0xef,0x09,0x46,0xf0,0x3d,0x80,0x29,0xaa,0xf7,
|
||||
0x6c,0x2d,0xfb,0x61,0x53,0xea,0xe2,0xa1,0x89,0x1e,0x2e,0x8c,0x4c,0xa8,0x1d,0x7c,
|
||||
0x07,0x05,0xdf,0x90,0xfc,0xfb,0xb1,0x12,0x85,0xb2,0xdd,0xf0,0x6d,0x71,0xbe,0x00,
|
||||
0xde,0x34,0x04,0xd9,0x51,0x78,0xdd,0xe2,0x61,0x60,0x9b,0x0c,0x26,0xf8,0x1e,0x63,
|
||||
0xfd,0x62,0xf6,0xd5,0x7c,0x74,0x12,0xc9,0x89,0xaf,0x70,0x17,0x9f,0x10,0xe8,0x41,
|
||||
0xea,0xf0,0x61,0x85,0x60,0xbe,0x8e,0x6d,0xef,0x9a,0x0f,0x5b,0xb6,0x2d,0xe2,0x33,
|
||||
0xfa,0xdb,0x90,0xf0,0xdb,0x73,0x0c,0x63,0x86,0x26,0xf9,0xc8,0x7f,0x23,0xc0,0xf9,
|
||||
0x58,0x25,0xdf,0x63,0x74,0xab,0x48,0x18,0xeb,0xf7,0x1d,0xbc,0xe7,0x98,0x00,0xab,
|
||||
0xe2,0x13,0xf5,0xbb,0x1d,0x16,0x39,0x4f,0xb9,0xf5,0xdb,0x2a,0xde,0x32,0x70,0x17,
|
||||
0xad,0xe2,0x73,0x78,0x31,0xc4,0xe7,0xdc,0xe5,0xe7,0x6a,0xd8,0xaf,0xc8,0x93,0x87,
|
||||
0xc8,0xd8,0x10,0xca,0xd4,0xe1,0x93,0xf6,0x93,0x7c,0x8b,0xbb,0x6b,0x7f,0x5b,0x14,
|
||||
0xb2,0xce,0x33,0x5e,0xbf,0x16,0xaf,0xdf,0xdf,0x5a,0xd6,0x77,0xbc,0x9e,0xbe,0x86,
|
||||
0xe0,0x2a,0xe7,0x63,0x8e,0x95,0x5b,0xa1,0xaa,0xe4,0x7c,0x78,0x6d,0x1b,0x2d,0x6e,
|
||||
0x7d,0x4b,0x0f,0xc1,0xac,0x95,0xd4,0x50,0x08,0xdb,0x7e,0xe0,0xba,0xcd,0xca,0xf5,
|
||||
0x3b,0x45,0xed,0xd5,0xc7,0x37,0x03,0x07,0x4b,0x43,0xf4,0x77,0x8c,0x8f,0x21,0x5b,
|
||||
0x22,0xb4,0x96,0xf9,0xee,0x8a,0xb0,0xbc,0x49,0x55,0x87,0x4d,0x64,0x75,0x06,0x5e,
|
||||
0xa1,0x16,0xb9,0xc8,0xab,0x96,0xa3,0xb4,0x8b,0x84,0x5e,0xfb,0x43,0x2c,0xf2,0x28,
|
||||
0x6e,0x3f,0x92,0xc3,0xf9,0x8e,0x51,0x71,0x5d,0xf0,0xba,0xe0,0x3b,0xcf,0xb8,0xaf,
|
||||
0x08,0xbe,0x03,0xd4,0x84,0x0e,0xa2,0x73,0xe3,0xa5,0x07,0x80,0xed,0x0f,0x56,0x5b,
|
||||
0x8f,0x2f,0x64,0xf5,0x04,0xef,0x47,0x6c,0x8c,0x2d,0x60,0x3f,0xa4,0xec,0xee,0x63,
|
||||
0x0e,0xbc,0x9c,0x03,0x82,0x8f,0xb2,0x0a,0xc3,0xaa,0xe4,0x7b,0x19,0xf9,0xb1,0x92,
|
||||
0xc9,0xab,0xa9,0xb7,0x75,0xb0,0xb2,0x67,0x84,0xe1,0x46,0xe9,0x66,0x7e,0x9f,0xcd,
|
||||
0x8d,0x48,0x7c,0x9b,0xd0,0x46,0x0f,0x47,0xf1,0x25,0xc3,0x9c,0x19,0x40,0xff,0xc5,
|
||||
0x2b,0x25,0x08,0xb4,0xda,0xbf,0xf5,0xd8,0x62,0x1b,0x9c,0x18,0xc2,0x46,0xeb,0x74,
|
||||
0x69,0xd7,0x1e,0xe1,0x76,0x3b,0x1a,0x1d,0xee,0xc2,0x6a,0xe4,0x7c,0x57,0x4e,0xe7,
|
||||
0x6e,0xe1,0xbe,0xe4,0x03,0xea,0x4c,0x42,0x26,0xc0,0x02,0xdb,0xd2,0x26,0xb1,0xe2,
|
||||
0x0f,0x60,0x60,0x0e,0x26,0x96,0xcf,0xb2,0x6f,0x01,0x7a,0xe7,0xce,0x22,0x9a,0x76,
|
||||
0x66,0x8c,0xac,0x24,0xec,0x07,0x3d,0xb7,0x00,0x0d,0xbb,0x05,0xc1,0xdc,0x3d,0xde,
|
||||
0xbf,0x61,0x51,0x5d,0x44,0xdd,0x82,0x1e,0x43,0x20,0x23,0x38,0x35,0xd1,0xd2,0xc9,
|
||||
0x9b,0xbb,0xb1,0x05,0x6f,0xf1,0xc6,0x1c,0x14,0xf6,0x1b,0x85,0xe3,0x80,0x19,0x4a,
|
||||
0xbe,0x30,0x26,0xd5,0x00,0x0d,0x9f,0x21,0x43,0x0e,0x03,0xda,0x06,0x83,0xdf,0xa1,
|
||||
0xae,0x17,0xb9,0x9b,0x84,0xdb,0x91,0x8f,0x92,0x04,0x6c,0x97,0x8f,0xbb,0x2d,0x71,
|
||||
0x1d,0xc7,0xce,0x13,0xb7,0x1a,0x15,0xd6,0xd7,0x12,0xdf,0x03,0x19,0x8e,0x37,0xa1,
|
||||
0x13,0x8d,0x82,0x1d,0x10,0x0f,0x26,0x98,0xad,0xe4,0xe3,0xf6,0xc3,0x5a,0x41,0xa2,
|
||||
0xf3,0x92,0x2f,0xb4,0x8e,0x07,0x0b,0x33,0x3c,0x35,0x0f,0x1a,0x21,0x6c,0x0c,0x14,
|
||||
0x5f,0xf0,0x41,0x3e,0x03,0x7a,0x0e,0x00,0x1a,0x03,0x65,0xe8,0xb9,0x16,0x91,0xef,
|
||||
0x74,0x58,0xd0,0x7c,0x49,0x69,0x2d,0xe4,0x6b,0xc3,0x9b,0x5b,0x74,0x0f,0x97,0x6f,
|
||||
0xcb,0xb8,0xf6,0xdd,0x3b,0x87,0xa6,0x70,0xcf,0x59,0xeb,0xee,0x98,0xb4,0xd8,0xb6,
|
||||
0x41,0x9a,0x60,0x45,0x63,0x12,0x87,0x4d,0x63,0xdd,0x91,0x04,0xf7,0x4f,0x9b,0x2d,
|
||||
0x4f,0xd8,0x63,0x1d,0x7d,0xf6,0xf6,0x70,0x07,0x02,0x38,0x1b,0x51,0xfd,0x38,0x8e,
|
||||
0x5b,0x58,0x61,0x58,0xef,0xa1,0xed,0x97,0xdd,0xc7,0x27,0x31,0x59,0xe6,0xbe,0x7e,
|
||||
0x1a,0x8f,0x96,0x8d,0x55,0xb6,0x6e,0x2c,0x2c,0x77,0x1f,0xa7,0x21,0xa5,0x3d,0xa6,
|
||||
0x1f,0x5f,0xc0,0xad,0x31,0x59,0xfc,0x50,0xbf,0xd6,0x1a,0x1f,0xf7,0x7e,0xa9,0x62,
|
||||
0x5a,0x6c,0x93,0xa9,0xea,0x74,0xfc,0x9c,0x23,0xba,0x3c,0x56,0x8a,0x67,0x91,0x59,
|
||||
0xa4,0x2e,0xa5,0x56,0xc5,0xcd,0xa9,0x2c,0x3f,0x4c,0x66,0xc9,0x35,0xb2,0xee,0x69,
|
||||
0xc6,0x47,0xac,0xa9,0x2c,0x1f,0xb6,0xf2,0xfb,0x48,0x76,0xb1,0x46,0x11,0x75,0xf8,
|
||||
0xda,0x1c,0x7b,0x25,0xdb,0x5a,0x62,0xde,0x7f,0xb4,0x20,0x19,0xa6,0x9f,0x87,0x70,
|
||||
0x14,0xd0,0x31,0x2c,0x7a,0xf5,0xda,0x2a,0x9a,0x09,0x6f,0xdf,0xb5,0x5f,0x33,0x79,
|
||||
0x7c,0x49,0x73,0xb5,0x61,0xc2,0xe6,0xc2,0xa8,0x09,0x20,0xa2,0x6a,0x6d,0x79,0xf1,
|
||||
0x59,0x14,0xbc,0x3b,0xbe,0x51,0x1e,0xe7,0x9f,0x49,0x3f,0x70,0xbe,0xfa,0xc5,0x6e,
|
||||
0xf9,0xf8,0x76,0x6d,0xbf,0x99,0x67,0xe7,0x73,0x96,0x87,0x8f,0x4f,0x34,0xa8,0x05,
|
||||
0xbf,0xfd,0x70,0x38,0xba,0xe7,0xf6,0x6b,0x2a,0x9f,0xf3,0x38,0x63,0xd1,0x96,0xf8,
|
||||
0xa2,0x51,0xf9,0xc0,0x85,0xdc,0x2e,0x5f,0x27,0x9f,0x51,0xcd,0x5f,0x83,0xb9,0xac,
|
||||
0xea,0x17,0x68,0x25,0x25,0x25,0xa5,0x5f,0x9e,0xf6,0x36,0x42,0x3f,0x77,0xd5,0x9e,
|
||||
0x51,0x75,0x0a,0x49,0xe3,0x47,0xd7,0x55,0xb3,0xb9,0xe2,0x59,0xab,0xba,0x53,0x2a,
|
||||
0xde,0x82,0x3d,0x92,0x3e,0x10,0x69,0xa6,0xee,0x23,0xf1,0x1d,0x80,0xc5,0xa1,0xbd,
|
||||
0xc2,0x23,0xc0,0xa6,0x8a,0x44,0xae,0x55,0xe0,0xf1,0x19,0x8d,0x3d,0x93,0xf6,0xe6,
|
||||
0x48,0x63,0x5d,0x42,0xc2,0x41,0xff,0xb4,0xf9,0x95,0xbd,0xc4,0x03,0x38,0x6c,0x18,
|
||||
0x7f,0x6c,0xd0,0x48,0x47,0x46,0x2e,0x0e,0xf4,0xeb,0x9f,0x96,0xf9,0xd6,0xf7,0x16,
|
||||
0x0f,0xb4,0xf7,0x63,0x8d,0x74,0x13,0x09,0x07,0x22,0x9d,0xde,0x88,0xac,0xa8,0xef,
|
||||
0x31,0x1f,0xec,0x6f,0xc8,0x87,0x32,0x46,0x06,0xfa,0x5f,0x76,0x0d,0xf8,0xf5,0x9e,
|
||||
0xf3,0x35,0x31,0x20,0x6a,0xfc,0x52,0xff,0xab,0x72,0xc4,0xed,0xe8,0xe1,0xbd,0xe6,
|
||||
0x6b,0x6e,0xc0,0x98,0x71,0xb1,0x5f,0xce,0x7a,0xaf,0x77,0xef,0x3d,0x9f,0x76,0xb9,
|
||||
0x19,0xdf,0xcd,0xf1,0x8b,0xaf,0xf1,0x16,0xb8,0x1d,0xe9,0x6e,0x94,0x53,0xcf,0x84,
|
||||
0x11,0xfe,0x31,0x00,0xe7,0x9b,0x03,0xf6,0x0f,0x12,0xdf,0x53,0x1f,0x1f,0xfd,0x2f,
|
||||
0x73,0x74,0x33,0x6e,0x25,0x54,0x67,0x96,0xb1,0xe5,0x2e,0xef,0xaa,0xce,0xaf,0x68,
|
||||
0xba,0xee,0xed,0xbb,0xe5,0xc9,0x03,0xff,0xd6,0x4d,0xe1,0x65,0xe7,0xbf,0xa1,0x69,
|
||||
0x05,0xc7,0xc6,0xfb,0x5f,0x25,0x0f,0x59,0x1b,0xf6,0xf8,0xda,0x32,0x16,0x2d,0xd8,
|
||||
0x41,0x5b,0x9a,0x66,0x85,0x49,0x21,0xee,0x43,0xeb,0x3c,0xd7,0x5e,0xbc,0x4a,0x7a,
|
||||
0x02,0x67,0xf2,0x96,0xd4,0x9a,0x7b,0x6b,0x2f,0x9e,0x7a,0x40,0xcf,0xb3,0x60,0x59,
|
||||
0x5b,0x88,0x34,0xe9,0xa6,0x98,0x11,0xd9,0xd2,0x74,0x5c,0x27,0x1e,0x6e,0xba,0x37,
|
||||
0x34,0xad,0xe0,0xd8,0x8d,0x8b,0x27,0xc8,0x3b,0x6e,0x95,0xf9,0xda,0xb3,0xf4,0xfe,
|
||||
0x4c,0x19,0xca,0x55,0xc2,0x3e,0xe9,0xe2,0x7c,0xca,0xb7,0x37,0x2b,0x0e,0xbe,0x87,
|
||||
0x5e,0x2f,0x74,0x3e,0x2d,0xf3,0x31,0x3e,0xed,0x18,0x5a,0xa0,0xf9,0x05,0xd0,0xbc,
|
||||
0xb9,0x32,0xe2,0xcb,0x8a,0x39,0xed,0x84,0x38,0x14,0x6a,0xee,0x21,0xb1,0xf1,0x81,
|
||||
0x4f,0xb1,0xe8,0xb1,0x53,0x7a,0x5d,0xbe,0x45,0x46,0x6f,0xae,0xb6,0xc8,0xb6,0x37,
|
||||
0xe3,0xf1,0x49,0xc7,0xb7,0xec,0x2d,0xf7,0xd6,0xd7,0x7c,0x7c,0xdb,0x64,0xbf,0x6a,
|
||||
0x3e,0x2d,0xed,0xce,0xed,0x90,0xf6,0xb5,0xc0,0x77,0xea,0x24,0x3e,0xec,0x78,0x99,
|
||||
0x8f,0x32,0x9a,0xf1,0xf1,0x75,0x62,0x21,0x85,0x54,0x3c,0xed,0xf0,0x49,0x51,0xce,
|
||||
0xb7,0x92,0x4a,0xdd,0x13,0x7b,0x56,0x0a,0xf5,0xa5,0x7b,0xeb,0x91,0x4a,0x3e,0x78,
|
||||
0x8f,0x66,0xc9,0x31,0x71,0xaa,0xcc,0x17,0xca,0x33,0xe6,0x3d,0x4f,0x2b,0x0d,0xf0,
|
||||
0xc6,0xc8,0x80,0x5d,0x9b,0x2f,0xcd,0x67,0xd9,0x00,0xcb,0x72,0xb6,0x71,0x44,0x96,
|
||||
0xe1,0xcb,0x31,0x3d,0x44,0x95,0x34,0xcd,0x59,0xe8,0xa1,0x79,0x48,0x8b,0xc6,0x6a,
|
||||
0xb7,0x1a,0xf1,0x95,0x30,0xb1,0x39,0x2a,0xb2,0xc5,0xb6,0xd9,0x6e,0x33,0x77,0x09,
|
||||
0xb9,0x35,0xbe,0x9b,0x23,0xfd,0xd8,0xf6,0x8d,0x53,0xe1,0x7a,0x7c,0x18,0x7f,0x9c,
|
||||
0xa4,0x11,0x33,0x13,0xb6,0xb3,0x56,0xc1,0xc7,0x87,0x67,0x54,0xfa,0x5f,0x77,0xf2,
|
||||
0xed,0xf7,0xf1,0x15,0x2a,0xf9,0x5e,0xb4,0x65,0xab,0x11,0x6a,0xee,0x20,0xe8,0xc1,
|
||||
0x36,0x4b,0xce,0xf9,0xf8,0x32,0xb4,0xec,0x84,0x46,0x48,0xf3,0x49,0xb6,0x10,0xf2,
|
||||
0xad,0x63,0x6c,0x39,0x1d,0xe7,0x6b,0xa9,0x47,0xf0,0xaa,0xf0,0xd7,0x80,0x99,0xb1,
|
||||
0x7d,0x35,0xc5,0x9b,0x7b,0x46,0xf0,0x05,0x91,0xaf,0x88,0xdb,0x93,0x7c,0x6a,0xba,
|
||||
0xfc,0xd8,0x78,0xed,0x15,0xc6,0x31,0xbd,0x27,0x6a,0xc1,0x80,0x17,0x17,0x1c,0x73,
|
||||
0x07,0x1f,0x4d,0xb3,0xff,0x4a,0xf0,0xd1,0xfa,0x0f,0x95,0x19,0x98,0xc8,0xd0,0x5a,
|
||||
0x0c,0xf1,0x49,0x7f,0x9d,0x88,0x5b,0x4e,0xe5,0x98,0x2c,0x98,0x17,0xc6,0x09,0x66,
|
||||
0x04,0x5f,0x5f,0x35,0xdf,0x39,0xbf,0xfb,0xe2,0x13,0x4d,0xb7,0xc0,0xf7,0xe7,0x9a,
|
||||
0x7c,0xed,0x16,0x27,0xc1,0x31,0xac,0xc3,0x43,0x73,0x5b,0x82,0xec,0x7a,0xe4,0x0b,
|
||||
0xaf,0x7d,0x07,0xd1,0x80,0x4e,0x05,0x5f,0x48,0x56,0x1e,0xd9,0xbc,0x24,0xf9,0xdc,
|
||||
0x7c,0x89,0xef,0x09,0x2d,0xdc,0x95,0x4f,0xa1,0xb4,0xe6,0xf6,0x8b,0x8d,0x9c,0x2c,
|
||||
0x99,0x73,0xd1,0xb2,0x7f,0x64,0x68,0x05,0x50,0xb4,0xe4,0xa7,0x10,0x48,0x08,0x53,
|
||||
0x60,0xa1,0x09,0x9b,0x3d,0xe4,0x55,0x27,0xf9,0x34,0x03,0xcf,0x54,0xbc,0x12,0xd0,
|
||||
0x52,0xe7,0xa6,0xe4,0x74,0x6a,0xf2,0xb5,0xd9,0x6e,0x76,0xbb,0xe0,0xeb,0x2b,0xc5,
|
||||
0xe7,0x2e,0xf9,0xfa,0x0f,0xc6,0x36,0xb0,0x4d,0xd3,0x8a,0xc4,0x16,0x04,0xd3,0x72,
|
||||
0xaa,0x17,0x02,0x9f,0xd0,0xda,0x74,0x50,0x36,0x7d,0x52,0x0f,0x56,0xf9,0xb6,0x57,
|
||||
0xd2,0x19,0x93,0xcf,0x98,0x93,0xab,0xc7,0x25,0xdf,0x31,0x4b,0x38,0x90,0xf9,0x19,
|
||||
0x5f,0x65,0x65,0x6b,0x3a,0x35,0xbf,0xfb,0xfe,0x47,0x6a,0x81,0x6f,0x7c,0xb0,0x94,
|
||||
0xfa,0xcf,0x58,0x05,0x9f,0xf7,0x4a,0xc2,0xbd,0x44,0xc4,0x03,0x8a,0xb6,0xa5,0x0a,
|
||||
0x3e,0x6d,0x22,0x61,0x39,0xae,0x7d,0xb4,0x1d,0x0b,0x2b,0x2e,0x1f,0xd7,0x9a,0xe0,
|
||||
0x73,0x28,0xca,0x3b,0xbb,0xe7,0x2b,0xa6,0x92,0x8d,0xf8,0x64,0x3c,0x78,0x8f,0x56,
|
||||
0x67,0xfd,0x7c,0xd0,0x1b,0x77,0xec,0x2b,0xbb,0xe0,0x13,0x17,0x36,0x86,0x76,0xc9,
|
||||
0x77,0x79,0x23,0x95,0x34,0x3c,0xbe,0xd0,0x17,0x8c,0x7f,0x70,0xe4,0x58,0x44,0x12,
|
||||
0x8a,0x7b,0x7c,0x7d,0xc4,0x17,0xf0,0xf3,0x05,0x27,0xd2,0x9e,0x87,0x68,0x93,0xf2,
|
||||
0x23,0x25,0xc7,0xe2,0x9d,0x21,0x9d,0x6f,0xcb,0xcb,0xe3,0x2d,0x11,0x73,0x28,0x5b,
|
||||
0xca,0xb5,0x6b,0x57,0x7c,0xc6,0xe5,0x52,0x2a,0x79,0x33,0xe2,0xf1,0x51,0x46,0x05,
|
||||
0xec,0x94,0xf2,0x3b,0xf8,0xce,0x52,0xb4,0x08,0x2c,0xd8,0xbe,0x06,0xde,0x63,0x5a,
|
||||
0x6c,0xd4,0xe5,0x13,0xb7,0xf0,0x2e,0x2f,0x63,0x7b,0x7c,0x4e,0x11,0x8f,0x1f,0x4a,
|
||||
0x3e,0xca,0xd6,0x12,0xe3,0x84,0xd6,0xf9,0x6e,0x5e,0x2e,0xa5,0x57,0xe6,0x87,0xc3,
|
||||
0x7e,0xbe,0x47,0xa2,0x95,0x17,0xc3,0xc1,0xdb,0xb6,0x1b,0xef,0xae,0x93,0xeb,0x55,
|
||||
0xf2,0x05,0xe7,0xd2,0x76,0x49,0x56,0xd7,0x1f,0xa8,0x0f,0x24,0xf7,0x94,0x0e,0xe2,
|
||||
0xf2,0x3d,0x12,0x3d,0x20,0xe7,0x23,0xbf,0x4b,0xf8,0x06,0x3c,0xad,0xf1,0x7d,0xe0,
|
||||
0xa4,0x57,0xcc,0x61,0xdd,0xc7,0xe7,0xd0,0x2c,0x0c,0xf1,0x75,0x05,0x4d,0x5b,0xc6,
|
||||
0x13,0x8d,0x77,0x0a,0x5a,0x05,0x9f,0x46,0x89,0xa4,0x35,0x4e,0xe3,0x2d,0x69,0x5b,
|
||||
0xdc,0xfa,0x49,0x99,0xaf,0xb0,0x8c,0xc7,0x63,0x82,0xcf,0x79,0x64,0x18,0x57,0xe3,
|
||||
0xbe,0x06,0xd2,0x52,0x7c,0xe1,0x7c,0xc9,0x31,0x3f,0x1f,0x11,0x04,0x38,0x5f,0xc0,
|
||||
0xcc,0xb3,0x12,0x37,0x2d,0x85,0xd6,0x2d,0xd0,0x12,0x36,0x0f,0xbd,0x52,0x87,0xcc,
|
||||
0xbc,0x0c,0x3f,0xbc,0xb4,0xb4,0x7c,0x98,0xf7,0xca,0x7c,0xb3,0xf2,0xda,0x3e,0x6a,
|
||||
0xb8,0x98,0x51,0x47,0xc2,0x1f,0x01,0x91,0x6f,0x7a,0xde,0x6c,0x02,0xf8,0x01,0x4b,
|
||||
0x17,0x52,0x63,0x11,0x59,0xc1,0x6e,0xe7,0xa9,0x21,0x1f,0xd6,0xdd,0x60,0x5a,0xb6,
|
||||
0x17,0xfa,0x82,0x60,0x96,0xf3,0xf9,0x3b,0x8d,0x78,0xde,0xdf,0x5f,0x25,0xaa,0xf9,
|
||||
0xdc,0x8b,0x01,0xc9,0x07,0x79,0xbe,0xde,0xe4,0x52,0xc7,0x3e,0xd7,0xbb,0xb5,0xcb,
|
||||
0x8d,0xdf,0x43,0xae,0xb3,0x5c,0x21,0x35,0xe7,0xe7,0x2b,0x49,0x3e,0x67,0x08,0x63,
|
||||
0x08,0xe3,0x5f,0xcb,0xd1,0x7a,0x35,0x1e,0xc2,0x0e,0xbe,0xb3,0x16,0x73,0x57,0xea,
|
||||
0x7d,0x7c,0xb2,0xe3,0xa5,0x50,0xe5,0xfa,0x02,0x6f,0xb8,0x54,0x84,0xed,0xe7,0xdb,
|
||||
0x3f,0x3d,0x7b,0x24,0x76,0xe1,0x68,0x63,0xfb,0x7d,0xca,0x0a,0x56,0xce,0x8c,0xca,
|
||||
0x37,0x4c,0xde,0x50,0xb8,0x69,0x6c,0x1a,0xe9,0x06,0xb1,0x06,0x69,0xe0,0x77,0x86,
|
||||
0x5c,0x13,0xcf,0x5e,0xf3,0xf5,0xf9,0x20,0x96,0xe3,0x4b,0x5e,0x40,0x4b,0xd8,0xa2,
|
||||
0x6d,0xc9,0x8e,0x8d,0xf8,0xee,0xf9,0xf9,0x30,0xb0,0x1c,0x62,0xcc,0xd7,0x40,0xde,
|
||||
0xbe,0x81,0x6c,0x23,0x17,0x1a,0xc0,0x99,0xf3,0xb1,0x3c,0xf2,0x15,0x92,0x6e,0x05,
|
||||
0x7b,0x7c,0xe8,0xb9,0x14,0x3c,0xae,0x62,0xa3,0x2a,0x1a,0xa7,0xe9,0xb1,0xbf,0xab,
|
||||
0xe0,0x8b,0xe7,0x50,0x2b,0x14,0x72,0x3d,0x03,0xde,0xa9,0xe6,0x2b,0xe0,0x3b,0x53,
|
||||
0x6e,0x05,0xb8,0x63,0x61,0x28,0xcc,0x53,0xc8,0x2e,0xfb,0xc7,0xd5,0x8f,0x8f,0xbe,
|
||||
0x39,0xaf,0xff,0xbd,0xfe,0x30,0x70,0xda,0x34,0x63,0xd8,0xce,0x2c,0x2b,0x65,0x48,
|
||||
0x0f,0xa6,0x11,0x01,0xe7,0xfb,0x48,0xf2,0xc5,0x99,0x5c,0x60,0x73,0x1e,0x56,0xf0,
|
||||
0xa5,0xbd,0xbe,0xc2,0xe3,0x8b,0x57,0xf3,0xb9,0x9d,0x09,0xf1,0xb9,0xf2,0x5e,0xf8,
|
||||
0x20,0x76,0xe1,0xed,0x37,0xcd,0x7d,0x9f,0xbf,0x5d,0xdf,0x7c,0xa6,0x79,0x13,0x0d,
|
||||
0x9e,0xb7,0x56,0x4c,0x69,0xc0,0x80,0xdb,0xc2,0x3e,0x12,0xaf,0x44,0xc1,0xe9,0x84,
|
||||
0xc8,0xd9,0x79,0x44,0x71,0x7f,0xd2,0xe3,0x4b,0xd4,0xe4,0xe3,0xbe,0x79,0x6c,0x95,
|
||||
0x7f,0xd2,0xd9,0x96,0x2e,0xf3,0x41,0xc2,0xe5,0x73,0x0a,0x5e,0x7c,0xd6,0x62,0x27,
|
||||
0x62,0x03,0x17,0xde,0x32,0x0f,0xd7,0x73,0x10,0xd3,0xbc,0xbd,0x34,0x8d,0xb7,0xe4,
|
||||
0xb1,0x82,0x0d,0xf1,0x8e,0x19,0xc0,0x61,0xa7,0x4d,0x3b,0x13,0x79,0xc7,0x26,0xef,
|
||||
0x9b,0x30,0x33,0x54,0x29,0x4e,0x91,0x37,0xa5,0xc9,0xbc,0xb8,0x4a,0x30,0xf4,0xc1,
|
||||
0x1d,0xfd,0xbc,0x01,0x7b,0x7c,0xd5,0xda,0xa0,0x6d,0x27,0x26,0x22,0xbe,0x94,0x4d,
|
||||
0x9d,0x9d,0xc8,0xef,0x6f,0x16,0xef,0x34,0x2d,0xab,0x94,0xf4,0xda,0xeb,0xfe,0xf9,
|
||||
0xfe,0xd8,0x89,0xee,0xf0,0x74,0x3d,0x3e,0xb4,0xde,0xd2,0x12,0x05,0x76,0xac,0x60,
|
||||
0x34,0x20,0x07,0xd4,0xe8,0xf3,0x4d,0xce,0x87,0xfd,0x00,0x75,0x5e,0x01,0xc3,0xa4,
|
||||
0xa6,0x96,0xfa,0x07,0x37,0xef,0x19,0x79,0x15,0xa0,0x3c,0x99,0xed,0x05,0x18,0x53,
|
||||
0x5e,0x6c,0xc3,0x2d,0xff,0x96,0xc8,0x95,0xc8,0x4e,0xea,0x2f,0x5e,0xf5,0x0e,0xc6,
|
||||
0x2e,0xbc,0xff,0x96,0xf9,0x71,0xec,0xe8,0x7c,0x6c,0xc7,0xfc,0xb8,0x68,0x7a,0xe6,
|
||||
0xed,0x3b,0xa9,0xa4,0x2d,0xf8,0x72,0xc9,0xb9,0xe1,0x88,0xee,0xe3,0x3b,0x23,0x5e,
|
||||
0x6c,0x00,0x8e,0x4e,0x9b,0xd8,0x6f,0x9a,0x62,0xa4,0xf2,0xec,0x7c,0x63,0xe5,0xe1,
|
||||
0xc1,0xc4,0xf4,0xc7,0x83,0x51,0xe3,0xc4,0x8d,0xc1,0xf9,0xe9,0xda,0xd3,0xf8,0x4b,
|
||||
0xa9,0x54,0x92,0x37,0x0a,0xb4,0xfb,0x4a,0x72,0x2e,0x1a,0xd1,0xc3,0xf4,0x81,0x12,
|
||||
0xff,0xa6,0x09,0xff,0x91,0x7d,0x4a,0x10,0xf3,0x36,0x64,0xae,0x9a,0xbc,0x0a,0x10,
|
||||
0xf6,0x8a,0x09,0x97,0x77,0x34,0x37,0x91,0xd8,0x96,0xd3,0xf8,0x92,0x7b,0xda,0x67,
|
||||
0x9a,0xff,0xc4,0xf8,0x32,0x7d,0xe1,0xdf,0x75,0xe9,0x52,0xff,0xcd,0xb8,0x7c,0x85,
|
||||
0x95,0x79,0x23,0x1a,0xe9,0xf6,0xa6,0x7d,0x08,0x4e,0xcc,0xea,0x84,0x03,0x11,0xf4,
|
||||
0x1d,0xbd,0x4a,0x6e,0x91,0xd5,0x57,0xe4,0x75,0x7f,0x0a,0x77,0xb7,0x3c,0xaf,0x04,
|
||||
0x97,0x6f,0x9b,0x4b,0x57,0xfe,0x74,0xe7,0x5f,0x87,0x97,0xb0,0x99,0xd5,0x10,0xbd,
|
||||
0xfc,0xa7,0xa4,0x73,0x0a,0x03,0x8e,0x9d,0x8a,0x44,0xea,0x95,0xf6,0xdc,0xd5,0x11,
|
||||
0x5f,0x4a,0xdd,0xb9,0x7f,0xd8,0x38,0x31,0x78,0xa7,0x1e,0x5c,0x7a,0x25,0x23,0xdd,
|
||||
0x9e,0xa6,0x99,0x56,0x52,0xa6,0x71,0x29,0x1a,0x8d,0x9e,0xda,0xb1,0x12,0xf1,0xc6,
|
||||
0x40,0x74,0x20,0xfa,0x46,0xf3,0x15,0x8b,0x5d,0xea,0x24,0x47,0x48,0xc6,0x52,0x75,
|
||||
0x94,0xcb,0x61,0x64,0x77,0x3f,0x21,0x71,0x78,0x0d,0x23,0xa0,0x61,0x8c,0x10,0x23,
|
||||
0xca,0x5b,0x8a,0x88,0xbe,0x1b,0x8d,0x5e,0x92,0x27,0xbd,0x2b,0xb8,0x79,0x57,0xae,
|
||||
0x54,0xb8,0x2b,0x16,0xd1,0x2a,0xbd,0xeb,0xe6,0x50,0xb1,0x2b,0xee,0x7f,0x3f,0x4d,
|
||||
0x1d,0xd0,0xff,0x72,0xf5,0x85,0xdd,0x5a,0xda,0x8b,0xea,0x18,0xa8,0x1c,0x22,0x4c,
|
||||
0xd6,0x6e,0xab,0xcf,0x5f,0x19,0xab,0xb9,0x7c,0xdf,0xa1,0x38,0xc4,0x67,0xe5,0xea,
|
||||
0x19,0xfb,0xf9,0xab,0x05,0xbc,0x42,0xa6,0xcc,0xc7,0x24,0x31,0x75,0xfa,0x3f,0x3e,
|
||||
0x5c,0x2e,0x97,0x6f,0x48,0x56,0x65,0x3e,0xd9,0x04,0x7f,0x4e,0x2a,0xec,0xfc,0xd3,
|
||||
0xb6,0x9f,0x1b,0x60,0xf5,0x12,0x3b,0x75,0xf8,0x96,0xe8,0xc8,0x6d,0xb7,0x3f,0x77,
|
||||
0xc4,0x38,0xc0,0xf2,0x6f,0x7c,0xe7,0x9d,0xca,0xf3,0x4d,0x2f,0x57,0xca,0xa9,0x95,
|
||||
0xab,0xd8,0x54,0xc1,0xb9,0x88,0x75,0x2e,0x3c,0x2f,0x59,0xf4,0xed,0x01,0xfe,0x53,
|
||||
0x63,0x81,0x5c,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
|
||||
0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
|
||||
0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
|
||||
0xe9,0x67,0xac,0xff,0x03,0xdc,0x41,0xd4,0x19,0x76,0x96,0x00,0x00,
|
||||
0x1f, 0x8b, 0x08, 0x08, 0x9c, 0x03, 0x94, 0x3f,
|
||||
0x00, 0x03, 0x48, 0x6f, 0x6c, 0x7a, 0x48, 0x65,
|
||||
0x72, 0x5f, 0x4c, 0x6f, 0x67, 0x6f, 0x5f, 0x33,
|
||||
0x32, 0x30, 0x78, 0x32, 0x34, 0x30, 0x5f, 0x6d,
|
||||
0x69, 0x74, 0x74, 0x65, 0x5f, 0x31, 0x36, 0x67,
|
||||
0x2e, 0x62, 0x6d, 0x70, 0x00, 0xed, 0x9c, 0xfd,
|
||||
0x6b, 0x1b, 0x47, 0x1a, 0xc7, 0x9f, 0xae, 0xa2,
|
||||
0xe8, 0x8c, 0x4b, 0x42, 0xff, 0x03, 0xb1, 0x26,
|
||||
0x2f, 0x26, 0xa5, 0x67, 0x2c, 0x52, 0xd7, 0xf8,
|
||||
0xb8, 0x1e, 0xb1, 0xfb, 0x62, 0xc2, 0x81, 0xa9,
|
||||
0xa3, 0xe6, 0x42, 0x43, 0x02, 0x21, 0xf1, 0x35,
|
||||
0x57, 0x38, 0x4c, 0x8a, 0xbd, 0x71, 0x1d, 0xe2,
|
||||
0xa3, 0x70, 0x89, 0x4c, 0x8f, 0x62, 0xdc, 0x4b,
|
||||
0xed, 0x8d, 0x84, 0xfd, 0xd3, 0x71, 0x77, 0x0e,
|
||||
0x94, 0x90, 0x50, 0x7c, 0x3a, 0x09, 0x29, 0xb4,
|
||||
0xe4, 0x87, 0x9c, 0x85, 0xfc, 0x17, 0x14, 0x42,
|
||||
0x8a, 0x31, 0xc5, 0x62, 0xd7, 0xb4, 0x04, 0x63,
|
||||
0x24, 0x76, 0xee, 0x79, 0x66, 0x66, 0x57, 0x2b,
|
||||
0xeb, 0xd5, 0x24, 0x75, 0x0b, 0x9d, 0x2f, 0x28,
|
||||
0xfb, 0x36, 0x3b, 0xf3, 0xd9, 0x67, 0xe6, 0x79,
|
||||
0x66, 0x76, 0x66, 0x9d, 0x13, 0xbf, 0x1f, 0xff,
|
||||
0x1c, 0xb8, 0xc6, 0xf1, 0x77, 0x14, 0x7f, 0xbf,
|
||||
0x7b, 0x01, 0x60, 0x13, 0xb7, 0x2f, 0xc0, 0x3e,
|
||||
0x70, 0x15, 0x6b, 0x17, 0x3f, 0xbf, 0x5e, 0x7a,
|
||||
0xe9, 0x25, 0xd0, 0x75, 0x1d, 0x22, 0x91, 0x08,
|
||||
0x0c, 0x0c, 0x0c, 0x40, 0x34, 0x1a, 0x85, 0x91,
|
||||
0x91, 0x11, 0x30, 0x0c, 0x03, 0x62, 0xb1, 0x18,
|
||||
0x98, 0xa6, 0x09, 0x4b, 0x4b, 0x4b, 0x90, 0x4a,
|
||||
0xa5, 0x20, 0x97, 0xcb, 0xc1, 0x37, 0xdf, 0x7c,
|
||||
0x03, 0x96, 0x65, 0x01, 0x63, 0x8c, 0x7e, 0x4a,
|
||||
0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
|
||||
0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
|
||||
0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
|
||||
0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
|
||||
0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
|
||||
0x4a, 0x4a, 0x4a, 0x4a, 0xbf, 0x6c, 0x95, 0x72,
|
||||
0xf9, 0x9f, 0x1a, 0xa1, 0xa1, 0xbe, 0x87, 0xd0,
|
||||
0x4f, 0x8d, 0xd0, 0x50, 0x9b, 0x8a, 0xef, 0x99,
|
||||
0xa4, 0xf8, 0xb8, 0x9c, 0xdd, 0xdf, 0xe1, 0xd8,
|
||||
0xb4, 0x21, 0x3e, 0xb1, 0x87, 0xb2, 0xaa, 0x53,
|
||||
0xd9, 0x55, 0xa7, 0x76, 0xc8, 0xb2, 0x5b, 0x48,
|
||||
0xe9, 0xd8, 0x56, 0xd3, 0x8c, 0x2a, 0xf5, 0x34,
|
||||
0x0c, 0x10, 0xc8, 0x72, 0xbe, 0xfb, 0x00, 0xbf,
|
||||
0xa1, 0x3c, 0x70, 0x0b, 0x93, 0xec, 0x07, 0x9d,
|
||||
0x6b, 0x75, 0x5b, 0x3f, 0xc6, 0x9c, 0xaf, 0x00,
|
||||
0x12, 0xf7, 0xf4, 0x29, 0xa7, 0x5b, 0xb7, 0xd9,
|
||||
0x6c, 0x47, 0x96, 0x6d, 0x77, 0x77, 0x32, 0xf6,
|
||||
0xad, 0x7e, 0x8e, 0x15, 0xaf, 0x80, 0xb6, 0x3a,
|
||||
0x7b, 0x88, 0x3d, 0x04, 0x71, 0xf3, 0xc6, 0x10,
|
||||
0x40, 0x90, 0xe9, 0x3a, 0xe6, 0xf8, 0x8e, 0x3e,
|
||||
0xc5, 0x66, 0x71, 0xe7, 0x89, 0xfe, 0x3a, 0x63,
|
||||
0x9f, 0xe9, 0xbf, 0xc6, 0x47, 0xc0, 0x8b, 0x81,
|
||||
0x38, 0x2b, 0xe9, 0x47, 0xb0, 0x14, 0xbd, 0xa3,
|
||||
0x25, 0x52, 0xfa, 0x93, 0x1d, 0x02, 0xdc, 0x84,
|
||||
0x20, 0xee, 0x68, 0x98, 0xef, 0x53, 0xfe, 0x67,
|
||||
0x3a, 0x18, 0x70, 0xb8, 0xec, 0x2d, 0x68, 0x67,
|
||||
0x5b, 0xf4, 0x10, 0x33, 0x30, 0xe5, 0xe0, 0x31,
|
||||
0x9b, 0xd1, 0x16, 0xd9, 0x76, 0xb8, 0x8d, 0xb1,
|
||||
0x27, 0x70, 0x0e, 0x7f, 0x00, 0x47, 0x46, 0x83,
|
||||
0xec, 0x01, 0xdd, 0x7c, 0x9d, 0xb1, 0x2e, 0x20,
|
||||
0x3e, 0x00, 0xcc, 0x67, 0x08, 0xce, 0xb3, 0x19,
|
||||
0x58, 0xc4, 0x9c, 0x11, 0x6d, 0x16, 0x0e, 0x32,
|
||||
0xe7, 0x0a, 0x2f, 0x8b, 0x95, 0x20, 0x68, 0x33,
|
||||
0x07, 0xb4, 0x16, 0xf9, 0x0e, 0x75, 0x03, 0x1c,
|
||||
0x20, 0x4e, 0x2d, 0x1a, 0xc6, 0xbc, 0xb1, 0x88,
|
||||
0x4e, 0x73, 0x8c, 0xf3, 0x91, 0xfd, 0xec, 0x6d,
|
||||
0xe4, 0xdb, 0x84, 0x80, 0x89, 0x25, 0x2f, 0x56,
|
||||
0xf1, 0x39, 0x43, 0xd0, 0x33, 0x07, 0xd8, 0x34,
|
||||
0x1e, 0xf7, 0x24, 0x47, 0xf1, 0x66, 0x7c, 0xb6,
|
||||
0xd0, 0x87, 0x15, 0x7c, 0x59, 0xf6, 0xd8, 0xe5,
|
||||
0x2b, 0x02, 0x4c, 0xcc, 0x0d, 0x69, 0xc4, 0xc7,
|
||||
0x5a, 0xe7, 0xeb, 0x4d, 0x27, 0xc3, 0xf0, 0x22,
|
||||
0xf1, 0xf5, 0x59, 0x33, 0xa0, 0x61, 0x2e, 0x58,
|
||||
0x7e, 0x61, 0x88, 0xfd, 0x80, 0xb9, 0x99, 0xa6,
|
||||
0xc9, 0xf9, 0x1e, 0x40, 0x1f, 0xbb, 0x5f, 0x93,
|
||||
0xaf, 0x0b, 0x32, 0xf8, 0x0b, 0xb1, 0xb5, 0x3c,
|
||||
0xde, 0xa0, 0xb1, 0xaf, 0x20, 0x30, 0x55, 0x34,
|
||||
0xed, 0xda, 0x7c, 0x6b, 0x64, 0xb7, 0xf5, 0x8e,
|
||||
0xdd, 0xf1, 0x15, 0x31, 0xd5, 0xd7, 0x10, 0xb2,
|
||||
0x91, 0x8f, 0x8a, 0x00, 0xcc, 0xa5, 0x1d, 0xef,
|
||||
0x2e, 0xb0, 0x62, 0x17, 0xbc, 0x4c, 0x09, 0x88,
|
||||
0xef, 0x2e, 0x16, 0x83, 0x6c, 0x8b, 0xac, 0x8a,
|
||||
0x2f, 0x0c, 0x96, 0xbd, 0x4e, 0xae, 0x45, 0x09,
|
||||
0xc1, 0x19, 0xc5, 0x27, 0x45, 0x27, 0xa8, 0xcd,
|
||||
0x77, 0x17, 0xae, 0x3b, 0xcc, 0xd9, 0xd8, 0x1d,
|
||||
0x9f, 0x40, 0x08, 0xac, 0x6e, 0xe2, 0xd3, 0xb3,
|
||||
0x52, 0x17, 0xac, 0x8e, 0x52, 0x76, 0xa4, 0xef,
|
||||
0x09, 0x46, 0xf0, 0x3d, 0x80, 0x29, 0xaa, 0xf7,
|
||||
0x6c, 0x2d, 0xfb, 0x61, 0x53, 0xea, 0xe2, 0xa1,
|
||||
0x89, 0x1e, 0x2e, 0x8c, 0x4c, 0xa8, 0x1d, 0x7c,
|
||||
0x07, 0x05, 0xdf, 0x90, 0xfc, 0xfb, 0xb1, 0x12,
|
||||
0x85, 0xb2, 0xdd, 0xf0, 0x6d, 0x71, 0xbe, 0x00,
|
||||
0xde, 0x34, 0x04, 0xd9, 0x51, 0x78, 0xdd, 0xe2,
|
||||
0x61, 0x60, 0x9b, 0x0c, 0x26, 0xf8, 0x1e, 0x63,
|
||||
0xfd, 0x62, 0xf6, 0xd5, 0x7c, 0x74, 0x12, 0xc9,
|
||||
0x89, 0xaf, 0x70, 0x17, 0x9f, 0x10, 0xe8, 0x41,
|
||||
0xea, 0xf0, 0x61, 0x85, 0x60, 0xbe, 0x8e, 0x6d,
|
||||
0xef, 0x9a, 0x0f, 0x5b, 0xb6, 0x2d, 0xe2, 0x33,
|
||||
0xfa, 0xdb, 0x90, 0xf0, 0xdb, 0x73, 0x0c, 0x63,
|
||||
0x86, 0x26, 0xf9, 0xc8, 0x7f, 0x23, 0xc0, 0xf9,
|
||||
0x58, 0x25, 0xdf, 0x63, 0x74, 0xab, 0x48, 0x18,
|
||||
0xeb, 0xf7, 0x1d, 0xbc, 0xe7, 0x98, 0x00, 0xab,
|
||||
0xe2, 0x13, 0xf5, 0xbb, 0x1d, 0x16, 0x39, 0x4f,
|
||||
0xb9, 0xf5, 0xdb, 0x2a, 0xde, 0x32, 0x70, 0x17,
|
||||
0xad, 0xe2, 0x73, 0x78, 0x31, 0xc4, 0xe7, 0xdc,
|
||||
0xe5, 0xe7, 0x6a, 0xd8, 0xaf, 0xc8, 0x93, 0x87,
|
||||
0xc8, 0xd8, 0x10, 0xca, 0xd4, 0xe1, 0x93, 0xf6,
|
||||
0x93, 0x7c, 0x8b, 0xbb, 0x6b, 0x7f, 0x5b, 0x14,
|
||||
0xb2, 0xce, 0x33, 0x5e, 0xbf, 0x16, 0xaf, 0xdf,
|
||||
0xdf, 0x5a, 0xd6, 0x77, 0xbc, 0x9e, 0xbe, 0x86,
|
||||
0xe0, 0x2a, 0xe7, 0x63, 0x8e, 0x95, 0x5b, 0xa1,
|
||||
0xaa, 0xe4, 0x7c, 0x78, 0x6d, 0x1b, 0x2d, 0x6e,
|
||||
0x7d, 0x4b, 0x0f, 0xc1, 0xac, 0x95, 0xd4, 0x50,
|
||||
0x08, 0xdb, 0x7e, 0xe0, 0xba, 0xcd, 0xca, 0xf5,
|
||||
0x3b, 0x45, 0xed, 0xd5, 0xc7, 0x37, 0x03, 0x07,
|
||||
0x4b, 0x43, 0xf4, 0x77, 0x8c, 0x8f, 0x21, 0x5b,
|
||||
0x22, 0xb4, 0x96, 0xf9, 0xee, 0x8a, 0xb0, 0xbc,
|
||||
0x49, 0x55, 0x87, 0x4d, 0x64, 0x75, 0x06, 0x5e,
|
||||
0xa1, 0x16, 0xb9, 0xc8, 0xab, 0x96, 0xa3, 0xb4,
|
||||
0x8b, 0x84, 0x5e, 0xfb, 0x43, 0x2c, 0xf2, 0x28,
|
||||
0x6e, 0x3f, 0x92, 0xc3, 0xf9, 0x8e, 0x51, 0x71,
|
||||
0x5d, 0xf0, 0xba, 0xe0, 0x3b, 0xcf, 0xb8, 0xaf,
|
||||
0x08, 0xbe, 0x03, 0xd4, 0x84, 0x0e, 0xa2, 0x73,
|
||||
0xe3, 0xa5, 0x07, 0x80, 0xed, 0x0f, 0x56, 0x5b,
|
||||
0x8f, 0x2f, 0x64, 0xf5, 0x04, 0xef, 0x47, 0x6c,
|
||||
0x8c, 0x2d, 0x60, 0x3f, 0xa4, 0xec, 0xee, 0x63,
|
||||
0x0e, 0xbc, 0x9c, 0x03, 0x82, 0x8f, 0xb2, 0x0a,
|
||||
0xc3, 0xaa, 0xe4, 0x7b, 0x19, 0xf9, 0xb1, 0x92,
|
||||
0xc9, 0xab, 0xa9, 0xb7, 0x75, 0xb0, 0xb2, 0x67,
|
||||
0x84, 0xe1, 0x46, 0xe9, 0x66, 0x7e, 0x9f, 0xcd,
|
||||
0x8d, 0x48, 0x7c, 0x9b, 0xd0, 0x46, 0x0f, 0x47,
|
||||
0xf1, 0x25, 0xc3, 0x9c, 0x19, 0x40, 0xff, 0xc5,
|
||||
0x2b, 0x25, 0x08, 0xb4, 0xda, 0xbf, 0xf5, 0xd8,
|
||||
0x62, 0x1b, 0x9c, 0x18, 0xc2, 0x46, 0xeb, 0x74,
|
||||
0x69, 0xd7, 0x1e, 0xe1, 0x76, 0x3b, 0x1a, 0x1d,
|
||||
0xee, 0xc2, 0x6a, 0xe4, 0x7c, 0x57, 0x4e, 0xe7,
|
||||
0x6e, 0xe1, 0xbe, 0xe4, 0x03, 0xea, 0x4c, 0x42,
|
||||
0x26, 0xc0, 0x02, 0xdb, 0xd2, 0x26, 0xb1, 0xe2,
|
||||
0x0f, 0x60, 0x60, 0x0e, 0x26, 0x96, 0xcf, 0xb2,
|
||||
0x6f, 0x01, 0x7a, 0xe7, 0xce, 0x22, 0x9a, 0x76,
|
||||
0x66, 0x8c, 0xac, 0x24, 0xec, 0x07, 0x3d, 0xb7,
|
||||
0x00, 0x0d, 0xbb, 0x05, 0xc1, 0xdc, 0x3d, 0xde,
|
||||
0xbf, 0x61, 0x51, 0x5d, 0x44, 0xdd, 0x82, 0x1e,
|
||||
0x43, 0x20, 0x23, 0x38, 0x35, 0xd1, 0xd2, 0xc9,
|
||||
0x9b, 0xbb, 0xb1, 0x05, 0x6f, 0xf1, 0xc6, 0x1c,
|
||||
0x14, 0xf6, 0x1b, 0x85, 0xe3, 0x80, 0x19, 0x4a,
|
||||
0xbe, 0x30, 0x26, 0xd5, 0x00, 0x0d, 0x9f, 0x21,
|
||||
0x43, 0x0e, 0x03, 0xda, 0x06, 0x83, 0xdf, 0xa1,
|
||||
0xae, 0x17, 0xb9, 0x9b, 0x84, 0xdb, 0x91, 0x8f,
|
||||
0x92, 0x04, 0x6c, 0x97, 0x8f, 0xbb, 0x2d, 0x71,
|
||||
0x1d, 0xc7, 0xce, 0x13, 0xb7, 0x1a, 0x15, 0xd6,
|
||||
0xd7, 0x12, 0xdf, 0x03, 0x19, 0x8e, 0x37, 0xa1,
|
||||
0x13, 0x8d, 0x82, 0x1d, 0x10, 0x0f, 0x26, 0x98,
|
||||
0xad, 0xe4, 0xe3, 0xf6, 0xc3, 0x5a, 0x41, 0xa2,
|
||||
0xf3, 0x92, 0x2f, 0xb4, 0x8e, 0x07, 0x0b, 0x33,
|
||||
0x3c, 0x35, 0x0f, 0x1a, 0x21, 0x6c, 0x0c, 0x14,
|
||||
0x5f, 0xf0, 0x41, 0x3e, 0x03, 0x7a, 0x0e, 0x00,
|
||||
0x1a, 0x03, 0x65, 0xe8, 0xb9, 0x16, 0x91, 0xef,
|
||||
0x74, 0x58, 0xd0, 0x7c, 0x49, 0x69, 0x2d, 0xe4,
|
||||
0x6b, 0xc3, 0x9b, 0x5b, 0x74, 0x0f, 0x97, 0x6f,
|
||||
0xcb, 0xb8, 0xf6, 0xdd, 0x3b, 0x87, 0xa6, 0x70,
|
||||
0xcf, 0x59, 0xeb, 0xee, 0x98, 0xb4, 0xd8, 0xb6,
|
||||
0x41, 0x9a, 0x60, 0x45, 0x63, 0x12, 0x87, 0x4d,
|
||||
0x63, 0xdd, 0x91, 0x04, 0xf7, 0x4f, 0x9b, 0x2d,
|
||||
0x4f, 0xd8, 0x63, 0x1d, 0x7d, 0xf6, 0xf6, 0x70,
|
||||
0x07, 0x02, 0x38, 0x1b, 0x51, 0xfd, 0x38, 0x8e,
|
||||
0x5b, 0x58, 0x61, 0x58, 0xef, 0xa1, 0xed, 0x97,
|
||||
0xdd, 0xc7, 0x27, 0x31, 0x59, 0xe6, 0xbe, 0x7e,
|
||||
0x1a, 0x8f, 0x96, 0x8d, 0x55, 0xb6, 0x6e, 0x2c,
|
||||
0x2c, 0x77, 0x1f, 0xa7, 0x21, 0xa5, 0x3d, 0xa6,
|
||||
0x1f, 0x5f, 0xc0, 0xad, 0x31, 0x59, 0xfc, 0x50,
|
||||
0xbf, 0xd6, 0x1a, 0x1f, 0xf7, 0x7e, 0xa9, 0x62,
|
||||
0x5a, 0x6c, 0x93, 0xa9, 0xea, 0x74, 0xfc, 0x9c,
|
||||
0x23, 0xba, 0x3c, 0x56, 0x8a, 0x67, 0x91, 0x59,
|
||||
0xa4, 0x2e, 0xa5, 0x56, 0xc5, 0xcd, 0xa9, 0x2c,
|
||||
0x3f, 0x4c, 0x66, 0xc9, 0x35, 0xb2, 0xee, 0x69,
|
||||
0xc6, 0x47, 0xac, 0xa9, 0x2c, 0x1f, 0xb6, 0xf2,
|
||||
0xfb, 0x48, 0x76, 0xb1, 0x46, 0x11, 0x75, 0xf8,
|
||||
0xda, 0x1c, 0x7b, 0x25, 0xdb, 0x5a, 0x62, 0xde,
|
||||
0x7f, 0xb4, 0x20, 0x19, 0xa6, 0x9f, 0x87, 0x70,
|
||||
0x14, 0xd0, 0x31, 0x2c, 0x7a, 0xf5, 0xda, 0x2a,
|
||||
0x9a, 0x09, 0x6f, 0xdf, 0xb5, 0x5f, 0x33, 0x79,
|
||||
0x7c, 0x49, 0x73, 0xb5, 0x61, 0xc2, 0xe6, 0xc2,
|
||||
0xa8, 0x09, 0x20, 0xa2, 0x6a, 0x6d, 0x79, 0xf1,
|
||||
0x59, 0x14, 0xbc, 0x3b, 0xbe, 0x51, 0x1e, 0xe7,
|
||||
0x9f, 0x49, 0x3f, 0x70, 0xbe, 0xfa, 0xc5, 0x6e,
|
||||
0xf9, 0xf8, 0x76, 0x6d, 0xbf, 0x99, 0x67, 0xe7,
|
||||
0x73, 0x96, 0x87, 0x8f, 0x4f, 0x34, 0xa8, 0x05,
|
||||
0xbf, 0xfd, 0x70, 0x38, 0xba, 0xe7, 0xf6, 0x6b,
|
||||
0x2a, 0x9f, 0xf3, 0x38, 0x63, 0xd1, 0x96, 0xf8,
|
||||
0xa2, 0x51, 0xf9, 0xc0, 0x85, 0xdc, 0x2e, 0x5f,
|
||||
0x27, 0x9f, 0x51, 0xcd, 0x5f, 0x83, 0xb9, 0xac,
|
||||
0xea, 0x17, 0x68, 0x25, 0x25, 0x25, 0xa5, 0x5f,
|
||||
0x9e, 0xf6, 0x36, 0x42, 0x3f, 0x77, 0xd5, 0x9e,
|
||||
0x51, 0x75, 0x0a, 0x49, 0xe3, 0x47, 0xd7, 0x55,
|
||||
0xb3, 0xb9, 0xe2, 0x59, 0xab, 0xba, 0x53, 0x2a,
|
||||
0xde, 0x82, 0x3d, 0x92, 0x3e, 0x10, 0x69, 0xa6,
|
||||
0xee, 0x23, 0xf1, 0x1d, 0x80, 0xc5, 0xa1, 0xbd,
|
||||
0xc2, 0x23, 0xc0, 0xa6, 0x8a, 0x44, 0xae, 0x55,
|
||||
0xe0, 0xf1, 0x19, 0x8d, 0x3d, 0x93, 0xf6, 0xe6,
|
||||
0x48, 0x63, 0x5d, 0x42, 0xc2, 0x41, 0xff, 0xb4,
|
||||
0xf9, 0x95, 0xbd, 0xc4, 0x03, 0x38, 0x6c, 0x18,
|
||||
0x7f, 0x6c, 0xd0, 0x48, 0x47, 0x46, 0x2e, 0x0e,
|
||||
0xf4, 0xeb, 0x9f, 0x96, 0xf9, 0xd6, 0xf7, 0x16,
|
||||
0x0f, 0xb4, 0xf7, 0x63, 0x8d, 0x74, 0x13, 0x09,
|
||||
0x07, 0x22, 0x9d, 0xde, 0x88, 0xac, 0xa8, 0xef,
|
||||
0x31, 0x1f, 0xec, 0x6f, 0xc8, 0x87, 0x32, 0x46,
|
||||
0x06, 0xfa, 0x5f, 0x76, 0x0d, 0xf8, 0xf5, 0x9e,
|
||||
0xf3, 0x35, 0x31, 0x20, 0x6a, 0xfc, 0x52, 0xff,
|
||||
0xab, 0x72, 0xc4, 0xed, 0xe8, 0xe1, 0xbd, 0xe6,
|
||||
0x6b, 0x6e, 0xc0, 0x98, 0x71, 0xb1, 0x5f, 0xce,
|
||||
0x7a, 0xaf, 0x77, 0xef, 0x3d, 0x9f, 0x76, 0xb9,
|
||||
0x19, 0xdf, 0xcd, 0xf1, 0x8b, 0xaf, 0xf1, 0x16,
|
||||
0xb8, 0x1d, 0xe9, 0x6e, 0x94, 0x53, 0xcf, 0x84,
|
||||
0x11, 0xfe, 0x31, 0x00, 0xe7, 0x9b, 0x03, 0xf6,
|
||||
0x0f, 0x12, 0xdf, 0x53, 0x1f, 0x1f, 0xfd, 0x2f,
|
||||
0x73, 0x74, 0x33, 0x6e, 0x25, 0x54, 0x67, 0x96,
|
||||
0xb1, 0xe5, 0x2e, 0xef, 0xaa, 0xce, 0xaf, 0x68,
|
||||
0xba, 0xee, 0xed, 0xbb, 0xe5, 0xc9, 0x03, 0xff,
|
||||
0xd6, 0x4d, 0xe1, 0x65, 0xe7, 0xbf, 0xa1, 0x69,
|
||||
0x05, 0xc7, 0xc6, 0xfb, 0x5f, 0x25, 0x0f, 0x59,
|
||||
0x1b, 0xf6, 0xf8, 0xda, 0x32, 0x16, 0x2d, 0xd8,
|
||||
0x41, 0x5b, 0x9a, 0x66, 0x85, 0x49, 0x21, 0xee,
|
||||
0x43, 0xeb, 0x3c, 0xd7, 0x5e, 0xbc, 0x4a, 0x7a,
|
||||
0x02, 0x67, 0xf2, 0x96, 0xd4, 0x9a, 0x7b, 0x6b,
|
||||
0x2f, 0x9e, 0x7a, 0x40, 0xcf, 0xb3, 0x60, 0x59,
|
||||
0x5b, 0x88, 0x34, 0xe9, 0xa6, 0x98, 0x11, 0xd9,
|
||||
0xd2, 0x74, 0x5c, 0x27, 0x1e, 0x6e, 0xba, 0x37,
|
||||
0x34, 0xad, 0xe0, 0xd8, 0x8d, 0x8b, 0x27, 0xc8,
|
||||
0x3b, 0x6e, 0x95, 0xf9, 0xda, 0xb3, 0xf4, 0xfe,
|
||||
0x4c, 0x19, 0xca, 0x55, 0xc2, 0x3e, 0xe9, 0xe2,
|
||||
0x7c, 0xca, 0xb7, 0x37, 0x2b, 0x0e, 0xbe, 0x87,
|
||||
0x5e, 0x2f, 0x74, 0x3e, 0x2d, 0xf3, 0x31, 0x3e,
|
||||
0xed, 0x18, 0x5a, 0xa0, 0xf9, 0x05, 0xd0, 0xbc,
|
||||
0xb9, 0x32, 0xe2, 0xcb, 0x8a, 0x39, 0xed, 0x84,
|
||||
0x38, 0x14, 0x6a, 0xee, 0x21, 0xb1, 0xf1, 0x81,
|
||||
0x4f, 0xb1, 0xe8, 0xb1, 0x53, 0x7a, 0x5d, 0xbe,
|
||||
0x45, 0x46, 0x6f, 0xae, 0xb6, 0xc8, 0xb6, 0x37,
|
||||
0xe3, 0xf1, 0x49, 0xc7, 0xb7, 0xec, 0x2d, 0xf7,
|
||||
0xd6, 0xd7, 0x7c, 0x7c, 0xdb, 0x64, 0xbf, 0x6a,
|
||||
0x3e, 0x2d, 0xed, 0xce, 0xed, 0x90, 0xf6, 0xb5,
|
||||
0xc0, 0x77, 0xea, 0x24, 0x3e, 0xec, 0x78, 0x99,
|
||||
0x8f, 0x32, 0x9a, 0xf1, 0xf1, 0x75, 0x62, 0x21,
|
||||
0x85, 0x54, 0x3c, 0xed, 0xf0, 0x49, 0x51, 0xce,
|
||||
0xb7, 0x92, 0x4a, 0xdd, 0x13, 0x7b, 0x56, 0x0a,
|
||||
0xf5, 0xa5, 0x7b, 0xeb, 0x91, 0x4a, 0x3e, 0x78,
|
||||
0x8f, 0x66, 0xc9, 0x31, 0x71, 0xaa, 0xcc, 0x17,
|
||||
0xca, 0x33, 0xe6, 0x3d, 0x4f, 0x2b, 0x0d, 0xf0,
|
||||
0xc6, 0xc8, 0x80, 0x5d, 0x9b, 0x2f, 0xcd, 0x67,
|
||||
0xd9, 0x00, 0xcb, 0x72, 0xb6, 0x71, 0x44, 0x96,
|
||||
0xe1, 0xcb, 0x31, 0x3d, 0x44, 0x95, 0x34, 0xcd,
|
||||
0x59, 0xe8, 0xa1, 0x79, 0x48, 0x8b, 0xc6, 0x6a,
|
||||
0xb7, 0x1a, 0xf1, 0x95, 0x30, 0xb1, 0x39, 0x2a,
|
||||
0xb2, 0xc5, 0xb6, 0xd9, 0x6e, 0x33, 0x77, 0x09,
|
||||
0xb9, 0x35, 0xbe, 0x9b, 0x23, 0xfd, 0xd8, 0xf6,
|
||||
0x8d, 0x53, 0xe1, 0x7a, 0x7c, 0x18, 0x7f, 0x9c,
|
||||
0xa4, 0x11, 0x33, 0x13, 0xb6, 0xb3, 0x56, 0xc1,
|
||||
0xc7, 0x87, 0x67, 0x54, 0xfa, 0x5f, 0x77, 0xf2,
|
||||
0xed, 0xf7, 0xf1, 0x15, 0x2a, 0xf9, 0x5e, 0xb4,
|
||||
0x65, 0xab, 0x11, 0x6a, 0xee, 0x20, 0xe8, 0xc1,
|
||||
0x36, 0x4b, 0xce, 0xf9, 0xf8, 0x32, 0xb4, 0xec,
|
||||
0x84, 0x46, 0x48, 0xf3, 0x49, 0xb6, 0x10, 0xf2,
|
||||
0xad, 0x63, 0x6c, 0x39, 0x1d, 0xe7, 0x6b, 0xa9,
|
||||
0x47, 0xf0, 0xaa, 0xf0, 0xd7, 0x80, 0x99, 0xb1,
|
||||
0x7d, 0x35, 0xc5, 0x9b, 0x7b, 0x46, 0xf0, 0x05,
|
||||
0x91, 0xaf, 0x88, 0xdb, 0x93, 0x7c, 0x6a, 0xba,
|
||||
0xfc, 0xd8, 0x78, 0xed, 0x15, 0xc6, 0x31, 0xbd,
|
||||
0x27, 0x6a, 0xc1, 0x80, 0x17, 0x17, 0x1c, 0x73,
|
||||
0x07, 0x1f, 0x4d, 0xb3, 0xff, 0x4a, 0xf0, 0xd1,
|
||||
0xfa, 0x0f, 0x95, 0x19, 0x98, 0xc8, 0xd0, 0x5a,
|
||||
0x0c, 0xf1, 0x49, 0x7f, 0x9d, 0x88, 0x5b, 0x4e,
|
||||
0xe5, 0x98, 0x2c, 0x98, 0x17, 0xc6, 0x09, 0x66,
|
||||
0x04, 0x5f, 0x5f, 0x35, 0xdf, 0x39, 0xbf, 0xfb,
|
||||
0xe2, 0x13, 0x4d, 0xb7, 0xc0, 0xf7, 0xe7, 0x9a,
|
||||
0x7c, 0xed, 0x16, 0x27, 0xc1, 0x31, 0xac, 0xc3,
|
||||
0x43, 0x73, 0x5b, 0x82, 0xec, 0x7a, 0xe4, 0x0b,
|
||||
0xaf, 0x7d, 0x07, 0xd1, 0x80, 0x4e, 0x05, 0x5f,
|
||||
0x48, 0x56, 0x1e, 0xd9, 0xbc, 0x24, 0xf9, 0xdc,
|
||||
0x7c, 0x89, 0xef, 0x09, 0x2d, 0xdc, 0x95, 0x4f,
|
||||
0xa1, 0xb4, 0xe6, 0xf6, 0x8b, 0x8d, 0x9c, 0x2c,
|
||||
0x99, 0x73, 0xd1, 0xb2, 0x7f, 0x64, 0x68, 0x05,
|
||||
0x50, 0xb4, 0xe4, 0xa7, 0x10, 0x48, 0x08, 0x53,
|
||||
0x60, 0xa1, 0x09, 0x9b, 0x3d, 0xe4, 0x55, 0x27,
|
||||
0xf9, 0x34, 0x03, 0xcf, 0x54, 0xbc, 0x12, 0xd0,
|
||||
0x52, 0xe7, 0xa6, 0xe4, 0x74, 0x6a, 0xf2, 0xb5,
|
||||
0xd9, 0x6e, 0x76, 0xbb, 0xe0, 0xeb, 0x2b, 0xc5,
|
||||
0xe7, 0x2e, 0xf9, 0xfa, 0x0f, 0xc6, 0x36, 0xb0,
|
||||
0x4d, 0xd3, 0x8a, 0xc4, 0x16, 0x04, 0xd3, 0x72,
|
||||
0xaa, 0x17, 0x02, 0x9f, 0xd0, 0xda, 0x74, 0x50,
|
||||
0x36, 0x7d, 0x52, 0x0f, 0x56, 0xf9, 0xb6, 0x57,
|
||||
0xd2, 0x19, 0x93, 0xcf, 0x98, 0x93, 0xab, 0xc7,
|
||||
0x25, 0xdf, 0x31, 0x4b, 0x38, 0x90, 0xf9, 0x19,
|
||||
0x5f, 0x65, 0x65, 0x6b, 0x3a, 0x35, 0xbf, 0xfb,
|
||||
0xfe, 0x47, 0x6a, 0x81, 0x6f, 0x7c, 0xb0, 0x94,
|
||||
0xfa, 0xcf, 0x58, 0x05, 0x9f, 0xf7, 0x4a, 0xc2,
|
||||
0xbd, 0x44, 0xc4, 0x03, 0x8a, 0xb6, 0xa5, 0x0a,
|
||||
0x3e, 0x6d, 0x22, 0x61, 0x39, 0xae, 0x7d, 0xb4,
|
||||
0x1d, 0x0b, 0x2b, 0x2e, 0x1f, 0xd7, 0x9a, 0xe0,
|
||||
0x73, 0x28, 0xca, 0x3b, 0xbb, 0xe7, 0x2b, 0xa6,
|
||||
0x92, 0x8d, 0xf8, 0x64, 0x3c, 0x78, 0x8f, 0x56,
|
||||
0x67, 0xfd, 0x7c, 0xd0, 0x1b, 0x77, 0xec, 0x2b,
|
||||
0xbb, 0xe0, 0x13, 0x17, 0x36, 0x86, 0x76, 0xc9,
|
||||
0x77, 0x79, 0x23, 0x95, 0x34, 0x3c, 0xbe, 0xd0,
|
||||
0x17, 0x8c, 0x7f, 0x70, 0xe4, 0x58, 0x44, 0x12,
|
||||
0x8a, 0x7b, 0x7c, 0x7d, 0xc4, 0x17, 0xf0, 0xf3,
|
||||
0x05, 0x27, 0xd2, 0x9e, 0x87, 0x68, 0x93, 0xf2,
|
||||
0x23, 0x25, 0xc7, 0xe2, 0x9d, 0x21, 0x9d, 0x6f,
|
||||
0xcb, 0xcb, 0xe3, 0x2d, 0x11, 0x73, 0x28, 0x5b,
|
||||
0xca, 0xb5, 0x6b, 0x57, 0x7c, 0xc6, 0xe5, 0x52,
|
||||
0x2a, 0x79, 0x33, 0xe2, 0xf1, 0x51, 0x46, 0x05,
|
||||
0xec, 0x94, 0xf2, 0x3b, 0xf8, 0xce, 0x52, 0xb4,
|
||||
0x08, 0x2c, 0xd8, 0xbe, 0x06, 0xde, 0x63, 0x5a,
|
||||
0x6c, 0xd4, 0xe5, 0x13, 0xb7, 0xf0, 0x2e, 0x2f,
|
||||
0x63, 0x7b, 0x7c, 0x4e, 0x11, 0x8f, 0x1f, 0x4a,
|
||||
0x3e, 0xca, 0xd6, 0x12, 0xe3, 0x84, 0xd6, 0xf9,
|
||||
0x6e, 0x5e, 0x2e, 0xa5, 0x57, 0xe6, 0x87, 0xc3,
|
||||
0x7e, 0xbe, 0x47, 0xa2, 0x95, 0x17, 0xc3, 0xc1,
|
||||
0xdb, 0xb6, 0x1b, 0xef, 0xae, 0x93, 0xeb, 0x55,
|
||||
0xf2, 0x05, 0xe7, 0xd2, 0x76, 0x49, 0x56, 0xd7,
|
||||
0x1f, 0xa8, 0x0f, 0x24, 0xf7, 0x94, 0x0e, 0xe2,
|
||||
0xf2, 0x3d, 0x12, 0x3d, 0x20, 0xe7, 0x23, 0xbf,
|
||||
0x4b, 0xf8, 0x06, 0x3c, 0xad, 0xf1, 0x7d, 0xe0,
|
||||
0xa4, 0x57, 0xcc, 0x61, 0xdd, 0xc7, 0xe7, 0xd0,
|
||||
0x2c, 0x0c, 0xf1, 0x75, 0x05, 0x4d, 0x5b, 0xc6,
|
||||
0x13, 0x8d, 0x77, 0x0a, 0x5a, 0x05, 0x9f, 0x46,
|
||||
0x89, 0xa4, 0x35, 0x4e, 0xe3, 0x2d, 0x69, 0x5b,
|
||||
0xdc, 0xfa, 0x49, 0x99, 0xaf, 0xb0, 0x8c, 0xc7,
|
||||
0x63, 0x82, 0xcf, 0x79, 0x64, 0x18, 0x57, 0xe3,
|
||||
0xbe, 0x06, 0xd2, 0x52, 0x7c, 0xe1, 0x7c, 0xc9,
|
||||
0x31, 0x3f, 0x1f, 0x11, 0x04, 0x38, 0x5f, 0xc0,
|
||||
0xcc, 0xb3, 0x12, 0x37, 0x2d, 0x85, 0xd6, 0x2d,
|
||||
0xd0, 0x12, 0x36, 0x0f, 0xbd, 0x52, 0x87, 0xcc,
|
||||
0xbc, 0x0c, 0x3f, 0xbc, 0xb4, 0xb4, 0x7c, 0x98,
|
||||
0xf7, 0xca, 0x7c, 0xb3, 0xf2, 0xda, 0x3e, 0x6a,
|
||||
0xb8, 0x98, 0x51, 0x47, 0xc2, 0x1f, 0x01, 0x91,
|
||||
0x6f, 0x7a, 0xde, 0x6c, 0x02, 0xf8, 0x01, 0x4b,
|
||||
0x17, 0x52, 0x63, 0x11, 0x59, 0xc1, 0x6e, 0xe7,
|
||||
0xa9, 0x21, 0x1f, 0xd6, 0xdd, 0x60, 0x5a, 0xb6,
|
||||
0x17, 0xfa, 0x82, 0x60, 0x96, 0xf3, 0xf9, 0x3b,
|
||||
0x8d, 0x78, 0xde, 0xdf, 0x5f, 0x25, 0xaa, 0xf9,
|
||||
0xdc, 0x8b, 0x01, 0xc9, 0x07, 0x79, 0xbe, 0xde,
|
||||
0xe4, 0x52, 0xc7, 0x3e, 0xd7, 0xbb, 0xb5, 0xcb,
|
||||
0x8d, 0xdf, 0x43, 0xae, 0xb3, 0x5c, 0x21, 0x35,
|
||||
0xe7, 0xe7, 0x2b, 0x49, 0x3e, 0x67, 0x08, 0x63,
|
||||
0x08, 0xe3, 0x5f, 0xcb, 0xd1, 0x7a, 0x35, 0x1e,
|
||||
0xc2, 0x0e, 0xbe, 0xb3, 0x16, 0x73, 0x57, 0xea,
|
||||
0x7d, 0x7c, 0xb2, 0xe3, 0xa5, 0x50, 0xe5, 0xfa,
|
||||
0x02, 0x6f, 0xb8, 0x54, 0x84, 0xed, 0xe7, 0xdb,
|
||||
0x3f, 0x3d, 0x7b, 0x24, 0x76, 0xe1, 0x68, 0x63,
|
||||
0xfb, 0x7d, 0xca, 0x0a, 0x56, 0xce, 0x8c, 0xca,
|
||||
0x37, 0x4c, 0xde, 0x50, 0xb8, 0x69, 0x6c, 0x1a,
|
||||
0xe9, 0x06, 0xb1, 0x06, 0x69, 0xe0, 0x77, 0x86,
|
||||
0x5c, 0x13, 0xcf, 0x5e, 0xf3, 0xf5, 0xf9, 0x20,
|
||||
0x96, 0xe3, 0x4b, 0x5e, 0x40, 0x4b, 0xd8, 0xa2,
|
||||
0x6d, 0xc9, 0x8e, 0x8d, 0xf8, 0xee, 0xf9, 0xf9,
|
||||
0x30, 0xb0, 0x1c, 0x62, 0xcc, 0xd7, 0x40, 0xde,
|
||||
0xbe, 0x81, 0x6c, 0x23, 0x17, 0x1a, 0xc0, 0x99,
|
||||
0xf3, 0xb1, 0x3c, 0xf2, 0x15, 0x92, 0x6e, 0x05,
|
||||
0x7b, 0x7c, 0xe8, 0xb9, 0x14, 0x3c, 0xae, 0x62,
|
||||
0xa3, 0x2a, 0x1a, 0xa7, 0xe9, 0xb1, 0xbf, 0xab,
|
||||
0xe0, 0x8b, 0xe7, 0x50, 0x2b, 0x14, 0x72, 0x3d,
|
||||
0x03, 0xde, 0xa9, 0xe6, 0x2b, 0xe0, 0x3b, 0x53,
|
||||
0x6e, 0x05, 0xb8, 0x63, 0x61, 0x28, 0xcc, 0x53,
|
||||
0xc8, 0x2e, 0xfb, 0xc7, 0xd5, 0x8f, 0x8f, 0xbe,
|
||||
0x39, 0xaf, 0xff, 0xbd, 0xfe, 0x30, 0x70, 0xda,
|
||||
0x34, 0x63, 0xd8, 0xce, 0x2c, 0x2b, 0x65, 0x48,
|
||||
0x0f, 0xa6, 0x11, 0x01, 0xe7, 0xfb, 0x48, 0xf2,
|
||||
0xc5, 0x99, 0x5c, 0x60, 0x73, 0x1e, 0x56, 0xf0,
|
||||
0xa5, 0xbd, 0xbe, 0xc2, 0xe3, 0x8b, 0x57, 0xf3,
|
||||
0xb9, 0x9d, 0x09, 0xf1, 0xb9, 0xf2, 0x5e, 0xf8,
|
||||
0x20, 0x76, 0xe1, 0xed, 0x37, 0xcd, 0x7d, 0x9f,
|
||||
0xbf, 0x5d, 0xdf, 0x7c, 0xa6, 0x79, 0x13, 0x0d,
|
||||
0x9e, 0xb7, 0x56, 0x4c, 0x69, 0xc0, 0x80, 0xdb,
|
||||
0xc2, 0x3e, 0x12, 0xaf, 0x44, 0xc1, 0xe9, 0x84,
|
||||
0xc8, 0xd9, 0x79, 0x44, 0x71, 0x7f, 0xd2, 0xe3,
|
||||
0x4b, 0xd4, 0xe4, 0xe3, 0xbe, 0x79, 0x6c, 0x95,
|
||||
0x7f, 0xd2, 0xd9, 0x96, 0x2e, 0xf3, 0x41, 0xc2,
|
||||
0xe5, 0x73, 0x0a, 0x5e, 0x7c, 0xd6, 0x62, 0x27,
|
||||
0x62, 0x03, 0x17, 0xde, 0x32, 0x0f, 0xd7, 0x73,
|
||||
0x10, 0xd3, 0xbc, 0xbd, 0x34, 0x8d, 0xb7, 0xe4,
|
||||
0xb1, 0x82, 0x0d, 0xf1, 0x8e, 0x19, 0xc0, 0x61,
|
||||
0xa7, 0x4d, 0x3b, 0x13, 0x79, 0xc7, 0x26, 0xef,
|
||||
0x9b, 0x30, 0x33, 0x54, 0x29, 0x4e, 0x91, 0x37,
|
||||
0xa5, 0xc9, 0xbc, 0xb8, 0x4a, 0x30, 0xf4, 0xc1,
|
||||
0x1d, 0xfd, 0xbc, 0x01, 0x7b, 0x7c, 0xd5, 0xda,
|
||||
0xa0, 0x6d, 0x27, 0x26, 0x22, 0xbe, 0x94, 0x4d,
|
||||
0x9d, 0x9d, 0xc8, 0xef, 0x6f, 0x16, 0xef, 0x34,
|
||||
0x2d, 0xab, 0x94, 0xf4, 0xda, 0xeb, 0xfe, 0xf9,
|
||||
0xfe, 0xd8, 0x89, 0xee, 0xf0, 0x74, 0x3d, 0x3e,
|
||||
0xb4, 0xde, 0xd2, 0x12, 0x05, 0x76, 0xac, 0x60,
|
||||
0x34, 0x20, 0x07, 0xd4, 0xe8, 0xf3, 0x4d, 0xce,
|
||||
0x87, 0xfd, 0x00, 0x75, 0x5e, 0x01, 0xc3, 0xa4,
|
||||
0xa6, 0x96, 0xfa, 0x07, 0x37, 0xef, 0x19, 0x79,
|
||||
0x15, 0xa0, 0x3c, 0x99, 0xed, 0x05, 0x18, 0x53,
|
||||
0x5e, 0x6c, 0xc3, 0x2d, 0xff, 0x96, 0xc8, 0x95,
|
||||
0xc8, 0x4e, 0xea, 0x2f, 0x5e, 0xf5, 0x0e, 0xc6,
|
||||
0x2e, 0xbc, 0xff, 0x96, 0xf9, 0x71, 0xec, 0xe8,
|
||||
0x7c, 0x6c, 0xc7, 0xfc, 0xb8, 0x68, 0x7a, 0xe6,
|
||||
0xed, 0x3b, 0xa9, 0xa4, 0x2d, 0xf8, 0x72, 0xc9,
|
||||
0xb9, 0xe1, 0x88, 0xee, 0xe3, 0x3b, 0x23, 0x5e,
|
||||
0x6c, 0x00, 0x8e, 0x4e, 0x9b, 0xd8, 0x6f, 0x9a,
|
||||
0x62, 0xa4, 0xf2, 0xec, 0x7c, 0x63, 0xe5, 0xe1,
|
||||
0xc1, 0xc4, 0xf4, 0xc7, 0x83, 0x51, 0xe3, 0xc4,
|
||||
0x8d, 0xc1, 0xf9, 0xe9, 0xda, 0xd3, 0xf8, 0x4b,
|
||||
0xa9, 0x54, 0x92, 0x37, 0x0a, 0xb4, 0xfb, 0x4a,
|
||||
0x72, 0x2e, 0x1a, 0xd1, 0xc3, 0xf4, 0x81, 0x12,
|
||||
0xff, 0xa6, 0x09, 0xff, 0x91, 0x7d, 0x4a, 0x10,
|
||||
0xf3, 0x36, 0x64, 0xae, 0x9a, 0xbc, 0x0a, 0x10,
|
||||
0xf6, 0x8a, 0x09, 0x97, 0x77, 0x34, 0x37, 0x91,
|
||||
0xd8, 0x96, 0xd3, 0xf8, 0x92, 0x7b, 0xda, 0x67,
|
||||
0x9a, 0xff, 0xc4, 0xf8, 0x32, 0x7d, 0xe1, 0xdf,
|
||||
0x75, 0xe9, 0x52, 0xff, 0xcd, 0xb8, 0x7c, 0x85,
|
||||
0x95, 0x79, 0x23, 0x1a, 0xe9, 0xf6, 0xa6, 0x7d,
|
||||
0x08, 0x4e, 0xcc, 0xea, 0x84, 0x03, 0x11, 0xf4,
|
||||
0x1d, 0xbd, 0x4a, 0x6e, 0x91, 0xd5, 0x57, 0xe4,
|
||||
0x75, 0x7f, 0x0a, 0x77, 0xb7, 0x3c, 0xaf, 0x04,
|
||||
0x97, 0x6f, 0x9b, 0x4b, 0x57, 0xfe, 0x74, 0xe7,
|
||||
0x5f, 0x87, 0x97, 0xb0, 0x99, 0xd5, 0x10, 0xbd,
|
||||
0xfc, 0xa7, 0xa4, 0x73, 0x0a, 0x03, 0x8e, 0x9d,
|
||||
0x8a, 0x44, 0xea, 0x95, 0xf6, 0xdc, 0xd5, 0x11,
|
||||
0x5f, 0x4a, 0xdd, 0xb9, 0x7f, 0xd8, 0x38, 0x31,
|
||||
0x78, 0xa7, 0x1e, 0x5c, 0x7a, 0x25, 0x23, 0xdd,
|
||||
0x9e, 0xa6, 0x99, 0x56, 0x52, 0xa6, 0x71, 0x29,
|
||||
0x1a, 0x8d, 0x9e, 0xda, 0xb1, 0x12, 0xf1, 0xc6,
|
||||
0x40, 0x74, 0x20, 0xfa, 0x46, 0xf3, 0x15, 0x8b,
|
||||
0x5d, 0xea, 0x24, 0x47, 0x48, 0xc6, 0x52, 0x75,
|
||||
0x94, 0xcb, 0x61, 0x64, 0x77, 0x3f, 0x21, 0x71,
|
||||
0x78, 0x0d, 0x23, 0xa0, 0x61, 0x8c, 0x10, 0x23,
|
||||
0xca, 0x5b, 0x8a, 0x88, 0xbe, 0x1b, 0x8d, 0x5e,
|
||||
0x92, 0x27, 0xbd, 0x2b, 0xb8, 0x79, 0x57, 0xae,
|
||||
0x54, 0xb8, 0x2b, 0x16, 0xd1, 0x2a, 0xbd, 0xeb,
|
||||
0xe6, 0x50, 0xb1, 0x2b, 0xee, 0x7f, 0x3f, 0x4d,
|
||||
0x1d, 0xd0, 0xff, 0x72, 0xf5, 0x85, 0xdd, 0x5a,
|
||||
0xda, 0x8b, 0xea, 0x18, 0xa8, 0x1c, 0x22, 0x4c,
|
||||
0xd6, 0x6e, 0xab, 0xcf, 0x5f, 0x19, 0xab, 0xb9,
|
||||
0x7c, 0xdf, 0xa1, 0x38, 0xc4, 0x67, 0xe5, 0xea,
|
||||
0x19, 0xfb, 0xf9, 0xab, 0x05, 0xbc, 0x42, 0xa6,
|
||||
0xcc, 0xc7, 0x24, 0x31, 0x75, 0xfa, 0x3f, 0x3e,
|
||||
0x5c, 0x2e, 0x97, 0x6f, 0x48, 0x56, 0x65, 0x3e,
|
||||
0xd9, 0x04, 0x7f, 0x4e, 0x2a, 0xec, 0xfc, 0xd3,
|
||||
0xb6, 0x9f, 0x1b, 0x60, 0xf5, 0x12, 0x3b, 0x75,
|
||||
0xf8, 0x96, 0xe8, 0xc8, 0x6d, 0xb7, 0x3f, 0x77,
|
||||
0xc4, 0x38, 0xc0, 0xf2, 0x6f, 0x7c, 0xe7, 0x9d,
|
||||
0xca, 0xf3, 0x4d, 0x2f, 0x57, 0xca, 0xa9, 0x95,
|
||||
0xab, 0xd8, 0x54, 0xc1, 0xb9, 0x88, 0x75, 0x2e,
|
||||
0x3c, 0x2f, 0x59, 0xf4, 0xed, 0x01, 0xfe, 0x53,
|
||||
0x63, 0x81, 0x5c, 0x49, 0x49, 0x49, 0x49, 0x49,
|
||||
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
|
||||
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
|
||||
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
|
||||
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
|
||||
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
|
||||
0xe9, 0x67, 0xac, 0xff, 0x03, 0xdc, 0x41, 0xd4,
|
||||
0x19, 0x76, 0x96, 0x00, 0x00,
|
||||
|
||||
+1042
-521
File diff suppressed because it is too large
Load Diff
+8417
-4209
File diff suppressed because it is too large
Load Diff
+1492
-746
File diff suppressed because it is too large
Load Diff
+2358
-1179
File diff suppressed because it is too large
Load Diff
+10661
-5331
File diff suppressed because it is too large
Load Diff
+4021
-2011
File diff suppressed because it is too large
Load Diff
@@ -1,77 +1,153 @@
|
||||
0x1f,0x8b,0x08,0x08,0x7f,0x95,0xab,0x3f,0x00,0x03,0x50,0x50,0x43,0x5f,0x53,0x74,
|
||||
0x61,0x72,0x74,0x6c,0x6f,0x67,0x6f,0x5f,0x31,0x36,0x67,0x2e,0x62,0x6d,0x70,0x00,
|
||||
0xed,0x9b,0xcb,0x71,0xe3,0x38,0x10,0x86,0x7b,0xaa,0xe6,0xb6,0x87,0x2e,0x4f,0x08,
|
||||
0x3e,0xed,0xdd,0x09,0x6c,0x6d,0xf9,0x3a,0x47,0xa7,0xe0,0x10,0xc6,0x29,0x38,0x82,
|
||||
0xad,0x72,0x0a,0x4e,0xc1,0x29,0x38,0x05,0xa7,0xe0,0xea,0x0c,0x30,0x12,0x89,0x06,
|
||||
0x1a,0x4f,0x3d,0x2c,0x01,0x9c,0xad,0xff,0xf3,0x48,0xa2,0x44,0x82,0xf8,0xd8,0x20,
|
||||
0x5e,0x24,0xe7,0xdf,0x9f,0xbf,0xfe,0xa3,0x85,0x5f,0xbb,0xd7,0xdf,0xbb,0xd7,0x3f,
|
||||
0xdf,0x88,0x64,0xf7,0xf9,0x8d,0xbe,0x93,0xf2,0xe3,0xaf,0xf5,0x65,0xb9,0xb9,0xb9,
|
||||
0xa1,0xdb,0xdb,0x5b,0xba,0xbb,0xbb,0xa3,0xfb,0xfb,0x7b,0x7a,0x78,0x78,0xa0,0xc7,
|
||||
0xc7,0x47,0x7a,0x7a,0x7a,0xa2,0xe7,0xe7,0x67,0x7a,0x79,0x79,0xa1,0xd7,0xd7,0x57,
|
||||
0x7a,0x7b,0x7b,0xa3,0xf7,0xf7,0x77,0xfa,0xf8,0xf8,0xa0,0xcf,0xcf,0x4f,0x72,0xce,
|
||||
0xed,0x5f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,
|
||||
0x02,0xa1,0x8b,0x03,0x3f,0xf8,0xc1,0x0f,0x7e,0xf0,0xfb,0xb3,0xfd,0xf6,0x59,0xf3,
|
||||
0x66,0xfd,0xc2,0xe6,0x7d,0xc5,0x49,0x7e,0xfb,0xcd,0x84,0x59,0xd8,0x1d,0x48,0x30,
|
||||
0xc7,0x6f,0xd9,0x88,0x77,0x7f,0x3b,0x41,0xd7,0x0d,0xe1,0x14,0xbf,0x45,0x88,0x97,
|
||||
0x7f,0xb2,0x38,0xb4,0x05,0x67,0xf8,0x2d,0x3a,0xb2,0x2a,0x2e,0xff,0xcb,0xb0,0x23,
|
||||
0x38,0xc1,0x6f,0xd5,0xf3,0x21,0x5c,0xdf,0xa4,0x99,0x68,0xbc,0x9f,0x04,0xab,0xf5,
|
||||
0x4d,0x5c,0x4f,0x70,0xb8,0xdf,0x6a,0xb2,0x48,0xad,0x7e,0xde,0xb2,0x51,0xc2,0xc3,
|
||||
0xfd,0x28,0x37,0xf3,0xae,0x8d,0x64,0xa3,0xfd,0x24,0x96,0xa9,0xfa,0xf9,0x00,0xd6,
|
||||
0xd3,0x8d,0xf6,0xb3,0xe1,0xd3,0x0f,0x31,0xe6,0x93,0xfd,0xba,0xd9,0x6d,0xc0,0x8f,
|
||||
0x4c,0xc0,0x42,0xfc,0x7a,0x01,0x1c,0xeb,0x27,0xb6,0x5e,0xc4,0x4f,0x97,0xfe,0x3c,
|
||||
0xcf,0x2f,0x0d,0x5f,0xee,0x57,0x4b,0x39,0xd4,0x2f,0x0b,0x5f,0x5c,0x68,0x17,0xf0,
|
||||
0x58,0xbf,0x6a,0xd8,0xba,0x01,0x1c,0xea,0x97,0x15,0x6f,0xe1,0x27,0xae,0x60,0xa4,
|
||||
0x5f,0x5e,0xbc,0x66,0xa9,0x59,0xc0,0x43,0xfd,0xea,0x51,0x33,0xab,0xca,0xb4,0x23,
|
||||
0xfd,0x7a,0x35,0xbb,0x55,0xc0,0x98,0x5f,0xfe,0x39,0x7e,0xbb,0x21,0x8a,0x0e,0x9d,
|
||||
0xd7,0x8d,0x74,0x58,0xef,0xc7,0xf7,0x93,0xdb,0xbf,0x5d,0x56,0x9c,0xf8,0x91,0xce,
|
||||
0xdc,0x7c,0xa2,0xc9,0x7e,0xe4,0x0d,0xd4,0x4f,0x38,0x8e,0x9d,0xc3,0x8a,0x89,0x7e,
|
||||
0x6c,0xfc,0x74,0xe6,0x46,0xce,0x2c,0xcc,0xf5,0x0b,0x33,0x36,0xeb,0x27,0x9b,0xf2,
|
||||
0x5b,0xcf,0x37,0xbd,0x2e,0x54,0xfa,0x51,0x79,0x29,0xa1,0xea,0xb7,0xac,0x89,0x5f,
|
||||
0xf9,0xb4,0x23,0xe9,0xc5,0xcf,0x2f,0x48,0x33,0x7e,0x79,0xea,0x4a,0xae,0x9c,0xad,
|
||||
0x0a,0x87,0xb4,0x5b,0x32,0x0d,0xbc,0x6d,0xeb,0xcd,0x51,0x1f,0xe5,0x17,0x95,0x8e,
|
||||
0xf5,0xe3,0xb0,0xc8,0xd9,0x3a,0xf3,0xfd,0x4b,0x7e,0x49,0xfd,0x50,0xb7,0xa2,0x7e,
|
||||
0xb4,0xfc,0xd6,0x5d,0x67,0xc5,0x23,0x45,0x71,0x7d,0xc5,0x8f,0xf4,0x5a,0x41,0x6c,
|
||||
0x5f,0xd6,0x98,0x9e,0xe4,0x97,0x9c,0xa0,0x14,0x5b,0xd0,0xa2,0x03,0x3f,0xd9,0x4f,
|
||||
0x7c,0x36,0xa1,0x1a,0x84,0x33,0xdd,0x1d,0xac,0x1f,0x1c,0x96,0xfd,0xaf,0xc1,0x4f,
|
||||
0x3f,0xc9,0x4e,0xac,0xcf,0xf2,0x2b,0xa7,0xe0,0x47,0x74,0xd5,0xb9,0x9f,0x1e,0x58,
|
||||
0x38,0xd4,0xf0,0xdd,0x5c,0x37,0xa9,0xfa,0x1d,0xaa,0xbf,0xe7,0x21,0x66,0x9f,0xb6,
|
||||
0x00,0xd4,0x94,0x5d,0x72,0x0c,0x62,0x44,0xe2,0x1a,0x3a,0xe4,0x57,0x36,0x12,0x7d,
|
||||
0xf2,0x3a,0x9a,0x16,0xa7,0x3d,0x25,0x4d,0xce,0x13,0xfd,0x58,0x77,0xc3,0x59,0xa6,
|
||||
0x72,0x19,0xbf,0xf3,0x09,0x7e,0xf1,0x42,0xb0,0xcd,0x48,0x74,0x13,0x73,0x29,0x67,
|
||||
0x82,0x9f,0x5b,0x4b,0xf2,0x9a,0x7e,0xc2,0xbe,0x02,0x53,0xda,0xd8,0x2d,0x27,0x3d,
|
||||
0xfb,0x2a,0xb9,0x16,0x97,0x6d,0x63,0x32,0x3f,0x93,0xa7,0x89,0xea,0x25,0xfc,0xa8,
|
||||
0xe1,0xb7,0xef,0x34,0xc9,0xfa,0x49,0xdb,0xcf,0x5d,0xd3,0x8f,0xaa,0x7e,0xe2,0xf3,
|
||||
0x26,0x13,0xe4,0xc2,0x8f,0xb5,0xa5,0xab,0xfa,0x91,0xc5,0x24,0xcc,0xfc,0xc2,0xfe,
|
||||
0x3a,0x7e,0x12,0xfd,0xfc,0x4b,0x7b,0xe4,0xe8,0x47,0xd2,0xf6,0x0b,0xe1,0xba,0xbc,
|
||||
0x1f,0x8b,0xcf,0x3a,0xf5,0xd3,0x89,0x47,0xf0,0x93,0x8a,0x9f,0xd3,0x9e,0xb6,0xea,
|
||||
0x27,0x97,0xf0,0x93,0xa3,0xfd,0x78,0x96,0x1f,0x3b,0x56,0x3f,0x3d,0x65,0xfd,0x29,
|
||||
0x68,0xeb,0x07,0xb9,0x8e,0x9f,0xe3,0x6b,0xfa,0xed,0x0d,0xcf,0xf1,0xe3,0xa8,0xd9,
|
||||
0x6c,0xff,0xcc,0x6f,0x76,0xb5,0xf1,0x2b,0x0f,0x21,0xf5,0x5b,0xa2,0x47,0xd5,0xf2,
|
||||
0x75,0x2e,0x94,0x6f,0x18,0x14,0xd6,0xfd,0x5c,0xee,0x97,0xe4,0xfc,0x05,0x3f,0x72,
|
||||
0x99,0x9f,0x39,0x15,0xad,0x9f,0x56,0x69,0xeb,0xa7,0x3b,0xcf,0xca,0x33,0xef,0x7f,
|
||||
0x35,0x9e,0xe7,0xfa,0x91,0xb8,0xd2,0x2f,0x6f,0x5f,0x8e,0xf0,0x2b,0xc6,0x2f,0x72,
|
||||
0x21,0x3f,0x52,0x13,0xed,0x0f,0x54,0x26,0xb6,0xcf,0xc4,0x55,0xbf,0x38,0xca,0x8a,
|
||||
0x3e,0x7e,0x29,0x0a,0x6b,0x07,0x73,0x8e,0x9f,0xf8,0xae,0xc2,0xfb,0xed,0xf1,0xb9,
|
||||
0x2c,0xfd,0x9b,0x0e,0x89,0x25,0x9c,0x53,0xc6,0x8f,0x73,0xbf,0x38,0x90,0x16,0x33,
|
||||
0x60,0x8d,0x53,0x99,0xba,0x9f,0x06,0xaa,0xee,0xc7,0xb9,0x1f,0x7b,0x3f,0x9f,0xd7,
|
||||
0xb1,0x7e,0xe9,0x15,0x4c,0xe3,0xc9,0x1a,0x86,0x90,0xf2,0x14,0xbf,0x0e,0xbd,0xbb,
|
||||
0xfb,0xa1,0xdf,0x0d,0xd9,0x54,0x1b,0xc7,0x6a,0xe6,0x97,0xf2,0xeb,0x53,0xf8,0xd9,
|
||||
0xdd,0xe7,0x79,0xcb,0x0c,0xbf,0x6c,0x04,0x6f,0xf2,0x2a,0x32,0xa7,0xaf,0xf9,0xf9,
|
||||
0x35,0xa6,0xb3,0x89,0xeb,0xd8,0x6e,0x91,0xfb,0x85,0x1e,0x62,0xd9,0xbf,0xa6,0x0f,
|
||||
0x15,0xb2,0xf8,0xa1,0x4f,0x3b,0x16,0xdc,0xf4,0x2b,0x6e,0x3d,0x44,0xbf,0x46,0x0e,
|
||||
0x76,0x05,0x9f,0xa2,0xd7,0x29,0x5f,0xae,0x5b,0x85,0xa5,0xc9,0xf7,0x67,0x8a,0xfb,
|
||||
0x5b,0xf9,0x9d,0xae,0x4a,0xd2,0x9a,0x1f,0x2f,0xdb,0x5f,0xc1,0x2f,0x2f,0xe0,0xdc,
|
||||
0xaf,0xd2,0xd0,0x0c,0xf5,0xcb,0x35,0x24,0x5d,0x38,0xf6,0xfa,0xee,0xf5,0xfc,0xb2,
|
||||
0x02,0xce,0x6e,0x54,0xd7,0x52,0x8e,0xf5,0xcb,0x0a,0x58,0x92,0xcf,0x0d,0x3c,0x7f,
|
||||
0xd0,0x3f,0xe8,0xea,0x11,0x8d,0xf5,0x4b,0x03,0x98,0x3c,0xc7,0xb1,0x89,0xe7,0x5f,
|
||||
0xd2,0xe7,0x73,0xc4,0x7e,0x34,0xe6,0x05,0x83,0xfd,0xec,0xe3,0x61,0x49,0xaf,0xd1,
|
||||
0x78,0x40,0x6c,0xb4,0x9f,0xef,0xdf,0x6d,0x4f,0xb2,0xa9,0xe7,0xc3,0xe2,0x8c,0x3c,
|
||||
0x98,0x71,0xd4,0xde,0x82,0x9f,0x29,0xe1,0xf8,0xd6,0x1c,0xa3,0x8e,0xf7,0xf3,0x82,
|
||||
0xec,0xd5,0xd6,0x09,0x5c,0x33,0xd1,0x04,0x3f,0x17,0x67,0xfe,0xea,0xd9,0x19,0x93,
|
||||
0x4d,0xf0,0x73,0x7a,0x2d,0x4f,0x74,0xc2,0xd5,0xde,0x74,0x8a,0xdf,0x3a,0x2a,0xde,
|
||||
0x4d,0xd7,0xf6,0x86,0xcd,0x2b,0x72,0x13,0xfd,0xd6,0x99,0x21,0x89,0x30,0x1d,0x78,
|
||||
0x00,0x7f,0x96,0x5f,0x6d,0xea,0xb2,0x29,0xbf,0x23,0x81,0x1f,0xfc,0xe0,0x07,0x3f,
|
||||
0xf8,0x6d,0xd3,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5c,0x8e,0xdf,
|
||||
0xe3,0xb7,0xe4,0x39,0x76,0x96,0x00,0x00,
|
||||
0x1f, 0x8b, 0x08, 0x08, 0x7f, 0x95, 0xab, 0x3f,
|
||||
0x00, 0x03, 0x50, 0x50, 0x43, 0x5f, 0x53, 0x74,
|
||||
0x61, 0x72, 0x74, 0x6c, 0x6f, 0x67, 0x6f, 0x5f,
|
||||
0x31, 0x36, 0x67, 0x2e, 0x62, 0x6d, 0x70, 0x00,
|
||||
0xed, 0x9b, 0xcb, 0x71, 0xe3, 0x38, 0x10, 0x86,
|
||||
0x7b, 0xaa, 0xe6, 0xb6, 0x87, 0x2e, 0x4f, 0x08,
|
||||
0x3e, 0xed, 0xdd, 0x09, 0x6c, 0x6d, 0xf9, 0x3a,
|
||||
0x47, 0xa7, 0xe0, 0x10, 0xc6, 0x29, 0x38, 0x82,
|
||||
0xad, 0x72, 0x0a, 0x4e, 0xc1, 0x29, 0x38, 0x05,
|
||||
0xa7, 0xe0, 0xea, 0x0c, 0x30, 0x12, 0x89, 0x06,
|
||||
0x1a, 0x4f, 0x3d, 0x2c, 0x01, 0x9c, 0xad, 0xff,
|
||||
0xf3, 0x48, 0xa2, 0x44, 0x82, 0xf8, 0xd8, 0x20,
|
||||
0x5e, 0x24, 0xe7, 0xdf, 0x9f, 0xbf, 0xfe, 0xa3,
|
||||
0x85, 0x5f, 0xbb, 0xd7, 0xdf, 0xbb, 0xd7, 0x3f,
|
||||
0xdf, 0x88, 0x64, 0xf7, 0xf9, 0x8d, 0xbe, 0x93,
|
||||
0xf2, 0xe3, 0xaf, 0xf5, 0x65, 0xb9, 0xb9, 0xb9,
|
||||
0xa1, 0xdb, 0xdb, 0x5b, 0xba, 0xbb, 0xbb, 0xa3,
|
||||
0xfb, 0xfb, 0x7b, 0x7a, 0x78, 0x78, 0xa0, 0xc7,
|
||||
0xc7, 0x47, 0x7a, 0x7a, 0x7a, 0xa2, 0xe7, 0xe7,
|
||||
0x67, 0x7a, 0x79, 0x79, 0xa1, 0xd7, 0xd7, 0x57,
|
||||
0x7a, 0x7b, 0x7b, 0xa3, 0xf7, 0xf7, 0x77, 0xfa,
|
||||
0xf8, 0xf8, 0xa0, 0xcf, 0xcf, 0x4f, 0x72, 0xce,
|
||||
0xed, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff,
|
||||
0x02, 0xa1, 0x8b, 0x03, 0x3f, 0xf8, 0xc1, 0x0f,
|
||||
0x7e, 0xf0, 0xfb, 0xb3, 0xfd, 0xf6, 0x59, 0xf3,
|
||||
0x66, 0xfd, 0xc2, 0xe6, 0x7d, 0xc5, 0x49, 0x7e,
|
||||
0xfb, 0xcd, 0x84, 0x59, 0xd8, 0x1d, 0x48, 0x30,
|
||||
0xc7, 0x6f, 0xd9, 0x88, 0x77, 0x7f, 0x3b, 0x41,
|
||||
0xd7, 0x0d, 0xe1, 0x14, 0xbf, 0x45, 0x88, 0x97,
|
||||
0x7f, 0xb2, 0x38, 0xb4, 0x05, 0x67, 0xf8, 0x2d,
|
||||
0x3a, 0xb2, 0x2a, 0x2e, 0xff, 0xcb, 0xb0, 0x23,
|
||||
0x38, 0xc1, 0x6f, 0xd5, 0xf3, 0x21, 0x5c, 0xdf,
|
||||
0xa4, 0x99, 0x68, 0xbc, 0x9f, 0x04, 0xab, 0xf5,
|
||||
0x4d, 0x5c, 0x4f, 0x70, 0xb8, 0xdf, 0x6a, 0xb2,
|
||||
0x48, 0xad, 0x7e, 0xde, 0xb2, 0x51, 0xc2, 0xc3,
|
||||
0xfd, 0x28, 0x37, 0xf3, 0xae, 0x8d, 0x64, 0xa3,
|
||||
0xfd, 0x24, 0x96, 0xa9, 0xfa, 0xf9, 0x00, 0xd6,
|
||||
0xd3, 0x8d, 0xf6, 0xb3, 0xe1, 0xd3, 0x0f, 0x31,
|
||||
0xe6, 0x93, 0xfd, 0xba, 0xd9, 0x6d, 0xc0, 0x8f,
|
||||
0x4c, 0xc0, 0x42, 0xfc, 0x7a, 0x01, 0x1c, 0xeb,
|
||||
0x27, 0xb6, 0x5e, 0xc4, 0x4f, 0x97, 0xfe, 0x3c,
|
||||
0xcf, 0x2f, 0x0d, 0x5f, 0xee, 0x57, 0x4b, 0x39,
|
||||
0xd4, 0x2f, 0x0b, 0x5f, 0x5c, 0x68, 0x17, 0xf0,
|
||||
0x58, 0xbf, 0x6a, 0xd8, 0xba, 0x01, 0x1c, 0xea,
|
||||
0x97, 0x15, 0x6f, 0xe1, 0x27, 0xae, 0x60, 0xa4,
|
||||
0x5f, 0x5e, 0xbc, 0x66, 0xa9, 0x59, 0xc0, 0x43,
|
||||
0xfd, 0xea, 0x51, 0x33, 0xab, 0xca, 0xb4, 0x23,
|
||||
0xfd, 0x7a, 0x35, 0xbb, 0x55, 0xc0, 0x98, 0x5f,
|
||||
0xfe, 0x39, 0x7e, 0xbb, 0x21, 0x8a, 0x0e, 0x9d,
|
||||
0xd7, 0x8d, 0x74, 0x58, 0xef, 0xc7, 0xf7, 0x93,
|
||||
0xdb, 0xbf, 0x5d, 0x56, 0x9c, 0xf8, 0x91, 0xce,
|
||||
0xdc, 0x7c, 0xa2, 0xc9, 0x7e, 0xe4, 0x0d, 0xd4,
|
||||
0x4f, 0x38, 0x8e, 0x9d, 0xc3, 0x8a, 0x89, 0x7e,
|
||||
0x6c, 0xfc, 0x74, 0xe6, 0x46, 0xce, 0x2c, 0xcc,
|
||||
0xf5, 0x0b, 0x33, 0x36, 0xeb, 0x27, 0x9b, 0xf2,
|
||||
0x5b, 0xcf, 0x37, 0xbd, 0x2e, 0x54, 0xfa, 0x51,
|
||||
0x79, 0x29, 0xa1, 0xea, 0xb7, 0xac, 0x89, 0x5f,
|
||||
0xf9, 0xb4, 0x23, 0xe9, 0xc5, 0xcf, 0x2f, 0x48,
|
||||
0x33, 0x7e, 0x79, 0xea, 0x4a, 0xae, 0x9c, 0xad,
|
||||
0x0a, 0x87, 0xb4, 0x5b, 0x32, 0x0d, 0xbc, 0x6d,
|
||||
0xeb, 0xcd, 0x51, 0x1f, 0xe5, 0x17, 0x95, 0x8e,
|
||||
0xf5, 0xe3, 0xb0, 0xc8, 0xd9, 0x3a, 0xf3, 0xfd,
|
||||
0x4b, 0x7e, 0x49, 0xfd, 0x50, 0xb7, 0xa2, 0x7e,
|
||||
0xb4, 0xfc, 0xd6, 0x5d, 0x67, 0xc5, 0x23, 0x45,
|
||||
0x71, 0x7d, 0xc5, 0x8f, 0xf4, 0x5a, 0x41, 0x6c,
|
||||
0x5f, 0xd6, 0x98, 0x9e, 0xe4, 0x97, 0x9c, 0xa0,
|
||||
0x14, 0x5b, 0xd0, 0xa2, 0x03, 0x3f, 0xd9, 0x4f,
|
||||
0x7c, 0x36, 0xa1, 0x1a, 0x84, 0x33, 0xdd, 0x1d,
|
||||
0xac, 0x1f, 0x1c, 0x96, 0xfd, 0xaf, 0xc1, 0x4f,
|
||||
0x3f, 0xc9, 0x4e, 0xac, 0xcf, 0xf2, 0x2b, 0xa7,
|
||||
0xe0, 0x47, 0x74, 0xd5, 0xb9, 0x9f, 0x1e, 0x58,
|
||||
0x38, 0xd4, 0xf0, 0xdd, 0x5c, 0x37, 0xa9, 0xfa,
|
||||
0x1d, 0xaa, 0xbf, 0xe7, 0x21, 0x66, 0x9f, 0xb6,
|
||||
0x00, 0xd4, 0x94, 0x5d, 0x72, 0x0c, 0x62, 0x44,
|
||||
0xe2, 0x1a, 0x3a, 0xe4, 0x57, 0x36, 0x12, 0x7d,
|
||||
0xf2, 0x3a, 0x9a, 0x16, 0xa7, 0x3d, 0x25, 0x4d,
|
||||
0xce, 0x13, 0xfd, 0x58, 0x77, 0xc3, 0x59, 0xa6,
|
||||
0x72, 0x19, 0xbf, 0xf3, 0x09, 0x7e, 0xf1, 0x42,
|
||||
0xb0, 0xcd, 0x48, 0x74, 0x13, 0x73, 0x29, 0x67,
|
||||
0x82, 0x9f, 0x5b, 0x4b, 0xf2, 0x9a, 0x7e, 0xc2,
|
||||
0xbe, 0x02, 0x53, 0xda, 0xd8, 0x2d, 0x27, 0x3d,
|
||||
0xfb, 0x2a, 0xb9, 0x16, 0x97, 0x6d, 0x63, 0x32,
|
||||
0x3f, 0x93, 0xa7, 0x89, 0xea, 0x25, 0xfc, 0xa8,
|
||||
0xe1, 0xb7, 0xef, 0x34, 0xc9, 0xfa, 0x49, 0xdb,
|
||||
0xcf, 0x5d, 0xd3, 0x8f, 0xaa, 0x7e, 0xe2, 0xf3,
|
||||
0x26, 0x13, 0xe4, 0xc2, 0x8f, 0xb5, 0xa5, 0xab,
|
||||
0xfa, 0x91, 0xc5, 0x24, 0xcc, 0xfc, 0xc2, 0xfe,
|
||||
0x3a, 0x7e, 0x12, 0xfd, 0xfc, 0x4b, 0x7b, 0xe4,
|
||||
0xe8, 0x47, 0xd2, 0xf6, 0x0b, 0xe1, 0xba, 0xbc,
|
||||
0x1f, 0x8b, 0xcf, 0x3a, 0xf5, 0xd3, 0x89, 0x47,
|
||||
0xf0, 0x93, 0x8a, 0x9f, 0xd3, 0x9e, 0xb6, 0xea,
|
||||
0x27, 0x97, 0xf0, 0x93, 0xa3, 0xfd, 0x78, 0x96,
|
||||
0x1f, 0x3b, 0x56, 0x3f, 0x3d, 0x65, 0xfd, 0x29,
|
||||
0x68, 0xeb, 0x07, 0xb9, 0x8e, 0x9f, 0xe3, 0x6b,
|
||||
0xfa, 0xed, 0x0d, 0xcf, 0xf1, 0xe3, 0xa8, 0xd9,
|
||||
0x6c, 0xff, 0xcc, 0x6f, 0x76, 0xb5, 0xf1, 0x2b,
|
||||
0x0f, 0x21, 0xf5, 0x5b, 0xa2, 0x47, 0xd5, 0xf2,
|
||||
0x75, 0x2e, 0x94, 0x6f, 0x18, 0x14, 0xd6, 0xfd,
|
||||
0x5c, 0xee, 0x97, 0xe4, 0xfc, 0x05, 0x3f, 0x72,
|
||||
0x99, 0x9f, 0x39, 0x15, 0xad, 0x9f, 0x56, 0x69,
|
||||
0xeb, 0xa7, 0x3b, 0xcf, 0xca, 0x33, 0xef, 0x7f,
|
||||
0x35, 0x9e, 0xe7, 0xfa, 0x91, 0xb8, 0xd2, 0x2f,
|
||||
0x6f, 0x5f, 0x8e, 0xf0, 0x2b, 0xc6, 0x2f, 0x72,
|
||||
0x21, 0x3f, 0x52, 0x13, 0xed, 0x0f, 0x54, 0x26,
|
||||
0xb6, 0xcf, 0xc4, 0x55, 0xbf, 0x38, 0xca, 0x8a,
|
||||
0x3e, 0x7e, 0x29, 0x0a, 0x6b, 0x07, 0x73, 0x8e,
|
||||
0x9f, 0xf8, 0xae, 0xc2, 0xfb, 0xed, 0xf1, 0xb9,
|
||||
0x2c, 0xfd, 0x9b, 0x0e, 0x89, 0x25, 0x9c, 0x53,
|
||||
0xc6, 0x8f, 0x73, 0xbf, 0x38, 0x90, 0x16, 0x33,
|
||||
0x60, 0x8d, 0x53, 0x99, 0xba, 0x9f, 0x06, 0xaa,
|
||||
0xee, 0xc7, 0xb9, 0x1f, 0x7b, 0x3f, 0x9f, 0xd7,
|
||||
0xb1, 0x7e, 0xe9, 0x15, 0x4c, 0xe3, 0xc9, 0x1a,
|
||||
0x86, 0x90, 0xf2, 0x14, 0xbf, 0x0e, 0xbd, 0xbb,
|
||||
0xfb, 0xa1, 0xdf, 0x0d, 0xd9, 0x54, 0x1b, 0xc7,
|
||||
0x6a, 0xe6, 0x97, 0xf2, 0xeb, 0x53, 0xf8, 0xd9,
|
||||
0xdd, 0xe7, 0x79, 0xcb, 0x0c, 0xbf, 0x6c, 0x04,
|
||||
0x6f, 0xf2, 0x2a, 0x32, 0xa7, 0xaf, 0xf9, 0xf9,
|
||||
0x35, 0xa6, 0xb3, 0x89, 0xeb, 0xd8, 0x6e, 0x91,
|
||||
0xfb, 0x85, 0x1e, 0x62, 0xd9, 0xbf, 0xa6, 0x0f,
|
||||
0x15, 0xb2, 0xf8, 0xa1, 0x4f, 0x3b, 0x16, 0xdc,
|
||||
0xf4, 0x2b, 0x6e, 0x3d, 0x44, 0xbf, 0x46, 0x0e,
|
||||
0x76, 0x05, 0x9f, 0xa2, 0xd7, 0x29, 0x5f, 0xae,
|
||||
0x5b, 0x85, 0xa5, 0xc9, 0xf7, 0x67, 0x8a, 0xfb,
|
||||
0x5b, 0xf9, 0x9d, 0xae, 0x4a, 0xd2, 0x9a, 0x1f,
|
||||
0x2f, 0xdb, 0x5f, 0xc1, 0x2f, 0x2f, 0xe0, 0xdc,
|
||||
0xaf, 0xd2, 0xd0, 0x0c, 0xf5, 0xcb, 0x35, 0x24,
|
||||
0x5d, 0x38, 0xf6, 0xfa, 0xee, 0xf5, 0xfc, 0xb2,
|
||||
0x02, 0xce, 0x6e, 0x54, 0xd7, 0x52, 0x8e, 0xf5,
|
||||
0xcb, 0x0a, 0x58, 0x92, 0xcf, 0x0d, 0x3c, 0x7f,
|
||||
0xd0, 0x3f, 0xe8, 0xea, 0x11, 0x8d, 0xf5, 0x4b,
|
||||
0x03, 0x98, 0x3c, 0xc7, 0xb1, 0x89, 0xe7, 0x5f,
|
||||
0xd2, 0xe7, 0x73, 0xc4, 0x7e, 0x34, 0xe6, 0x05,
|
||||
0x83, 0xfd, 0xec, 0xe3, 0x61, 0x49, 0xaf, 0xd1,
|
||||
0x78, 0x40, 0x6c, 0xb4, 0x9f, 0xef, 0xdf, 0x6d,
|
||||
0x4f, 0xb2, 0xa9, 0xe7, 0xc3, 0xe2, 0x8c, 0x3c,
|
||||
0x98, 0x71, 0xd4, 0xde, 0x82, 0x9f, 0x29, 0xe1,
|
||||
0xf8, 0xd6, 0x1c, 0xa3, 0x8e, 0xf7, 0xf3, 0x82,
|
||||
0xec, 0xd5, 0xd6, 0x09, 0x5c, 0x33, 0xd1, 0x04,
|
||||
0x3f, 0x17, 0x67, 0xfe, 0xea, 0xd9, 0x19, 0x93,
|
||||
0x4d, 0xf0, 0x73, 0x7a, 0x2d, 0x4f, 0x74, 0xc2,
|
||||
0xd5, 0xde, 0x74, 0x8a, 0xdf, 0x3a, 0x2a, 0xde,
|
||||
0x4d, 0xd7, 0xf6, 0x86, 0xcd, 0x2b, 0x72, 0x13,
|
||||
0xfd, 0xd6, 0x99, 0x21, 0x89, 0x30, 0x1d, 0x78,
|
||||
0x00, 0x7f, 0x96, 0x5f, 0x6d, 0xea, 0xb2, 0x29,
|
||||
0xbf, 0x23, 0x81, 0x1f, 0xfc, 0xe0, 0x07, 0x3f,
|
||||
0xf8, 0x6d, 0xd3, 0x0f, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x8e, 0xdf,
|
||||
0xe3, 0xb7, 0xe4, 0x39, 0x76, 0x96, 0x00, 0x00,
|
||||
|
||||
+3443
-1722
File diff suppressed because it is too large
Load Diff
+3636
-1818
File diff suppressed because it is too large
Load Diff
@@ -1007,6 +1007,7 @@ gr_cpci_ax2000 sparc leon3 - gaisler
|
||||
gr_ep2s60 sparc leon3 - gaisler
|
||||
grsim sparc leon3 - gaisler
|
||||
gr_xc3s_1500 sparc leon3 - gaisler
|
||||
coreboot-x86 x86 x86 coreboot chromebook-x86 coreboot coreboot:SYS_TEXT_BASE=0xFC0000
|
||||
eNET x86 x86 eNET - sc520 eNET:SYS_TEXT_BASE=0x38040000
|
||||
eNET_SRAM x86 x86 eNET - sc520 eNET:SYS_TEXT_BASE=0x19000000
|
||||
# Target ARCH CPU Board name Vendor SoC Options
|
||||
|
||||
+2
-2
@@ -127,12 +127,12 @@ static int do_spi_flash_probe(int argc, char * const argv[])
|
||||
static const char *spi_flash_update_block(struct spi_flash *flash, u32 offset,
|
||||
size_t len, const char *buf, char *cmp_buf, size_t *skipped)
|
||||
{
|
||||
debug("offset=%#x, sector_size=%#x, len=%#x\n",
|
||||
debug("offset=%#x, sector_size=%#x, len=%#zx\n",
|
||||
offset, flash->sector_size, len);
|
||||
if (spi_flash_read(flash, offset, len, cmp_buf))
|
||||
return "read";
|
||||
if (memcmp(cmp_buf, buf, len) == 0) {
|
||||
debug("Skip region %x size %x: no change\n",
|
||||
debug("Skip region %x size %zx: no change\n",
|
||||
offset, len);
|
||||
*skipped += len;
|
||||
return NULL;
|
||||
|
||||
+5
-5
@@ -212,7 +212,7 @@ int serial_printf(const char *fmt, ...)
|
||||
/* For this to work, printbuffer must be larger than
|
||||
* anything we ever want to print.
|
||||
*/
|
||||
i = vsprintf(printbuffer, fmt, args);
|
||||
i = vscnprintf(printbuffer, sizeof(printbuffer), fmt, args);
|
||||
va_end(args);
|
||||
|
||||
serial_puts(printbuffer);
|
||||
@@ -281,7 +281,7 @@ int fprintf(int file, const char *fmt, ...)
|
||||
/* For this to work, printbuffer must be larger than
|
||||
* anything we ever want to print.
|
||||
*/
|
||||
i = vsprintf(printbuffer, fmt, args);
|
||||
i = vscnprintf(printbuffer, sizeof(printbuffer), fmt, args);
|
||||
va_end(args);
|
||||
|
||||
/* Send to desired file */
|
||||
@@ -434,7 +434,7 @@ int printf(const char *fmt, ...)
|
||||
/* For this to work, printbuffer must be larger than
|
||||
* anything we ever want to print.
|
||||
*/
|
||||
i = vsprintf(printbuffer, fmt, args);
|
||||
i = vscnprintf(printbuffer, sizeof(printbuffer), fmt, args);
|
||||
va_end(args);
|
||||
|
||||
/* Print the string */
|
||||
@@ -455,7 +455,7 @@ int vprintf(const char *fmt, va_list args)
|
||||
/* For this to work, printbuffer must be larger than
|
||||
* anything we ever want to print.
|
||||
*/
|
||||
i = vsprintf(printbuffer, fmt, args);
|
||||
i = vscnprintf(printbuffer, sizeof(printbuffer), fmt, args);
|
||||
|
||||
/* Print the string */
|
||||
puts(printbuffer);
|
||||
@@ -522,7 +522,7 @@ inline void dbg(const char *fmt, ...)
|
||||
/* For this to work, printbuffer must be larger than
|
||||
* anything we ever want to print.
|
||||
*/
|
||||
i = vsprintf(printbuffer, fmt, args);
|
||||
i = vsnprintf(printbuffer, sizeof(printbuffer), fmt, args);
|
||||
va_end(args);
|
||||
|
||||
if ((screen + sizeof(screen) - 1 - cursor)
|
||||
|
||||
@@ -651,7 +651,6 @@ int mvgbe_initialize(bd_t *bis)
|
||||
struct mvgbe_device *dmvgbe;
|
||||
struct eth_device *dev;
|
||||
int devnum;
|
||||
char *s;
|
||||
u8 used_ports[MAX_MVGBE_DEVS] = CONFIG_MVGBE_PORTS;
|
||||
|
||||
for (devnum = 0; devnum < MAX_MVGBE_DEVS; devnum++) {
|
||||
@@ -706,16 +705,13 @@ error1:
|
||||
/* must be less than NAMESIZE (16) */
|
||||
sprintf(dev->name, "egiga%d", devnum);
|
||||
|
||||
/* Extract the MAC address from the environment */
|
||||
switch (devnum) {
|
||||
case 0:
|
||||
dmvgbe->regs = (void *)MVGBE0_BASE;
|
||||
s = "ethaddr";
|
||||
break;
|
||||
#if defined(MVGBE1_BASE)
|
||||
case 1:
|
||||
dmvgbe->regs = (void *)MVGBE1_BASE;
|
||||
s = "eth1addr";
|
||||
break;
|
||||
#endif
|
||||
default: /* this should never happen */
|
||||
@@ -724,25 +720,6 @@ error1:
|
||||
return -1;
|
||||
}
|
||||
|
||||
while (!eth_getenv_enetaddr(s, dev->enetaddr)) {
|
||||
/* Generate Private MAC addr if not set */
|
||||
dev->enetaddr[0] = 0x02;
|
||||
dev->enetaddr[1] = 0x50;
|
||||
dev->enetaddr[2] = 0x43;
|
||||
#if defined (CONFIG_SKIP_LOCAL_MAC_RANDOMIZATION)
|
||||
/* Generate fixed lower MAC half using devnum */
|
||||
dev->enetaddr[3] = 0;
|
||||
dev->enetaddr[4] = 0;
|
||||
dev->enetaddr[5] = devnum;
|
||||
#else
|
||||
/* Generate random lower MAC half */
|
||||
dev->enetaddr[3] = get_random_hex();
|
||||
dev->enetaddr[4] = get_random_hex();
|
||||
dev->enetaddr[5] = get_random_hex();
|
||||
#endif
|
||||
eth_setenv_enetaddr(s, dev->enetaddr);
|
||||
}
|
||||
|
||||
dev->init = (void *)mvgbe_init;
|
||||
dev->halt = (void *)mvgbe_halt;
|
||||
dev->send = (void *)mvgbe_send;
|
||||
|
||||
@@ -32,9 +32,20 @@ static struct phy_driver KSZ804_driver = {
|
||||
.shutdown = &genphy_shutdown,
|
||||
};
|
||||
|
||||
static struct phy_driver KS8721_driver = {
|
||||
.name = "Micrel KS8721BL",
|
||||
.uid = 0x221610,
|
||||
.mask = 0xfffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.config = &genphy_config,
|
||||
.startup = &genphy_startup,
|
||||
.shutdown = &genphy_shutdown,
|
||||
};
|
||||
|
||||
int phy_micrel_init(void)
|
||||
{
|
||||
phy_register(&KSZ804_driver);
|
||||
phy_register(&KS8721_driver);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
+1
-1
@@ -876,7 +876,7 @@ do_fat_read (const char *filename, void *buffer, unsigned long maxsize,
|
||||
while (1) {
|
||||
int i;
|
||||
|
||||
debug("FAT read sect=%d, clust_size=%d, DIRENTSPERBLOCK=%d\n",
|
||||
debug("FAT read sect=%d, clust_size=%d, DIRENTSPERBLOCK=%zd\n",
|
||||
cursect, mydata->clust_size, DIRENTSPERBLOCK);
|
||||
|
||||
if (disk_read(cursect,
|
||||
|
||||
+1
-10
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
+1
-1
@@ -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)
|
||||
|
||||
@@ -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
|
||||
+149
-88
@@ -26,6 +26,9 @@
|
||||
# define NUM_TYPE long long
|
||||
#define noinline __attribute__((noinline))
|
||||
|
||||
/* some reluctance to put this into a new limits.h, so it is here */
|
||||
#define INT_MAX ((int)(~0U>>1))
|
||||
|
||||
const char hex_asc[] = "0123456789abcdef";
|
||||
#define hex_asc_lo(x) hex_asc[((x) & 0x0f)]
|
||||
#define hex_asc_hi(x) hex_asc[((x) & 0xf0) >> 4]
|
||||
@@ -64,32 +67,6 @@ unsigned long simple_strtoul(const char *cp,char **endp,unsigned int base)
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* strict_strtoul - convert a string to an unsigned long strictly
|
||||
* @cp: The string to be converted
|
||||
* @base: The number base to use
|
||||
* @res: The converted result value
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* It returns 0 if conversion is successful and *res is set to the converted
|
||||
* value, otherwise it returns -EINVAL and *res is set to 0.
|
||||
*
|
||||
* 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)
|
||||
{
|
||||
char *tail;
|
||||
@@ -291,7 +268,22 @@ static noinline char* put_dec(char *buf, unsigned NUM_TYPE num)
|
||||
#define SMALL 32 /* Must be 32 == 0x20 */
|
||||
#define SPECIAL 64 /* 0x */
|
||||
|
||||
static char *number(char *buf, unsigned NUM_TYPE num, int base, int size, int precision, int type)
|
||||
#ifdef CONFIG_SYS_VSNPRINTF
|
||||
/*
|
||||
* Macro to add a new character to our output string, but only if it will
|
||||
* fit. The macro moves to the next character position in the output string.
|
||||
*/
|
||||
#define ADDCH(str, ch) do { \
|
||||
if ((str) < end) \
|
||||
*(str) = (ch); \
|
||||
++str; \
|
||||
} while (0)
|
||||
#else
|
||||
#define ADDCH(str, ch) (*(str)++ = (ch))
|
||||
#endif
|
||||
|
||||
static char *number(char *buf, char *end, unsigned NUM_TYPE num,
|
||||
int base, int size, int precision, int type)
|
||||
{
|
||||
/* we are called with base 8, 10 or 16, only, thus don't need "G..." */
|
||||
static const char digits[16] = "0123456789ABCDEF"; /* "GHIJKLMNOPQRSTUVWXYZ"; */
|
||||
@@ -353,37 +345,40 @@ static char *number(char *buf, unsigned NUM_TYPE num, int base, int size, int pr
|
||||
precision = i;
|
||||
/* leading space padding */
|
||||
size -= precision;
|
||||
if (!(type & (ZEROPAD+LEFT)))
|
||||
while(--size >= 0)
|
||||
*buf++ = ' ';
|
||||
if (!(type & (ZEROPAD + LEFT))) {
|
||||
while (--size >= 0)
|
||||
ADDCH(buf, ' ');
|
||||
}
|
||||
/* sign */
|
||||
if (sign)
|
||||
*buf++ = sign;
|
||||
ADDCH(buf, sign);
|
||||
/* "0x" / "0" prefix */
|
||||
if (need_pfx) {
|
||||
*buf++ = '0';
|
||||
ADDCH(buf, '0');
|
||||
if (base == 16)
|
||||
*buf++ = ('X' | locase);
|
||||
ADDCH(buf, 'X' | locase);
|
||||
}
|
||||
/* zero or space padding */
|
||||
if (!(type & LEFT)) {
|
||||
char c = (type & ZEROPAD) ? '0' : ' ';
|
||||
|
||||
while (--size >= 0)
|
||||
*buf++ = c;
|
||||
ADDCH(buf, c);
|
||||
}
|
||||
/* hmm even more zero padding? */
|
||||
while (i <= --precision)
|
||||
*buf++ = '0';
|
||||
ADDCH(buf, '0');
|
||||
/* actual digits of result */
|
||||
while (--i >= 0)
|
||||
*buf++ = tmp[i];
|
||||
ADDCH(buf, tmp[i]);
|
||||
/* trailing space padding */
|
||||
while (--size >= 0)
|
||||
*buf++ = ' ';
|
||||
ADDCH(buf, ' ');
|
||||
return buf;
|
||||
}
|
||||
|
||||
static char *string(char *buf, char *s, int field_width, int precision, int flags)
|
||||
static char *string(char *buf, char *end, char *s, int field_width,
|
||||
int precision, int flags)
|
||||
{
|
||||
int len, i;
|
||||
|
||||
@@ -394,16 +389,16 @@ static char *string(char *buf, char *s, int field_width, int precision, int flag
|
||||
|
||||
if (!(flags & LEFT))
|
||||
while (len < field_width--)
|
||||
*buf++ = ' ';
|
||||
ADDCH(buf, ' ');
|
||||
for (i = 0; i < len; ++i)
|
||||
*buf++ = *s++;
|
||||
ADDCH(buf, *s++);
|
||||
while (len < field_width--)
|
||||
*buf++ = ' ';
|
||||
ADDCH(buf, ' ');
|
||||
return buf;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CMD_NET
|
||||
static char *mac_address_string(char *buf, u8 *addr, int field_width,
|
||||
static char *mac_address_string(char *buf, char *end, u8 *addr, int field_width,
|
||||
int precision, int flags)
|
||||
{
|
||||
char mac_addr[6 * 3]; /* (6 * 2 hex digits), 5 colons and trailing zero */
|
||||
@@ -417,10 +412,11 @@ static char *mac_address_string(char *buf, u8 *addr, int field_width,
|
||||
}
|
||||
*p = '\0';
|
||||
|
||||
return string(buf, mac_addr, field_width, precision, flags & ~SPECIAL);
|
||||
return string(buf, end, mac_addr, field_width, precision,
|
||||
flags & ~SPECIAL);
|
||||
}
|
||||
|
||||
static char *ip6_addr_string(char *buf, u8 *addr, int field_width,
|
||||
static char *ip6_addr_string(char *buf, char *end, u8 *addr, int field_width,
|
||||
int precision, int flags)
|
||||
{
|
||||
char ip6_addr[8 * 5]; /* (8 * 4 hex digits), 7 colons and trailing zero */
|
||||
@@ -435,10 +431,11 @@ static char *ip6_addr_string(char *buf, u8 *addr, int field_width,
|
||||
}
|
||||
*p = '\0';
|
||||
|
||||
return string(buf, ip6_addr, field_width, precision, flags & ~SPECIAL);
|
||||
return string(buf, end, ip6_addr, field_width, precision,
|
||||
flags & ~SPECIAL);
|
||||
}
|
||||
|
||||
static char *ip4_addr_string(char *buf, u8 *addr, int field_width,
|
||||
static char *ip4_addr_string(char *buf, char *end, u8 *addr, int field_width,
|
||||
int precision, int flags)
|
||||
{
|
||||
char ip4_addr[4 * 4]; /* (4 * 3 decimal digits), 3 dots and trailing zero */
|
||||
@@ -456,7 +453,8 @@ static char *ip4_addr_string(char *buf, u8 *addr, int field_width,
|
||||
}
|
||||
*p = '\0';
|
||||
|
||||
return string(buf, ip4_addr, field_width, precision, flags & ~SPECIAL);
|
||||
return string(buf, end, ip4_addr, field_width, precision,
|
||||
flags & ~SPECIAL);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -478,10 +476,12 @@ static char *ip4_addr_string(char *buf, u8 *addr, int field_width,
|
||||
* function pointers are really function descriptors, which contain a
|
||||
* pointer to the real address.
|
||||
*/
|
||||
static char *pointer(const char *fmt, char *buf, void *ptr, int field_width, int precision, int flags)
|
||||
static char *pointer(const char *fmt, char *buf, char *end, void *ptr,
|
||||
int field_width, int precision, int flags)
|
||||
{
|
||||
if (!ptr)
|
||||
return string(buf, "(null)", field_width, precision, flags);
|
||||
return string(buf, end, "(null)", field_width, precision,
|
||||
flags);
|
||||
|
||||
#ifdef CONFIG_CMD_NET
|
||||
switch (*fmt) {
|
||||
@@ -489,15 +489,18 @@ static char *pointer(const char *fmt, char *buf, void *ptr, int field_width, int
|
||||
flags |= SPECIAL;
|
||||
/* Fallthrough */
|
||||
case 'M':
|
||||
return mac_address_string(buf, ptr, field_width, precision, flags);
|
||||
return mac_address_string(buf, end, ptr, field_width,
|
||||
precision, flags);
|
||||
case 'i':
|
||||
flags |= SPECIAL;
|
||||
/* Fallthrough */
|
||||
case 'I':
|
||||
if (fmt[1] == '6')
|
||||
return ip6_addr_string(buf, ptr, field_width, precision, flags);
|
||||
return ip6_addr_string(buf, end, ptr, field_width,
|
||||
precision, flags);
|
||||
if (fmt[1] == '4')
|
||||
return ip4_addr_string(buf, ptr, field_width, precision, flags);
|
||||
return ip4_addr_string(buf, end, ptr, field_width,
|
||||
precision, flags);
|
||||
flags &= ~SPECIAL;
|
||||
break;
|
||||
}
|
||||
@@ -507,27 +510,12 @@ static char *pointer(const char *fmt, char *buf, void *ptr, int field_width, int
|
||||
field_width = 2*sizeof(void *);
|
||||
flags |= ZEROPAD;
|
||||
}
|
||||
return number(buf, (unsigned long) ptr, 16, field_width, precision, flags);
|
||||
return number(buf, end, (unsigned long)ptr, 16, field_width,
|
||||
precision, flags);
|
||||
}
|
||||
|
||||
/**
|
||||
* vsprintf - Format a string and place it in a buffer
|
||||
* @buf: The buffer to place the result into
|
||||
* @fmt: The format string to use
|
||||
* @args: Arguments for the format string
|
||||
*
|
||||
* This function follows C99 vsprintf, 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 written
|
||||
* into @buf.
|
||||
*
|
||||
* Call this function if you are already dealing with a va_list.
|
||||
* You probably want sprintf() instead.
|
||||
*/
|
||||
int vsprintf(char *buf, const char *fmt, va_list args)
|
||||
static int vsnprintf_internal(char *buf, size_t size, const char *fmt,
|
||||
va_list args)
|
||||
{
|
||||
unsigned NUM_TYPE num;
|
||||
int base;
|
||||
@@ -542,12 +530,20 @@ int vsprintf(char *buf, const char *fmt, va_list args)
|
||||
/* 'z' support added 23/7/1999 S.H. */
|
||||
/* 'z' changed to 'Z' --davidm 1/25/99 */
|
||||
/* 't' added for ptrdiff_t */
|
||||
char *end = buf + size;
|
||||
|
||||
#ifdef CONFIG_SYS_VSNPRINTF
|
||||
/* Make sure end is always >= buf - do we want this in U-Boot? */
|
||||
if (end < buf) {
|
||||
end = ((void *)-1);
|
||||
size = end - buf;
|
||||
}
|
||||
#endif
|
||||
str = buf;
|
||||
|
||||
for (; *fmt ; ++fmt) {
|
||||
if (*fmt != '%') {
|
||||
*str++ = *fmt;
|
||||
ADDCH(str, *fmt);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -609,20 +605,22 @@ int vsprintf(char *buf, const char *fmt, va_list args)
|
||||
|
||||
switch (*fmt) {
|
||||
case 'c':
|
||||
if (!(flags & LEFT))
|
||||
if (!(flags & LEFT)) {
|
||||
while (--field_width > 0)
|
||||
*str++ = ' ';
|
||||
*str++ = (unsigned char) va_arg(args, int);
|
||||
ADDCH(str, ' ');
|
||||
}
|
||||
ADDCH(str, (unsigned char) va_arg(args, int));
|
||||
while (--field_width > 0)
|
||||
*str++ = ' ';
|
||||
ADDCH(str, ' ');
|
||||
continue;
|
||||
|
||||
case 's':
|
||||
str = string(str, va_arg(args, char *), field_width, precision, flags);
|
||||
str = string(str, end, va_arg(args, char *),
|
||||
field_width, precision, flags);
|
||||
continue;
|
||||
|
||||
case 'p':
|
||||
str = pointer(fmt+1, str,
|
||||
str = pointer(fmt+1, str, end,
|
||||
va_arg(args, void *),
|
||||
field_width, precision, flags);
|
||||
/* Skip all alphanumeric pointer suffixes */
|
||||
@@ -641,7 +639,7 @@ int vsprintf(char *buf, const char *fmt, va_list args)
|
||||
continue;
|
||||
|
||||
case '%':
|
||||
*str++ = '%';
|
||||
ADDCH(str, '%');
|
||||
continue;
|
||||
|
||||
/* integer number formats - set up the flags and "break" */
|
||||
@@ -662,9 +660,9 @@ int vsprintf(char *buf, const char *fmt, va_list args)
|
||||
break;
|
||||
|
||||
default:
|
||||
*str++ = '%';
|
||||
ADDCH(str, '%');
|
||||
if (*fmt)
|
||||
*str++ = *fmt;
|
||||
ADDCH(str, *fmt);
|
||||
else
|
||||
--fmt;
|
||||
continue;
|
||||
@@ -688,23 +686,86 @@ int vsprintf(char *buf, const char *fmt, va_list args)
|
||||
if (flags & SIGN)
|
||||
num = (signed int) num;
|
||||
}
|
||||
str = number(str, num, base, field_width, precision, flags);
|
||||
str = number(str, end, num, base, field_width, precision,
|
||||
flags);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SYS_VSNPRINTF
|
||||
if (size > 0) {
|
||||
ADDCH(str, '\0');
|
||||
if (str > end)
|
||||
end[-1] = '\0';
|
||||
}
|
||||
#else
|
||||
*str = '\0';
|
||||
#endif
|
||||
/* the trailing null byte doesn't count towards the total */
|
||||
return str-buf;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SYS_VSNPRINTF
|
||||
int vsnprintf(char *buf, size_t size, const char *fmt,
|
||||
va_list args)
|
||||
{
|
||||
return vsnprintf_internal(buf, size, fmt, args);
|
||||
}
|
||||
|
||||
int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
|
||||
{
|
||||
int i;
|
||||
|
||||
i = vsnprintf(buf, size, fmt, args);
|
||||
|
||||
if (likely(i < size))
|
||||
return i;
|
||||
if (size != 0)
|
||||
return size - 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int snprintf(char *buf, size_t size, const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
int i;
|
||||
|
||||
va_start(args, fmt);
|
||||
i = vsnprintf(buf, size, fmt, args);
|
||||
va_end(args);
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
int scnprintf(char *buf, size_t size, const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
int i;
|
||||
|
||||
va_start(args, fmt);
|
||||
i = vscnprintf(buf, size, fmt, args);
|
||||
va_end(args);
|
||||
|
||||
return i;
|
||||
}
|
||||
#endif /* CONFIG_SYS_VSNPRINT */
|
||||
|
||||
/**
|
||||
* sprintf - Format a string and place it in a buffer
|
||||
* @buf: The buffer to place the result into
|
||||
* @fmt: The format string to use
|
||||
* @...: Arguments for the format string
|
||||
* Format a string and place it in a buffer (va_list version)
|
||||
*
|
||||
* @param buf The buffer to place the result into
|
||||
* @param fmt The format string to use
|
||||
* @param args Arguments for the format string
|
||||
*
|
||||
* The function returns the number of characters written
|
||||
* into @buf.
|
||||
* into @buf. Use vsnprintf() or vscnprintf() in order to avoid
|
||||
* buffer overflows.
|
||||
*
|
||||
* See the vsprintf() documentation for format string extensions over C99.
|
||||
* If you're not already dealing with a va_list consider using sprintf().
|
||||
*/
|
||||
int vsprintf(char *buf, const char *fmt, va_list args)
|
||||
{
|
||||
return vsnprintf_internal(buf, INT_MAX, fmt, args);
|
||||
}
|
||||
|
||||
int sprintf(char * buf, const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
@@ -127,7 +127,6 @@ struct eth_device *eth_get_dev_by_name(const char *devname)
|
||||
struct eth_device *eth_get_dev_by_index(int index)
|
||||
{
|
||||
struct eth_device *dev, *target_dev;
|
||||
int idx = 0;
|
||||
|
||||
if (!eth_devices)
|
||||
return NULL;
|
||||
@@ -135,12 +134,11 @@ struct eth_device *eth_get_dev_by_index(int index)
|
||||
dev = eth_devices;
|
||||
target_dev = NULL;
|
||||
do {
|
||||
if (idx == index) {
|
||||
if (dev->index == index) {
|
||||
target_dev = dev;
|
||||
break;
|
||||
}
|
||||
dev = dev->next;
|
||||
idx++;
|
||||
} while (dev != eth_devices);
|
||||
|
||||
return target_dev;
|
||||
@@ -148,24 +146,11 @@ struct eth_device *eth_get_dev_by_index(int index)
|
||||
|
||||
int eth_get_dev_index (void)
|
||||
{
|
||||
struct eth_device *dev;
|
||||
int num = 0;
|
||||
|
||||
if (!eth_devices) {
|
||||
return (-1);
|
||||
if (!eth_current) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (dev = eth_devices; dev; dev = dev->next) {
|
||||
if (dev == eth_current)
|
||||
break;
|
||||
++num;
|
||||
}
|
||||
|
||||
if (dev) {
|
||||
return (num);
|
||||
}
|
||||
|
||||
return (0);
|
||||
return eth_current->index;
|
||||
}
|
||||
|
||||
static void eth_current_changed(void)
|
||||
@@ -219,6 +204,7 @@ int eth_write_hwaddr(struct eth_device *dev, const char *base_name,
|
||||
int eth_register(struct eth_device *dev)
|
||||
{
|
||||
struct eth_device *d;
|
||||
static int index = 0;
|
||||
|
||||
assert(strlen(dev->name) < NAMESIZE);
|
||||
|
||||
@@ -233,14 +219,14 @@ int eth_register(struct eth_device *dev)
|
||||
|
||||
dev->state = ETH_STATE_INIT;
|
||||
dev->next = eth_devices;
|
||||
dev->index = index++;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int eth_initialize(bd_t *bis)
|
||||
{
|
||||
int eth_number = 0;
|
||||
|
||||
int num_devices = 0;
|
||||
eth_devices = NULL;
|
||||
eth_current = NULL;
|
||||
|
||||
@@ -281,7 +267,7 @@ int eth_initialize(bd_t *bis)
|
||||
|
||||
show_boot_progress (65);
|
||||
do {
|
||||
if (eth_number)
|
||||
if (dev->index)
|
||||
puts (", ");
|
||||
|
||||
printf("%s", dev->name);
|
||||
@@ -294,18 +280,18 @@ int eth_initialize(bd_t *bis)
|
||||
if (strchr(dev->name, ' '))
|
||||
puts("\nWarning: eth device name has a space!\n");
|
||||
|
||||
if (eth_write_hwaddr(dev, "eth", eth_number))
|
||||
if (eth_write_hwaddr(dev, "eth", dev->index))
|
||||
puts("\nWarning: failed to set MAC address\n");
|
||||
|
||||
eth_number++;
|
||||
dev = dev->next;
|
||||
num_devices++;
|
||||
} while(dev != eth_devices);
|
||||
|
||||
eth_current_changed();
|
||||
putc ('\n');
|
||||
}
|
||||
|
||||
return eth_number;
|
||||
return num_devices;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MCAST_TFTP
|
||||
@@ -356,7 +342,6 @@ u32 ether_crc (size_t len, unsigned char const *p)
|
||||
|
||||
int eth_init(bd_t *bis)
|
||||
{
|
||||
int eth_number;
|
||||
struct eth_device *old_current, *dev;
|
||||
|
||||
if (!eth_current) {
|
||||
@@ -365,16 +350,14 @@ int eth_init(bd_t *bis)
|
||||
}
|
||||
|
||||
/* Sync environment with network devices */
|
||||
eth_number = 0;
|
||||
dev = eth_devices;
|
||||
do {
|
||||
uchar env_enetaddr[6];
|
||||
|
||||
if (eth_getenv_enetaddr_by_index("eth", eth_number,
|
||||
if (eth_getenv_enetaddr_by_index("eth", dev->index,
|
||||
env_enetaddr))
|
||||
memcpy(dev->enetaddr, env_enetaddr, 6);
|
||||
|
||||
++eth_number;
|
||||
dev = dev->next;
|
||||
} while (dev != eth_devices);
|
||||
|
||||
|
||||
+18
-5
@@ -39,6 +39,7 @@
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <u-boot/crc.h>
|
||||
#include <version.h>
|
||||
|
||||
#define CRC_SIZE sizeof(uint32_t)
|
||||
|
||||
@@ -59,6 +60,7 @@ static void usage(const char *exec_name)
|
||||
"\t-b : the target is big endian (default is little endian)\n"
|
||||
"\t-p <byte> : fill the image with <byte> bytes instead of "
|
||||
"0xff bytes\n"
|
||||
"\t-V : print version information and exit\n"
|
||||
"\n"
|
||||
"If the input file is \"-\", data is read from standard input\n",
|
||||
exec_name);
|
||||
@@ -86,8 +88,11 @@ int main(int argc, char **argv)
|
||||
|
||||
prg = basename(argv[0]);
|
||||
|
||||
/* Turn off getopt()'s internal error message */
|
||||
opterr = 0;
|
||||
|
||||
/* Parse the cmdline */
|
||||
while ((option = getopt(argc, argv, "s:o:rbp:h")) != -1) {
|
||||
while ((option = getopt(argc, argv, ":s:o:rbp:hV")) != -1) {
|
||||
switch (option) {
|
||||
case 's':
|
||||
datasize = strtol(optarg, NULL, 0);
|
||||
@@ -112,6 +117,14 @@ int main(int argc, char **argv)
|
||||
case 'h':
|
||||
usage(prg);
|
||||
return EXIT_SUCCESS;
|
||||
case 'V':
|
||||
printf("%s version %s\n", prg, PLAIN_VERSION);
|
||||
return EXIT_SUCCESS;
|
||||
case ':':
|
||||
fprintf(stderr, "Missing argument for option -%c\n",
|
||||
option);
|
||||
usage(argv[0]);
|
||||
return EXIT_FAILURE;
|
||||
default:
|
||||
fprintf(stderr, "Wrong option -%c\n", option);
|
||||
usage(prg);
|
||||
@@ -122,7 +135,7 @@ int main(int argc, char **argv)
|
||||
/* Check datasize and allocate the data */
|
||||
if (datasize == 0) {
|
||||
fprintf(stderr,
|
||||
"Please specify the size of the envrionnment "
|
||||
"Please specify the size of the environment "
|
||||
"partition.\n");
|
||||
usage(prg);
|
||||
return EXIT_FAILURE;
|
||||
@@ -188,12 +201,12 @@ int main(int argc, char **argv)
|
||||
ret = close(txt_fd);
|
||||
}
|
||||
/*
|
||||
* The right test to do is "=>" (not ">") because of the additionnal
|
||||
* The right test to do is "=>" (not ">") because of the additional
|
||||
* ending \0. See below.
|
||||
*/
|
||||
if (filesize >= envsize) {
|
||||
fprintf(stderr, "The input file is larger than the "
|
||||
"envrionnment partition size\n");
|
||||
"environment partition size\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
@@ -202,7 +215,7 @@ int main(int argc, char **argv)
|
||||
if (filebuf[fp] == '\n') {
|
||||
if (fp == 0) {
|
||||
/*
|
||||
* Newline at the beggining of the file ?
|
||||
* Newline at the beginning of the file ?
|
||||
* Ignore it.
|
||||
*/
|
||||
continue;
|
||||
|
||||
Reference in New Issue
Block a user