1 Star 0 Fork 0

湖南大学-谭怀亮/qemu-palcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
sys-clipper.S 2.75 KB
一键复制 编辑 原始数据 按行查看 历史
Richard Henderson 提交于 2016-11-13 12:21 . Tidy clipper Sys_Setup
/* PALcode and C runtime functions for the CLIPPER system emulation.
Copyright (C) 2011 Richard Henderson
This file is part of QEMU PALcode.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the text
of the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not see
<http://www.gnu.org/licenses/>. */
#include "pal.h"
#include SYSTEM_H
/*
* Sys_Setup
*
* Do any system specific setup necessary.
*
* INPUT PARAMETERS
*
* a0 = whami
* p7 = return address
*/
.globl Sys_Setup
.ent Sys_Setup
Sys_Setup:
.frame $sp, 0, p7, 0
LOAD_PHYS_CCHIP t0
lda t0, TYPHOON_CCHIP_DIR0(t0)
// DIR[23] differ from DIR[01] by 0x400
// DIR[13] differ from DIR[02] by 0x40
and a0, 2, t4
and a0, 1, t3
sll t4, 9, t4
sll t3, 6, t3
addq t0, t4, t0
addq t0, t3, t0
// IIC[0-4] differ from DIR[0-4] by 0x100
lda t2, 0x100(t0)
mtpr t0, ptCpuDIR
mtpr t2, ptCpuIIC
ret
.end Sys_Setup
/*
* Sys_Dev_Vector
*
* Load the SRM interrupt vector for the system.
*
* INPUT PARAMETERS
*
* p7 = return address
*
* OUTPUT PARAMETERS
*
* a1 = interrupt vector
*/
.globl Sys_Dev_Vector
.ent Sys_Dev_Vector
Sys_Dev_Vector:
.frame $sp, 0, p7, 0
mfpr a1, ptCpuDIR // Load int mask for this CPU
ldq_p a1, 0(a1)
beq a1, CallPal_Rti // No interrupts asserted?
cttz a1, a1 // Find the first asserted interrupt.
cmpeq a1, 55, a0 // Is this an ISA interrupt?
addq a1, 16, a1 // PCI interrupt numbers start at 16
beq a0, 1f
LOAD_PHYS_PCHIP0_IACK a1 // IACK results in the ISA irq
ldl_p a1, 0(a1)
1: sll a1, 4, a1
lda a1, 0x800(a1)
ret $31, (p7), 0
.end Sys_Dev_Vector
/*
* Cserve_Ena
*
* Unmask a PCI interrupt
*/
.globl Cserve_Ena
Cserve_Ena:
// FIXME
hw_rei
ENDFN Cserve_Ena
/*
* Cserve_Dis
*
* Mask a PCI interrupt
*/
.globl Cserve_Dis
Cserve_Dis:
// FIXME
hw_rei
ENDFN Cserve_Dis
/*
* PCI parameters
*/
.section .sdata
.align 3
.globl pci_io_base
.type pci_io_base, @object
.size pci_io_base, 8
pci_io_base:
.quad PIO_KSEG_ADDR + TYPHOON_PCHIP0_PCI_IO
.globl pci_conf_base
.type pci_conf_base, @object
.size pci_conf_base, 8
pci_conf_base:
.quad PIO_KSEG_ADDR + TYPHOON_PCHIP0_PCI_CONF
.align 3
.globl pci_mem_base
.type pci_mem_base, @object
.size pci_mem_base, 8
pci_mem_base:
.quad PIO_KSEG_ADDR + TYPHOON_PCHIP0_PCI_MEM
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/hunan-university-embedded-lab/qemu-palcode.git
git@gitee.com:hunan-university-embedded-lab/qemu-palcode.git
hunan-university-embedded-lab
qemu-palcode
qemu-palcode
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385