1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (C) 2018-2022 Marvell International Ltd. 4 */ 5 6#include <log.h> 7#include <time.h> 8#include <linux/delay.h> 9 10#include <mach/cvmx-regs.h> 11#include <mach/cvmx-csr.h> 12#include <mach/cvmx-bootmem.h> 13#include <mach/octeon-model.h> 14#include <mach/cvmx-fuse.h> 15#include <mach/octeon-feature.h> 16#include <mach/cvmx-qlm.h> 17#include <mach/octeon_qlm.h> 18#include <mach/cvmx-pcie.h> 19#include <mach/cvmx-coremask.h> 20 21#include <mach/cvmx-global-resources.h> 22 23#include <mach/cvmx-pki.h> 24#include <mach/cvmx-helper.h> 25#include <mach/cvmx-helper-board.h> 26#include <mach/cvmx-helper-cfg.h> 27 28#include <mach/cvmx-hwfau.h> 29 30u8 *cvmx_fau_regs_ptr; 31 32void cvmx_fau_bootmem_init(void *bootmem) 33{ 34 memset(bootmem, 0, CVMX_FAU_MAX_REGISTERS_8); 35} 36 37/** 38 * Initializes FAU region for devices without FAU unit. 39 * @return 0 on success -1 on failure 40 */ 41int cvmx_fau_init(void) 42{ 43 cvmx_fau_regs_ptr = (u8 *)cvmx_bootmem_alloc_named_range_once( 44 CVMX_FAU_MAX_REGISTERS_8, 0, 1ull << 31, 128, 45 "cvmx_fau_registers", cvmx_fau_bootmem_init); 46 47 if (cvmx_fau_regs_ptr == 0ull) { 48 debug("ERROR: Failed to alloc named block for software FAU.\n"); 49 return -1; 50 } 51 52 return 0; 53} 54