| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /* SPDX-License-Identifier: GPL-2.0+ */
- /*
- * (C) Copyright 2002
- * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * Copyright (c) 2017 Microsemi Corporation.
- * Padmarao Begari, Microsemi Corporation <padmarao.begari@microsemi.com>
- */
- #ifndef __ASM_GBL_DATA_H
- #define __ASM_GBL_DATA_H
- #include <asm/smp.h>
- #include <asm/u-boot.h>
- #include <compiler.h>
- /* Architecture-specific global data */
- struct arch_global_data {
- long boot_hart; /* boot hart id */
- phys_addr_t firmware_fdt_addr;
- #if CONFIG_IS_ENABLED(RISCV_ACLINT)
- void __iomem *aclint; /* aclint base address */
- #endif
- #ifdef CONFIG_ANDES_PLICSW
- void __iomem *plicsw; /* andes plicsw base address */
- #endif
- #if CONFIG_IS_ENABLED(SMP)
- struct ipi_data ipi[CONFIG_NR_CPUS];
- #endif
- #if !CONFIG_IS_ENABLED(XIP)
- #ifdef CONFIG_AVAILABLE_HARTS
- ulong available_harts;
- #endif
- #endif
- };
- #include <asm-generic/global_data.h>
- #define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("gp")
- static inline void set_gd(volatile gd_t *gd_ptr)
- {
- #ifdef CONFIG_64BIT
- asm volatile("ld gp, %0\n" : : "m"(gd_ptr));
- #else
- asm volatile("lw gp, %0\n" : : "m"(gd_ptr));
- #endif
- }
- #endif /* __ASM_GBL_DATA_H */
|