amba_device.hh (9525:0587c8983d47) amba_device.hh (9806:3f262c18ad5d)
1/*
2 * Copyright (c) 2010 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

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

49#ifndef __DEV_ARM_AMBA_DEVICE_HH__
50#define __DEV_ARM_AMBA_DEVICE_HH__
51
52#include "dev/arm/base_gic.hh"
53#include "dev/dma_device.hh"
54#include "dev/io_device.hh"
55#include "mem/packet.hh"
56#include "mem/packet_access.hh"
1/*
2 * Copyright (c) 2010 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

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

49#ifndef __DEV_ARM_AMBA_DEVICE_HH__
50#define __DEV_ARM_AMBA_DEVICE_HH__
51
52#include "dev/arm/base_gic.hh"
53#include "dev/dma_device.hh"
54#include "dev/io_device.hh"
55#include "mem/packet.hh"
56#include "mem/packet_access.hh"
57#include "params/AmbaDevice.hh"
57#include "params/AmbaPioDevice.hh"
58#include "params/AmbaDmaDevice.hh"
59#include "params/AmbaIntDevice.hh"
60
58#include "params/AmbaDmaDevice.hh"
59#include "params/AmbaIntDevice.hh"
60
61namespace AmbaDev {
62
61
63const int AMBA_PER_ID0 = 0xFE0;
64const int AMBA_PER_ID1 = 0xFE4;
65const int AMBA_PER_ID2 = 0xFE8;
66const int AMBA_PER_ID3 = 0xFEC;
67const int AMBA_CEL_ID0 = 0xFF0;
68const int AMBA_CEL_ID1 = 0xFF4;
69const int AMBA_CEL_ID2 = 0xFF8;
70const int AMBA_CEL_ID3 = 0xFFC;
62class AmbaDevice
63{
64 protected:
65 static const int AMBA_PER_ID0 = 0xFE0;
66 static const int AMBA_PER_ID1 = 0xFE4;
67 static const int AMBA_PER_ID2 = 0xFE8;
68 static const int AMBA_PER_ID3 = 0xFEC;
69 static const int AMBA_CEL_ID0 = 0xFF0;
70 static const int AMBA_CEL_ID1 = 0xFF4;
71 static const int AMBA_CEL_ID2 = 0xFF8;
72 static const int AMBA_CEL_ID3 = 0xFFC;
71
73
72bool readId(PacketPtr pkt, uint64_t amba_id, Addr pio_addr);
73}
74 bool readId(PacketPtr pkt, uint64_t amba_id, Addr pio_addr);
75};
74
76
75class AmbaDevice : public BasicPioDevice
77
78class AmbaPioDevice : public BasicPioDevice, public AmbaDevice
76{
77 protected:
78 uint64_t ambaId;
79
80 public:
79{
80 protected:
81 uint64_t ambaId;
82
83 public:
81 typedef AmbaDeviceParams Params;
82 AmbaDevice(const Params *p);
84 typedef AmbaPioDeviceParams Params;
85 AmbaPioDevice(const Params *p);
83};
84
86};
87
85class AmbaIntDevice : public AmbaDevice
88class AmbaIntDevice : public AmbaPioDevice
86{
87 protected:
88 int intNum;
89 BaseGic *gic;
90 Tick intDelay;
91
92 public:
93 typedef AmbaIntDeviceParams Params;
94 AmbaIntDevice(const Params *p);
95};
96
89{
90 protected:
91 int intNum;
92 BaseGic *gic;
93 Tick intDelay;
94
95 public:
96 typedef AmbaIntDeviceParams Params;
97 AmbaIntDevice(const Params *p);
98};
99
97class AmbaDmaDevice : public DmaDevice
100class AmbaDmaDevice : public DmaDevice, public AmbaDevice
98{
99 protected:
100 uint64_t ambaId;
101 Addr pioAddr;
102 Addr pioSize;
103 Tick pioDelay;
104 int intNum;
105 BaseGic *gic;
106
107 public:
108 typedef AmbaDmaDeviceParams Params;
109 AmbaDmaDevice(const Params *p);
110};
111
112
113#endif //__DEV_ARM_AMBA_DEVICE_HH__
101{
102 protected:
103 uint64_t ambaId;
104 Addr pioAddr;
105 Addr pioSize;
106 Tick pioDelay;
107 int intNum;
108 BaseGic *gic;
109
110 public:
111 typedef AmbaDmaDeviceParams Params;
112 AmbaDmaDevice(const Params *p);
113};
114
115
116#endif //__DEV_ARM_AMBA_DEVICE_HH__