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 | ||||
|           Support the x86 architecture | ||||
|  | ||||
| config ARCH_POWERPC | ||||
|         bool "PowerPC" | ||||
|         help | ||||
| 	  Support the PowerPC architecture | ||||
|  | ||||
| config ARCH_X86 | ||||
|         bool "x86" | ||||
|         help | ||||
|   | ||||
| @@ -92,7 +92,6 @@ include util/kconfig/Makefile | ||||
| include $(HAVE_DOTCONFIG) | ||||
|  | ||||
| ARCHDIR-$(CONFIG_ARCH_ARMV7)   := armv7 | ||||
| ARCHDIR-$(CONFIG_ARCH_POWERPC) := powerpc | ||||
| ARCHDIR-$(CONFIG_ARCH_X86)     := x86 | ||||
|  | ||||
| ARCH-y := $(ARCHDIR-y) | ||||
| @@ -100,7 +99,6 @@ ARCH-y := $(ARCHDIR-y) | ||||
| # If architecture folder name is different from GCC binutils architecture name, | ||||
| # override here. | ||||
| ARCH-$(CONFIG_ARCH_ARMV7)   := armv7 | ||||
| ARCH-$(CONFIG_ARCH_POWERPC) := powerpc | ||||
| ARCH-$(CONFIG_ARCH_X86)     := i386 | ||||
|  | ||||
| CC := $(CC_$(ARCH-y)) | ||||
|   | ||||
| @@ -33,7 +33,6 @@ export KERNELVERSION      := 0.2.0 | ||||
|  | ||||
| ARCHDIR-$(CONFIG_ARCH_ARMV7)   := armv7 | ||||
| ARCHDIR-$(CONFIG_ARCH_X86)     := x86 | ||||
| ARCHDIR-$(CONFIG_ARCH_POWERPC) := powerpc | ||||
| DESTDIR ?= install | ||||
|  | ||||
| real-target: lib | ||||
|   | ||||
| @@ -28,5 +28,4 @@ | ||||
| ## | ||||
|  | ||||
| source "arch/armv7/Config.in" | ||||
| source "arch/powerpc/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 | ||||
| fi | ||||
|  | ||||
| if [ "$CONFIG_ARCH_POWERPC" = "y" ]; then | ||||
|   _ARCHINCDIR=$_INCDIR/powerpc | ||||
|   _ARCHLIBDIR=$_LIBDIR/powerpc | ||||
|   _ARCHEXTRA="" | ||||
|   _ARCH=powerpc | ||||
| fi | ||||
|  | ||||
| if [ "$CONFIG_ARCH_X86" = "y" ]; then | ||||
|   _ARCHINCDIR=$_INCDIR/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