libpayload: Drop PowerPC architecture
This was never completed / working and we have the working ARMv7 port for an architecture template, so get rid of this dead code. Change-Id: Ic2c1267ee5546dd6e1b63220c263b2fa86c8ae33 Signed-off-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: https://gerrit.chromium.org/gerrit/56065 Reviewed-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-by: Ronald G. Minnich <rminnich@chromium.org> Commit-Queue: Stefan Reinauer <reinauer@chromium.org> Reviewed-on: http://review.coreboot.org/4235 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 Stefan Reinauer
						Stefan Reinauer
					
				
			
			
				
	
			
			
			
						parent
						
							5f5d914876
						
					
				
				
					commit
					b82a74c7ff
				
			| @@ -72,11 +72,6 @@ config ARCH_ARMV7 | |||||||
|         help |         help | ||||||
|           Support the x86 architecture |           Support the x86 architecture | ||||||
|  |  | ||||||
| config ARCH_POWERPC |  | ||||||
|         bool "PowerPC" |  | ||||||
|         help |  | ||||||
| 	  Support the PowerPC architecture |  | ||||||
|  |  | ||||||
| config ARCH_X86 | config ARCH_X86 | ||||||
|         bool "x86" |         bool "x86" | ||||||
|         help |         help | ||||||
|   | |||||||
| @@ -92,7 +92,6 @@ include util/kconfig/Makefile | |||||||
| include $(HAVE_DOTCONFIG) | include $(HAVE_DOTCONFIG) | ||||||
|  |  | ||||||
| ARCHDIR-$(CONFIG_ARCH_ARMV7)   := armv7 | ARCHDIR-$(CONFIG_ARCH_ARMV7)   := armv7 | ||||||
| ARCHDIR-$(CONFIG_ARCH_POWERPC) := powerpc |  | ||||||
| ARCHDIR-$(CONFIG_ARCH_X86)     := x86 | ARCHDIR-$(CONFIG_ARCH_X86)     := x86 | ||||||
|  |  | ||||||
| ARCH-y := $(ARCHDIR-y) | ARCH-y := $(ARCHDIR-y) | ||||||
| @@ -100,7 +99,6 @@ ARCH-y := $(ARCHDIR-y) | |||||||
| # If architecture folder name is different from GCC binutils architecture name, | # If architecture folder name is different from GCC binutils architecture name, | ||||||
| # override here. | # override here. | ||||||
| ARCH-$(CONFIG_ARCH_ARMV7)   := armv7 | ARCH-$(CONFIG_ARCH_ARMV7)   := armv7 | ||||||
| ARCH-$(CONFIG_ARCH_POWERPC) := powerpc |  | ||||||
| ARCH-$(CONFIG_ARCH_X86)     := i386 | ARCH-$(CONFIG_ARCH_X86)     := i386 | ||||||
|  |  | ||||||
| CC := $(CC_$(ARCH-y)) | CC := $(CC_$(ARCH-y)) | ||||||
|   | |||||||
| @@ -33,7 +33,6 @@ export KERNELVERSION      := 0.2.0 | |||||||
|  |  | ||||||
| ARCHDIR-$(CONFIG_ARCH_ARMV7)   := armv7 | ARCHDIR-$(CONFIG_ARCH_ARMV7)   := armv7 | ||||||
| ARCHDIR-$(CONFIG_ARCH_X86)     := x86 | ARCHDIR-$(CONFIG_ARCH_X86)     := x86 | ||||||
| ARCHDIR-$(CONFIG_ARCH_POWERPC) := powerpc |  | ||||||
| DESTDIR ?= install | DESTDIR ?= install | ||||||
|  |  | ||||||
| real-target: lib | real-target: lib | ||||||
|   | |||||||
| @@ -28,5 +28,4 @@ | |||||||
| ## | ## | ||||||
|  |  | ||||||
| source "arch/armv7/Config.in" | source "arch/armv7/Config.in" | ||||||
| source "arch/powerpc/Config.in" |  | ||||||
| source "arch/x86/Config.in" | source "arch/x86/Config.in" | ||||||
|   | |||||||
| @@ -1,37 +0,0 @@ | |||||||
| ## |  | ||||||
| ## This file is part of the libpayload project. |  | ||||||
| ## |  | ||||||
| ## Copyright (c) 2012 Google 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. |  | ||||||
| ## |  | ||||||
|  |  | ||||||
| if ARCH_POWERPC |  | ||||||
|  |  | ||||||
| config ARCH_SPECIFIC_OPTIONS # dummy |  | ||||||
| 	def_bool y |  | ||||||
| 	select BIG_ENDIAN |  | ||||||
| 	select IO_ADDRESS_SPACE |  | ||||||
|  |  | ||||||
| endif |  | ||||||
| @@ -1,34 +0,0 @@ | |||||||
| ## |  | ||||||
| ## 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. |  | ||||||
| ## |  | ||||||
|  |  | ||||||
| head.o-y := head.S |  | ||||||
| libc-y += main.c sysinfo.c |  | ||||||
| libc-y += timer.c coreboot.c util.S |  | ||||||
| libc-y += exec.S virtual.c |  | ||||||
|  |  | ||||||
| @@ -1,171 +0,0 @@ | |||||||
| /* |  | ||||||
|  * 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 <libpayload-config.h> |  | ||||||
| #include <libpayload.h> |  | ||||||
| #include <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); |  | ||||||
|  |  | ||||||
| #ifdef CONFIG_MEMMAP_RAM_ONLY |  | ||||||
| 		if (range->type != CB_MEM_RAM) |  | ||||||
| 			continue; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| 		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; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| #ifdef CONFIG_NVRAM |  | ||||||
| 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; |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| 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; |  | ||||||
| #ifdef CONFIG_NVRAM |  | ||||||
| 		case CB_TAG_CMOS_OPTION_TABLE: |  | ||||||
| 			cb_parse_optiontable(ptr, info); |  | ||||||
| 			break; |  | ||||||
| 		case CB_TAG_OPTION_CHECKSUM: |  | ||||||
| 			cb_parse_checksum(ptr, info); |  | ||||||
| 			break; |  | ||||||
| #endif |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		ptr += rec->size; |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return 1; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* == Architecture specific == */ |  | ||||||
| /* This is the x86 specific stuff. */ |  | ||||||
|  |  | ||||||
| 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; |  | ||||||
| } |  | ||||||
| @@ -1,100 +0,0 @@ | |||||||
| /* |  | ||||||
|  * 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. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* calling syntax:  i386_do_exec(long addr, int argc, char **argv, int *ret) */ |  | ||||||
|  |  | ||||||
| /* This implements the payload API detailed here: |  | ||||||
|  * http://www.coreboot.org/Payload_API |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| .align 4 |  | ||||||
| .text |  | ||||||
|  |  | ||||||
| .globl powerpc_do_exec |  | ||||||
|         .type powerpc_do_exec,@function |  | ||||||
|  |  | ||||||
| powerpc_do_exec: |  | ||||||
| #if 0 |  | ||||||
| 	pushl %ebp |  | ||||||
| 	movl %esp, %ebp |  | ||||||
| 	pushl %eax |  | ||||||
|  |  | ||||||
| 	/* Put the run address in %eax */ |  | ||||||
| 	movl 8(%ebp), %eax |  | ||||||
|  |  | ||||||
| 	/* Save off the rest of the registers */ |  | ||||||
|  |  | ||||||
| 	pushl %esi |  | ||||||
| 	pushl %ecx |  | ||||||
| 	pushl %ebp |  | ||||||
|  |  | ||||||
| 	/* Push the argc and argv pointers on to the stack */ |  | ||||||
|  |  | ||||||
| 	movl 12(%ebp), %esi |  | ||||||
| 	movl 16(%ebp), %ecx |  | ||||||
|  |  | ||||||
| 	pushl %esi |  | ||||||
| 	pushl %ecx |  | ||||||
|  |  | ||||||
| 	/* Move a "magic" number on the stack - the other |  | ||||||
| 	 * payload will use this as a clue that the argc |  | ||||||
| 	 * and argv are sane |  | ||||||
| 	 */ |  | ||||||
|  |  | ||||||
| 	movl  $12345678, %ecx |  | ||||||
| 	pushl %ecx |  | ||||||
|  |  | ||||||
| 	/* Jump to the code */ |  | ||||||
| 	call *%eax |  | ||||||
|  |  | ||||||
| 	/* %eax has the return value */ |  | ||||||
|  |  | ||||||
| 	/* Skip over the argc/argv stuff still on the stack */ |  | ||||||
| 	addl $12, %esp |  | ||||||
|  |  | ||||||
| 	/* Get back %ebp */ |  | ||||||
| 	popl %ebp |  | ||||||
|  |  | ||||||
| 	/* Get the pointer to the return value |  | ||||||
| 	 * and save the return value in it |  | ||||||
|          */ |  | ||||||
|  |  | ||||||
| 	movl 20(%ebp), %ecx |  | ||||||
| 	movl %eax, (%eax) |  | ||||||
|  |  | ||||||
| 	/* Get the rest of the saved registers */ |  | ||||||
| 	popl %ecx |  | ||||||
| 	popl %esi |  | ||||||
| 	popl %eax |  | ||||||
|  |  | ||||||
| 	/* Restore the stack pointer */ |  | ||||||
| 	movl %ebp,%esp |  | ||||||
| 	popl %ebp |  | ||||||
| 	ret |  | ||||||
| #endif |  | ||||||
| @@ -1,87 +0,0 @@ | |||||||
| /* |  | ||||||
|  * 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. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| 	.globl _entry, _leave |  | ||||||
| 	.text |  | ||||||
| 	.align 4 |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Our entry point - assume that the CPU is in 32 bit protected mode and |  | ||||||
|  * all segments are in a flat model. That's our operating mode, so we won't |  | ||||||
|  * change anything. |  | ||||||
|  */ |  | ||||||
| _entry: |  | ||||||
| #if 0 |  | ||||||
| 	call _init |  | ||||||
|  |  | ||||||
| 	/* We're back - go back to the bootloader. */ |  | ||||||
| 	ret |  | ||||||
| 	.align 4 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * This function saves off the previous stack and switches us to our |  | ||||||
|  * own execution environment. |  | ||||||
|  */ |  | ||||||
| _init: |  | ||||||
| 	/* No interrupts, please. */ |  | ||||||
| 	cli |  | ||||||
|  |  | ||||||
| 	/* Store current stack pointer. */ |  | ||||||
| 	movl %esp, %esi |  | ||||||
|  |  | ||||||
| 	/* Store EAX and EBX */ |  | ||||||
|  |  | ||||||
| 	movl %eax,loader_eax |  | ||||||
| 	movl %ebx,loader_ebx |  | ||||||
|  |  | ||||||
| 	/* Setup new stack. */ |  | ||||||
| 	movl $_stack, %ebx |  | ||||||
|  |  | ||||||
| 	movl %ebx, %esp |  | ||||||
|  |  | ||||||
| 	/* Save old stack pointer. */ |  | ||||||
| 	pushl %esi |  | ||||||
|  |  | ||||||
| 	/* Let's rock. */ |  | ||||||
| 	call start_main |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| 	/* %eax has the return value - pass it on unmolested */ |  | ||||||
| _leave: |  | ||||||
| #if 0 |  | ||||||
| 	/* Get old stack pointer. */ |  | ||||||
| 	popl %ebx |  | ||||||
|  |  | ||||||
| 	/* Restore old stack. */ |  | ||||||
| 	movl %ebx, %esp |  | ||||||
|  |  | ||||||
| 	/* Return to the original context. */ |  | ||||||
| 	ret |  | ||||||
| #endif |  | ||||||
| @@ -1,73 +0,0 @@ | |||||||
| /* |  | ||||||
|  * 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. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include <libpayload.h> |  | ||||||
|  |  | ||||||
| unsigned long loader_eax;  /**< The value of EAX passed from the loader */ |  | ||||||
| unsigned long loader_ebx;  /**< The value of EBX passed from the loader */ |  | ||||||
|  |  | ||||||
| unsigned int main_argc;    /**< The argc value to pass to main() */ |  | ||||||
|  |  | ||||||
| /** The argv value to pass to main() */ |  | ||||||
| char *main_argv[MAX_ARGC_COUNT]; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * This is our C entry function - set up the system |  | ||||||
|  * and jump into the payload entry point. |  | ||||||
|  */ |  | ||||||
| void start_main(void); |  | ||||||
| void start_main(void) |  | ||||||
| { |  | ||||||
| 	extern int main(int argc, char **argv); |  | ||||||
|  |  | ||||||
| 	/* Optionally set up the consoles. */ |  | ||||||
| #ifndef CONFIG_SKIP_CONSOLE_INIT |  | ||||||
| 	console_init(); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| 	/* Gather system information. */ |  | ||||||
| 	lib_get_sysinfo(); |  | ||||||
|  |  | ||||||
| 	/* |  | ||||||
| 	 * Any other system init that has to happen before the |  | ||||||
| 	 * user gets control goes here. |  | ||||||
| 	 */ |  | ||||||
|  |  | ||||||
| 	/* |  | ||||||
| 	 * Go to the entry point. |  | ||||||
| 	 * In the future we may care about the return value. |  | ||||||
| 	 */ |  | ||||||
|  |  | ||||||
| 	(void) main(main_argc, (main_argc != 0) ? main_argv : NULL); |  | ||||||
|  |  | ||||||
| 	/* |  | ||||||
| 	 * Returning here will go to the _leave function to return |  | ||||||
| 	 * us to the original context. |  | ||||||
| 	 */ |  | ||||||
| } |  | ||||||
| @@ -1,80 +0,0 @@ | |||||||
| /* |  | ||||||
|  * 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. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include <libpayload-config.h> |  | ||||||
| #include <libpayload.h> |  | ||||||
| #include <coreboot_tables.h> |  | ||||||
| #include <multiboot_tables.h> |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * This is a global structure that is used through the library - we set it |  | ||||||
|  * up initially with some dummy values - hopefully they will be overridden. |  | ||||||
|  */ |  | ||||||
| struct sysinfo_t lib_sysinfo = { |  | ||||||
| 	.cpu_khz = 200, |  | ||||||
| #ifdef CONFIG_SERIAL_CONSOLE |  | ||||||
| 	.ser_ioport = CONFIG_SERIAL_IOBASE, |  | ||||||
| #else |  | ||||||
| 	.ser_ioport = 0x3f8, |  | ||||||
| #endif |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| int lib_get_sysinfo(void) |  | ||||||
| { |  | ||||||
| 	int ret; |  | ||||||
|  |  | ||||||
| 	/* Get the CPU speed (for delays). */ |  | ||||||
| 	lib_sysinfo.cpu_khz = get_cpu_speed(); |  | ||||||
|  |  | ||||||
| #ifdef CONFIG_MULTIBOOT |  | ||||||
| 	/* Get the information from the multiboot tables, |  | ||||||
| 	 * if they exist */ |  | ||||||
| 	get_multiboot_info(&lib_sysinfo); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| 	/* Get information from the coreboot tables, |  | ||||||
| 	 * if they exist */ |  | ||||||
|  |  | ||||||
| 	ret = get_coreboot_info(&lib_sysinfo); |  | ||||||
|  |  | ||||||
| 	if (!lib_sysinfo.n_memranges) { |  | ||||||
| 		/* If we can't get a good memory range, use the default. */ |  | ||||||
| 		lib_sysinfo.n_memranges = 2; |  | ||||||
|  |  | ||||||
| 		lib_sysinfo.memrange[0].base = 0; |  | ||||||
| 		lib_sysinfo.memrange[0].size = 640 * 1024; |  | ||||||
| 		lib_sysinfo.memrange[0].type = CB_MEM_RAM; |  | ||||||
|  |  | ||||||
| 		lib_sysinfo.memrange[1].base = 1024 * 1024; |  | ||||||
| 		lib_sysinfo.memrange[1].size = 31 * 1024 * 1024; |  | ||||||
| 		lib_sysinfo.memrange[1].type = CB_MEM_RAM; |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return ret; |  | ||||||
| } |  | ||||||
| @@ -1,65 +0,0 @@ | |||||||
| /* |  | ||||||
|  * 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. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * @file i386/timer.c |  | ||||||
|  * i386 specific timer routines |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include <libpayload.h> |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * @ingroup arch |  | ||||||
|  * Global variable containing the speed of the processor in KHz. |  | ||||||
|  */ |  | ||||||
| u32 cpu_khz; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Calculate the speed of the processor for use in delays. |  | ||||||
|  * |  | ||||||
|  * @return The CPU speed in kHz. |  | ||||||
|  */ |  | ||||||
| unsigned int get_cpu_speed(void) |  | ||||||
| { |  | ||||||
| 	/* FIXME */ |  | ||||||
| 	cpu_khz = 200 * 1024; |  | ||||||
| 	return cpu_khz; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| uint64_t timer_hz(void) |  | ||||||
| { |  | ||||||
| 	/* FIXME */ |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| uint64_t timer_raw_value(void) |  | ||||||
| { |  | ||||||
| 	/* FIXME */ |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| @@ -1,40 +0,0 @@ | |||||||
| /* |  | ||||||
|  * 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. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| 	.globl halt |  | ||||||
| 	.text |  | ||||||
| 	.align 4 |  | ||||||
|  |  | ||||||
| /* This function puts the system into a halt. */ |  | ||||||
| halt: |  | ||||||
| #if 0 |  | ||||||
| 	cli |  | ||||||
| 	hlt |  | ||||||
| 	jmp halt |  | ||||||
| #endif |  | ||||||
| @@ -1,37 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the libpayload project. |  | ||||||
|  * |  | ||||||
|  * Copyright (C) 2008 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 <unistd.h> |  | ||||||
|  |  | ||||||
| unsigned long virtual_offset = 0; |  | ||||||
|  |  | ||||||
| int getpagesize(void) |  | ||||||
| { |  | ||||||
| 	return 4096; |  | ||||||
| } |  | ||||||
| @@ -75,13 +75,6 @@ if [ "$CONFIG_ARCH_ARMV7" = "y" ]; then | |||||||
|   _ARCH=armv7 |   _ARCH=armv7 | ||||||
| fi | fi | ||||||
|  |  | ||||||
| if [ "$CONFIG_ARCH_POWERPC" = "y" ]; then |  | ||||||
|   _ARCHINCDIR=$_INCDIR/powerpc |  | ||||||
|   _ARCHLIBDIR=$_LIBDIR/powerpc |  | ||||||
|   _ARCHEXTRA="" |  | ||||||
|   _ARCH=powerpc |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ "$CONFIG_ARCH_X86" = "y" ]; then | if [ "$CONFIG_ARCH_X86" = "y" ]; then | ||||||
|   _ARCHINCDIR=$_INCDIR/x86 |   _ARCHINCDIR=$_INCDIR/x86 | ||||||
|   _ARCHLIBDIR=$_LIBDIR/x86 |   _ARCHLIBDIR=$_LIBDIR/x86 | ||||||
|   | |||||||
| @@ -1,123 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the libpayload project. |  | ||||||
|  * |  | ||||||
|  * Copyright (C) 2008 Advanced Micro Devices, Inc. |  | ||||||
|  * Copyright (C) 2008-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. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _ARCH_IO_H |  | ||||||
| #define _ARCH_IO_H |  | ||||||
|  |  | ||||||
| extern uint32_t isa_io_base; |  | ||||||
|  |  | ||||||
| #define readb(_a) (*(volatile unsigned char *) (_a)) |  | ||||||
| #define readw(_a) (*(volatile unsigned short *) (_a)) |  | ||||||
| #define readl(_a) (*(volatile unsigned long *) (_a)) |  | ||||||
|  |  | ||||||
| #define writeb(_v, _a) (*(volatile unsigned char *) (_a) = (_v)) |  | ||||||
| #define writew(_v, _a) (*(volatile unsigned short *) (_a) = (_v)) |  | ||||||
| #define writel(_v, _a) (*(volatile unsigned long *) (_a) = (_v)) |  | ||||||
|  |  | ||||||
| static inline unsigned long inl(int port) |  | ||||||
| { |  | ||||||
| 	volatile unsigned char *addr = (volatile unsigned char *)(isa_io_base + port); |  | ||||||
| 	unsigned long val; |  | ||||||
| 	__asm__ __volatile__("lhbrx %0,0,%1; eieio":"=r"(val): |  | ||||||
| 			"r"(addr), "m"(*addr)); |  | ||||||
| 	return val; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static inline unsigned short inw(int port) |  | ||||||
| { |  | ||||||
| 	volatile unsigned char *addr = (volatile unsigned char *)(isa_io_base + port); |  | ||||||
| 	unsigned short val; |  | ||||||
| 	__asm__ __volatile__("lwbrx %0,0,%1; eieio":"=r"(val):"r"(addr), "m"(*addr)); |  | ||||||
| 	return val; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static inline unsigned char inb(int port) |  | ||||||
| { |  | ||||||
| 	volatile unsigned char *addr = (volatile unsigned char *)(isa_io_base + port); |  | ||||||
| 	unsigned char val; |  | ||||||
| 	__asm__ __volatile__("lbz%U1%X1 %0,%1; eieio":"=r"(val):"m"(*addr)); |  | ||||||
| 	return val; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static inline void outl(unsigned long val, int port) |  | ||||||
| { |  | ||||||
| 	volatile unsigned char *addr = (volatile unsigned char *)(isa_io_base + port); |  | ||||||
| 	__asm__ __volatile__("stb%U0%X0 %1,%0; eieio":"=m"(*addr):"r"(val)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static inline void outw(unsigned short val, int port) |  | ||||||
| { |  | ||||||
| 	volatile unsigned char *addr = (volatile unsigned char *)(isa_io_base + port); |  | ||||||
| 	__asm__ __volatile__("sthbrx %1,0,%2; eieio":"=m"(*addr):"r"(val),"r"(addr)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static inline void outb(unsigned char val, int port) |  | ||||||
| { |  | ||||||
| 	volatile unsigned char *addr = (volatile unsigned char *)(isa_io_base + port); |  | ||||||
| 	__asm__ __volatile__("stwbrx %1,0,%2; eieio":"=m"(*addr):"r"(val), "r"(addr)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static inline void outsl(int port, const void *addr, unsigned long count) |  | ||||||
| { |  | ||||||
| 	volatile unsigned char *addr = (volatile unsigned char *)(isa_io_base + port); |  | ||||||
| 	//__asm__ __volatile__("rep; outsl" : "+S"(addr), "+c"(count) : "d"(port)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static inline void outsw(int port, const void *addr, unsigned long count) |  | ||||||
| { |  | ||||||
| 	volatile unsigned char *addr = (volatile unsigned char *)(isa_io_base + port); |  | ||||||
| 	//__asm__ __volatile__("rep; outsw" : "+S"(addr), "+c"(count) : "d"(port)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static inline void outsb(int port, const void *addr, unsigned long count) |  | ||||||
| { |  | ||||||
| 	volatile unsigned char *addr = (volatile unsigned char *)(isa_io_base + port); |  | ||||||
| 	//__asm__ __volatile__("rep; outsb" : "+S"(addr), "+c"(count) : "d"(port)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static inline void insl(int port, void *addr, unsigned long count) |  | ||||||
| { |  | ||||||
| 	volatile unsigned char *addr = (volatile unsigned char *)(isa_io_base + port); |  | ||||||
| 	//__asm__ __volatile__("rep; insl" : "+D"(addr), "+c"(count) : "d"(port)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static inline void insw(int port, void *addr, unsigned long count) |  | ||||||
| { |  | ||||||
| 	volatile unsigned char *addr = (volatile unsigned char *)(isa_io_base + port); |  | ||||||
| 	//__asm__ __volatile__("rep; insw" : "+D"(addr), "+c"(count) : "d"(port)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static inline void insb(int port, void *addr, unsigned long count) |  | ||||||
| { |  | ||||||
| 	volatile unsigned char *addr = (volatile unsigned char *)(isa_io_base + port); |  | ||||||
| 	//__asm__ __volatile__("rep; insb" : "+D"(addr), "+c"(count) : "d"(port)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,60 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the libpayload project. |  | ||||||
|  * |  | ||||||
|  * Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de> |  | ||||||
|  * |  | ||||||
|  * 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 _ARCH_TYPES_H |  | ||||||
| #define _ARCH_TYPES_H |  | ||||||
|  |  | ||||||
| typedef unsigned char uint8_t; |  | ||||||
| typedef unsigned char u8; |  | ||||||
| typedef signed char int8_t; |  | ||||||
| typedef signed char s8; |  | ||||||
|  |  | ||||||
| typedef unsigned short uint16_t; |  | ||||||
| typedef unsigned short u16; |  | ||||||
| typedef signed short int16_t; |  | ||||||
| typedef signed short s16; |  | ||||||
|  |  | ||||||
| typedef unsigned int uint32_t; |  | ||||||
| typedef unsigned int u32; |  | ||||||
| typedef signed int int32_t; |  | ||||||
| typedef signed int s32; |  | ||||||
|  |  | ||||||
| typedef unsigned long long uint64_t; |  | ||||||
| typedef unsigned long long u64; |  | ||||||
| typedef signed long long int64_t; |  | ||||||
| typedef signed long long s64; |  | ||||||
|  |  | ||||||
| typedef long time_t; |  | ||||||
| typedef long suseconds_t; |  | ||||||
|  |  | ||||||
| #ifndef NULL |  | ||||||
| #define NULL ((void *)0) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,41 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the libpayload project. |  | ||||||
|  * |  | ||||||
|  * Copyright (C) 2008 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. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _ARCH_VIRTUAL_H |  | ||||||
| #define _ARCH_VIRTUAL_H |  | ||||||
|  |  | ||||||
| extern unsigned long virtual_offset; |  | ||||||
|  |  | ||||||
| #define virt_to_phys(virt) ((unsigned long) (virt) + virtual_offset) |  | ||||||
| #define phys_to_virt(phys) ((void *) ((unsigned long) (phys) - virtual_offset)) |  | ||||||
|  |  | ||||||
| #define virt_to_bus(addr) virt_to_phys(addr) |  | ||||||
| #define bus_to_virt(addr) phys_to_virt(addr) |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
		Reference in New Issue
	
	Block a user