1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Copyright (c) 2011 The Chromium OS Authors. 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8#include <efi_loader.h> 9#include <irq_func.h> 10#include <os.h> 11#include <asm/global_data.h> 12#include <asm-generic/signal.h> 13#include <asm/u-boot-sandbox.h> 14 15DECLARE_GLOBAL_DATA_PTR; 16 17int interrupt_init(void) 18{ 19 return 0; 20} 21 22void enable_interrupts(void) 23{ 24 return; 25} 26int disable_interrupts(void) 27{ 28 return 0; 29} 30 31void os_signal_action(int sig, unsigned long pc) 32{ 33 efi_restore_gd(); 34 35 switch (sig) { 36 case SIGILL: 37 printf("\nIllegal instruction\n"); 38 break; 39 case SIGBUS: 40 printf("\nBus error\n"); 41 break; 42 case SIGSEGV: 43 printf("\nSegmentation violation\n"); 44 break; 45 default: 46 break; 47 } 48 printf("pc = 0x%lx, ", pc); 49 printf("pc_reloc = 0x%lx\n\n", pc - gd->reloc_off); 50 efi_print_image_infos((void *)pc); 51 52 if (IS_ENABLED(CONFIG_SANDBOX_CRASH_RESET)) { 53 printf("resetting ...\n\n"); 54 sandbox_reset(); 55 } else { 56 sandbox_exit(); 57 } 58} 59