realview.cc (10537:47fe87b0cf97) realview.cc (11244:a2af58a06c4e)
1/*
2 * Copyright (c) 2009, 2014 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 44 unchanged lines hidden (view full) ---

53#include "dev/arm/base_gic.hh"
54#include "dev/arm/realview.hh"
55#include "dev/terminal.hh"
56#include "sim/system.hh"
57
58using namespace std;
59using namespace TheISA;
60
1/*
2 * Copyright (c) 2009, 2014 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 44 unchanged lines hidden (view full) ---

53#include "dev/arm/base_gic.hh"
54#include "dev/arm/realview.hh"
55#include "dev/terminal.hh"
56#include "sim/system.hh"
57
58using namespace std;
59using namespace TheISA;
60
61
61RealView::RealView(const Params *p)
62 : Platform(p), system(p->system), gic(nullptr)
63{}
64
65void
62RealView::RealView(const Params *p)
63 : Platform(p), system(p->system), gic(nullptr)
64{}
65
66void
66RealView::initState()
67{
68 Addr junk;
69 bool has_gen_pci_host;
70 has_gen_pci_host = system->kernelSymtab->findAddress("gen_pci_setup", junk);
71
72 if (has_gen_pci_host && !params()->pci_cfg_gen_offsets)
73 warn("Kernel supports generic PCI host but PCI Config offsets "
74 "configured for legacy. Set pci_cfg_gen_offsets to True");
75 if (has_gen_pci_host && !params()->pci_io_base)
76 warn("Kernel supports generic PCI host but PCI IO base is set "
77 "to 0. Set pci_io_base to the start of PCI IO space");
78}
79
80void
81RealView::postConsoleInt()
82{
83 warn_once("Don't know what interrupt to post for console.\n");
84 //panic("Need implementation\n");
85}
86
87void
88RealView::clearConsoleInt()

--- 9 unchanged lines hidden (view full) ---

98}
99
100void
101RealView::clearPciInt(int line)
102{
103 gic->clearInt(line);
104}
105
67RealView::postConsoleInt()
68{
69 warn_once("Don't know what interrupt to post for console.\n");
70 //panic("Need implementation\n");
71}
72
73void
74RealView::clearConsoleInt()

--- 9 unchanged lines hidden (view full) ---

84}
85
86void
87RealView::clearPciInt(int line)
88{
89 gic->clearInt(line);
90}
91
106Addr
107RealView::pciToDma(Addr pciAddr) const
108{
109 return pciAddr;
110}
111
112
113Addr
114RealView::calcPciConfigAddr(int bus, int dev, int func)
115{
116 if (bus != 0)
117 return ULL(-1);
118
119 Addr cfg_offset = 0;
120 if (params()->pci_cfg_gen_offsets)
121 cfg_offset |= ((func & 7) << 12) | ((dev & 0x1f) << 15);
122 else
123 cfg_offset |= ((func & 7) << 16) | ((dev & 0x1f) << 19);
124 return params()->pci_cfg_base | cfg_offset;
125}
126
127Addr
128RealView::calcPciIOAddr(Addr addr)
129{
130 return params()->pci_io_base + addr;
131}
132
133Addr
134RealView::calcPciMemAddr(Addr addr)
135{
136 return addr;
137}
138
139RealView *
140RealViewParams::create()
141{
142 return new RealView(this);
143}
92RealView *
93RealViewParams::create()
94{
95 return new RealView(this);
96}