summaryrefslogtreecommitdiffstats
path: root/qemu/roms/SLOF/clients/takeover
diff options
context:
space:
mode:
authorRajithaY <rajithax.yerrumsetty@intel.com>2017-04-25 03:31:15 -0700
committerRajitha Yerrumchetty <rajithax.yerrumsetty@intel.com>2017-05-22 06:48:08 +0000
commitbb756eebdac6fd24e8919e2c43f7d2c8c4091f59 (patch)
treeca11e03542edf2d8f631efeca5e1626d211107e3 /qemu/roms/SLOF/clients/takeover
parenta14b48d18a9ed03ec191cf16b162206998a895ce (diff)
Adding qemu as a submodule of KVMFORNFV
This Patch includes the changes to add qemu as a submodule to kvmfornfv repo and make use of the updated latest qemu for the execution of all testcase Change-Id: I1280af507a857675c7f81d30c95255635667bdd7 Signed-off-by:RajithaY<rajithax.yerrumsetty@intel.com>
Diffstat (limited to 'qemu/roms/SLOF/clients/takeover')
-rw-r--r--qemu/roms/SLOF/clients/takeover/Makefile60
-rw-r--r--qemu/roms/SLOF/clients/takeover/client.lds60
-rw-r--r--qemu/roms/SLOF/clients/takeover/entry.S99
-rw-r--r--qemu/roms/SLOF/clients/takeover/main.c163
-rw-r--r--qemu/roms/SLOF/clients/takeover/ppc32wrap.S30
-rw-r--r--qemu/roms/SLOF/clients/takeover/takeover.h23
-rw-r--r--qemu/roms/SLOF/clients/takeover/takeover.ocobin3360 -> 0 bytes
7 files changed, 0 insertions, 435 deletions
diff --git a/qemu/roms/SLOF/clients/takeover/Makefile b/qemu/roms/SLOF/clients/takeover/Makefile
deleted file mode 100644
index f71f7ecdf..000000000
--- a/qemu/roms/SLOF/clients/takeover/Makefile
+++ /dev/null
@@ -1,60 +0,0 @@
-# *****************************************************************************
-# * Copyright (c) 2004, 2011 IBM Corporation
-# * All rights reserved.
-# * This program and the accompanying materials
-# * are made available under the terms of the BSD License
-# * which accompanies this distribution, and is available at
-# * http://www.opensource.org/licenses/bsd-license.php
-# *
-# * Contributors:
-# * IBM Corporation - initial implementation
-# ****************************************************************************/
-
-include $(TOPCMNDIR)/make.rules
-
-SNKDIR = $(TOPCMNDIR)/clients/net-snk
-
-CFLAGS += -fno-builtin -I$(LIBCMNDIR)/libc/include
-CFLAGS += -I$(SNKDIR)/include -I. $(CPUARCHDEF)
-CFLAGS += -I$(INCLBRDDIR) -I$(INCLCMNDIR) -I$(INCLCMNDIR)/$(CPUARCH)
-CFLAGS += -O2 -msoft-float -Wa,-mregnames $(RELEASE)
-
-OBJS = $(SNKDIR)/kernel/kernel.o
-OBJS += $(SNKDIR)/oflib/oflib.o
-OBJS += $(SNKDIR)/libc/time/timer.o
-OBJS += entry.o main.o of.elf takeover.o
-OBJS += $(LIBCMNDIR)/libelf.a $(LIBCMNDIR)/libc.a
-
-%.o: %.S
- $(CC) $(CFLAGS) -c $^
-
-all: takeover.elf
-
-takeover.elf: ppc32wrap.o takeover.elf32
- @echo " ====== Building $@ ======"
- $(LD) -N -melf32ppclinux -static -nostdlib \
- -Ttext=0x400000 -Tdata=0x400100 \
- $(LDFLAGS) $^ -o $@
-
-takeover.elf64: entry.o main.o takeover.o $(SNKDIR)/libc/time/timer.o of.elf
- $(MAKE) -C $(LIBCMNDIR) libc
- $(MAKE) -C $(CLIENTSDIR)
- $(LD) $(LDFLAGS) -o $@ -Tclient.lds $(OBJS)
-
-of.elf: ../../boot_rom.bin
- $(OBJCOPY) --input-target=binary --binary-architecture=powerpc -O elf64-powerpc $< $@
-
-takeover.elf32: takeover.elf64
- $(OBJCOPY) -O binary $^ takeover.tmp
- $(OBJCOPY) --input-target=binary --binary-architecture=powerpc -O elf32-powerpc takeover.tmp $@
-
-ppc32wrap.o: ppc32wrap.S
- $(CROSS)gcc -m32 $(CFLAGS) -c $< -o $@
-
-clean distclean:
- $(MAKE) -C $(LIBCMNDIR) $@
- $(MAKE) -C $(CLIENTSDIR) $@
- $(RM) *.o *.bin *.elf
- $(RM) takeover.elf32 takeover.elf64 takeover.tmp
-%.o: %.oco
- cp -f $< $@
diff --git a/qemu/roms/SLOF/clients/takeover/client.lds b/qemu/roms/SLOF/clients/takeover/client.lds
deleted file mode 100644
index 0ab428a01..000000000
--- a/qemu/roms/SLOF/clients/takeover/client.lds
+++ /dev/null
@@ -1,60 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-OUTPUT_FORMAT("elf64-powerpc", "elf64-powerpc", "elf64-powerpc")
-OUTPUT_ARCH(powerpc:common64)
-ENTRY(_entry)
-
-SECTIONS {
- .client 0x400100:
- {
- __client_start = .;
- *(.start)
- *(.text .stub .text.* .gnu.linkonce.t.*)
- *(.sfpr .glink)
- *(.rodata .rodata.* .gnu.linkonce.r.*)
- KEEP (*(.opd))
- . = ALIGN(256);
- *(.data .data.* .gnu.linkonce.d.*)
- . = ALIGN(256);
- } =0x60000000
-
- .diag_table :
- {
- _diag_init_start = .;
- *(.diag_init)
- _diag_init_end = .;
- }
- .lowmem :
- {
- _lowmem_start = .;
- *(.lowmem)
- _lowmem_end = .;
- }
-
- .got :
- {
- . = ALIGN(256);
- _got = DEFINED (.TOC.) ? .TOC. : ADDR (.got) + 0x8000;
- *(.got .toc)
- _got_end = .;
- }
- .comment : { *(.comment) }
- .branch_lt : { *(.branch_lt) }
- .bss :
- {
- __bssStart = .;
- *(*COM* .bss .gnu.linkonce.b.*)
- __client_end = .;
- __bssSize = . - __bssStart;
- }
-}
diff --git a/qemu/roms/SLOF/clients/takeover/entry.S b/qemu/roms/SLOF/clients/takeover/entry.S
deleted file mode 100644
index ff482732d..000000000
--- a/qemu/roms/SLOF/clients/takeover/entry.S
+++ /dev/null
@@ -1,99 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include <macros.h>
-#include "takeover.h"
-
- .globl _wrapclient
- .section ".start"
- .align 3
-
-_wrapclient:
- bcl 20,31,over # branch after pointer table
-base:
- .align 3
-.LCgot: .quad _got-base
-over:
- mflr r8 # gpr 8 is the base
- ld r2, .LCgot-base(r8) # load got pointer
- add r2, r2, r8 # add base
- li 14, 0
- oris 14, 14, __bssSize@h
- ori 14, 14, __bssSize@l
- addi 14,14,7
- srwi 14,14,3
- mtctr 14
- li 14, 0
- oris 14, 14, __bssStart@h
- ori 14, 14, __bssStart@l
- subi 14, 14, 8
- li 15, 0
-1:
- stdu 15,8(14)
- bdnz 1b
-
- bl ._entry
-
-
-
- .globl slaveLoopNoTakeover
-slaveLoopNoTakeover:
- mr 28,3
-
- li 14,0
- oris 14, 14, slaveQuitt@h
- ori 14, 14, slaveQuitt@l
-
- li 3,0
- std 3,0(14)
-1:
- ld 3,0(14)
- cmpld 3,28
- bne 1b
-
- li 3,0
- std 3,0(14)
-
- LOAD64(r3, (TAKEOVERBASEADDRESS+0x150))
- mtctr r3
- bctr
-
-
- .globl slaveLoop
-slaveLoop:
- mr 28,3
- li r3, 0x5124
- li r0, -1; .long 0x44000022
-
- li 14,0
- oris 14, 14, slaveQuitt@h
- ori 14, 14, slaveQuitt@l
- li 3,0
- std 3,0(14)
-1:
- ld 3,0(14)
- cmpld 3,28
- bne 1b
-
- li 3,0
- std 3,0(14)
-
- LOAD64(r3, (TAKEOVERBASEADDRESS+0x150))
- mtctr r3
- bctr
-
-
-C_ENTRY(m_sync)
- isync
- sync
- nop
- blr
diff --git a/qemu/roms/SLOF/clients/takeover/main.c b/qemu/roms/SLOF/clients/takeover/main.c
deleted file mode 100644
index 1e1b02614..000000000
--- a/qemu/roms/SLOF/clients/takeover/main.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <of.h>
-#include <pci.h>
-#include <cpu.h>
-#include <unistd.h>
-#include <takeover.h>
-
-extern void call_client_interface(of_arg_t *);
-extern void m_sync(void);
-
-int callback(int argc, char *argv[]);
-
-#define boot_rom_bin_start _binary_______boot_rom_bin_start
-#define boot_rom_bin_end _binary_______boot_rom_bin_end
-
-extern char boot_rom_bin_start;
-extern char boot_rom_bin_end;
-
-#if defined(__GNUC__)
-# define UNUSED __attribute__((unused))
-#else
-# define UNUSED
-#endif
-
-void *
-sbrk(int incr)
-{
- return (void *) -1;
-}
-
-static void
-doWait(void)
-{
- static const char *wheel = "|/-\\";
- static int i = 0;
- volatile int dly = 0xf0000;
- while (dly--)
- asm volatile (" nop ");
- printf("\b%c", wheel[i++]);
- i &= 0x3;
-}
-
-static void
-quiesce(void)
-{
- of_arg_t arg = {
- p32cast "quiesce",
- 0, 0,
- };
- call_client_interface(&arg);
-}
-
-static int
-startCpu(int num, int addr, int reg)
-{
- of_arg_t arg = {
- p32cast "start-cpu",
- 3, 0,
- {num, addr, reg}
- };
- call_client_interface(&arg);
- return arg.args[3];
-}
-
-volatile unsigned long slaveQuitt;
-int takeoverFlag;
-
-void
-main(int argc, char *argv[])
-{
- phandle_t cpus;
- phandle_t cpu;
- unsigned long slaveMask;
- extern int slaveLoop[];
- extern int slaveLoopNoTakeover[];
- int index = 0;
- int delay = 100;
- unsigned long reg;
- unsigned long msr;
-
- asm volatile ("mfmsr %0":"=r" (msr));
- if (msr & 0x1000000000000000)
- takeoverFlag = 0;
- else
- takeoverFlag = 1;
-
- cpus = of_finddevice("/cpus");
- cpu = of_child(cpus);
- slaveMask = 0;
- while (cpu) {
- char devType[100];
- *devType = '\0';
- of_getprop(cpu, "device_type", devType, sizeof(devType));
- if (strcmp(devType, "cpu") == 0) {
- of_getprop(cpu, "reg", &reg, sizeof(reg));
- if (index) {
- printf("\r\n takeover on cpu%d (%x, %lx) ", index,
- cpu, reg);
- slaveQuitt = -1;
- if (takeoverFlag)
- startCpu(cpu, (int)(unsigned long)slaveLoop, index);
- else
- startCpu(cpu, (int)(unsigned long)slaveLoopNoTakeover,
- index);
- slaveMask |= 0x1 << index;
- delay = 100;
- while (delay-- && slaveQuitt)
- doWait();
- }
- index++;
- }
- cpu = of_peer(cpu);
- }
-
-
- printf("\r\n takeover on master cpu ");
- quiesce();
-
- delay = 5;
- while (delay--)
- doWait();
- if (takeoverFlag)
- takeover();
-
- memcpy((void*)TAKEOVERBASEADDRESS, &boot_rom_bin_start, &boot_rom_bin_end - &boot_rom_bin_start);
- flush_cache((void *)TAKEOVERBASEADDRESS, &boot_rom_bin_end - &boot_rom_bin_start);
- index = 0;
-
- while (slaveMask) {
- m_sync();
- unsigned long shifter = 0x1 << index;
- if (shifter & slaveMask) {
- slaveQuitt = index;
- while (slaveQuitt)
- m_sync();
- slaveMask &= ~shifter;
- }
- index++;
- }
-
- asm volatile(" mtctr %0 ; bctr " : : "r" (TAKEOVERBASEADDRESS+0x180) );
-}
-
-int
-callback(int argc, char *argv[])
-{
- /* Dummy, only for takeover */
- return (0);
-}
diff --git a/qemu/roms/SLOF/clients/takeover/ppc32wrap.S b/qemu/roms/SLOF/clients/takeover/ppc32wrap.S
deleted file mode 100644
index 90afa268d..000000000
--- a/qemu/roms/SLOF/clients/takeover/ppc32wrap.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
- .globl _start
- .section ".text"
- .align 3
-
-_start:
- nop
- bl over
- .llong 0x9000000000003000
-over:
- li 14, 0
- oris 14, 14, _binary_takeover_tmp_start@h
- ori 14, 14, _binary_takeover_tmp_start@l
- mtsrr0 14
- mflr 15
- ld 14,0(15)
- mtsrr1 14
- rfid
-
diff --git a/qemu/roms/SLOF/clients/takeover/takeover.h b/qemu/roms/SLOF/clients/takeover/takeover.h
deleted file mode 100644
index f348e2359..000000000
--- a/qemu/roms/SLOF/clients/takeover/takeover.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#if defined(CPU_CBEA)
-#define TAKEOVERBASEADDRESS 0x0e000000
-#elif defined(CPU_PPC970)
-#define TAKEOVERBASEADDRESS 0x00000000
-#else
-#error no processor specified
-#endif
-
-#ifndef __ASSEMBLER__
-int takeover(void);
-#endif
diff --git a/qemu/roms/SLOF/clients/takeover/takeover.oco b/qemu/roms/SLOF/clients/takeover/takeover.oco
deleted file mode 100644
index 6e2a1a6ab..000000000
--- a/qemu/roms/SLOF/clients/takeover/takeover.oco
+++ /dev/null
Binary files differ