diff options
Diffstat (limited to 'payloads/libpayload')
-rw-r--r-- | payloads/libpayload/Config.in | 5 | ||||
-rw-r--r-- | payloads/libpayload/Makefile | 2 | ||||
-rw-r--r-- | payloads/libpayload/Makefile.inc | 1 | ||||
-rw-r--r-- | payloads/libpayload/arch/Config.in | 1 | ||||
-rw-r--r-- | payloads/libpayload/arch/powerpc/Config.in | 37 | ||||
-rw-r--r-- | payloads/libpayload/arch/powerpc/Makefile.inc | 34 | ||||
-rw-r--r-- | payloads/libpayload/arch/powerpc/coreboot.c | 171 | ||||
-rw-r--r-- | payloads/libpayload/arch/powerpc/exec.S | 100 | ||||
-rw-r--r-- | payloads/libpayload/arch/powerpc/head.S | 87 | ||||
-rw-r--r-- | payloads/libpayload/arch/powerpc/main.c | 73 | ||||
-rw-r--r-- | payloads/libpayload/arch/powerpc/sysinfo.c | 80 | ||||
-rw-r--r-- | payloads/libpayload/arch/powerpc/timer.c | 65 | ||||
-rw-r--r-- | payloads/libpayload/arch/powerpc/util.S | 40 | ||||
-rw-r--r-- | payloads/libpayload/arch/powerpc/virtual.c | 37 | ||||
-rwxr-xr-x | payloads/libpayload/bin/lpgcc | 7 | ||||
-rw-r--r-- | payloads/libpayload/include/powerpc/arch/io.h | 123 | ||||
-rw-r--r-- | payloads/libpayload/include/powerpc/arch/types.h | 60 | ||||
-rw-r--r-- | payloads/libpayload/include/powerpc/arch/virtual.h | 41 |
18 files changed, 0 insertions, 964 deletions
diff --git a/payloads/libpayload/Config.in b/payloads/libpayload/Config.in index bb5176f712..ae90285943 100644 --- a/payloads/libpayload/Config.in +++ b/payloads/libpayload/Config.in @@ -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 diff --git a/payloads/libpayload/Makefile b/payloads/libpayload/Makefile index bfa1abf481..a1e8dc7510 100644 --- a/payloads/libpayload/Makefile +++ b/payloads/libpayload/Makefile @@ -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)) diff --git a/payloads/libpayload/Makefile.inc b/payloads/libpayload/Makefile.inc index 7f8889e8da..dee33bcfa0 100644 --- a/payloads/libpayload/Makefile.inc +++ b/payloads/libpayload/Makefile.inc @@ -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 diff --git a/payloads/libpayload/arch/Config.in b/payloads/libpayload/arch/Config.in index ebc03c6137..1049da02cc 100644 --- a/payloads/libpayload/arch/Config.in +++ b/payloads/libpayload/arch/Config.in @@ -28,5 +28,4 @@ ## source "arch/armv7/Config.in" -source "arch/powerpc/Config.in" source "arch/x86/Config.in" diff --git a/payloads/libpayload/arch/powerpc/Config.in b/payloads/libpayload/arch/powerpc/Config.in deleted file mode 100644 index f64f0066f9..0000000000 --- a/payloads/libpayload/arch/powerpc/Config.in +++ /dev/null @@ -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 diff --git a/payloads/libpayload/arch/powerpc/Makefile.inc b/payloads/libpayload/arch/powerpc/Makefile.inc deleted file mode 100644 index 44ce431092..0000000000 --- a/payloads/libpayload/arch/powerpc/Makefile.inc +++ /dev/null @@ -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 - diff --git a/payloads/libpayload/arch/powerpc/coreboot.c b/payloads/libpayload/arch/powerpc/coreboot.c deleted file mode 100644 index 7da87ed2f2..0000000000 --- a/payloads/libpayload/arch/powerpc/coreboot.c +++ /dev/null @@ -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; -} diff --git a/payloads/libpayload/arch/powerpc/exec.S b/payloads/libpayload/arch/powerpc/exec.S deleted file mode 100644 index 45672cba3e..0000000000 --- a/payloads/libpayload/arch/powerpc/exec.S +++ /dev/null @@ -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 diff --git a/payloads/libpayload/arch/powerpc/head.S b/payloads/libpayload/arch/powerpc/head.S deleted file mode 100644 index de6edadaff..0000000000 --- a/payloads/libpayload/arch/powerpc/head.S +++ /dev/null @@ -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 diff --git a/payloads/libpayload/arch/powerpc/main.c b/payloads/libpayload/arch/powerpc/main.c deleted file mode 100644 index 9722e0c0c5..0000000000 --- a/payloads/libpayload/arch/powerpc/main.c +++ /dev/null @@ -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. - */ -} diff --git a/payloads/libpayload/arch/powerpc/sysinfo.c b/payloads/libpayload/arch/powerpc/sysinfo.c deleted file mode 100644 index 6c1ef3fc1c..0000000000 --- a/payloads/libpayload/arch/powerpc/sysinfo.c +++ /dev/null @@ -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; -} diff --git a/payloads/libpayload/arch/powerpc/timer.c b/payloads/libpayload/arch/powerpc/timer.c deleted file mode 100644 index fb181a4d63..0000000000 --- a/payloads/libpayload/arch/powerpc/timer.c +++ /dev/null @@ -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; -} diff --git a/payloads/libpayload/arch/powerpc/util.S b/payloads/libpayload/arch/powerpc/util.S deleted file mode 100644 index 2905be7d8c..0000000000 --- a/payloads/libpayload/arch/powerpc/util.S +++ /dev/null @@ -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 diff --git a/payloads/libpayload/arch/powerpc/virtual.c b/payloads/libpayload/arch/powerpc/virtual.c deleted file mode 100644 index 6ff588c504..0000000000 --- a/payloads/libpayload/arch/powerpc/virtual.c +++ /dev/null @@ -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; -} diff --git a/payloads/libpayload/bin/lpgcc b/payloads/libpayload/bin/lpgcc index f0b24170e4..43eb016449 100755 --- a/payloads/libpayload/bin/lpgcc +++ b/payloads/libpayload/bin/lpgcc @@ -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 diff --git a/payloads/libpayload/include/powerpc/arch/io.h b/payloads/libpayload/include/powerpc/arch/io.h deleted file mode 100644 index 1676a8a119..0000000000 --- a/payloads/libpayload/include/powerpc/arch/io.h +++ /dev/null @@ -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 diff --git a/payloads/libpayload/include/powerpc/arch/types.h b/payloads/libpayload/include/powerpc/arch/types.h deleted file mode 100644 index 1bd815bb44..0000000000 --- a/payloads/libpayload/include/powerpc/arch/types.h +++ /dev/null @@ -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 diff --git a/payloads/libpayload/include/powerpc/arch/virtual.h b/payloads/libpayload/include/powerpc/arch/virtual.h deleted file mode 100644 index 328c3aa34e..0000000000 --- a/payloads/libpayload/include/powerpc/arch/virtual.h +++ /dev/null @@ -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 |