This tag contains habanalabs driver changes for v5.20:
- Add Gaudi2 ASIC support. All the features required for Gaudi2 are included in this tag (except the networking aspect). - Add more events to the eventfd support in the driver. With the new code, we expose three events that the user can register to get notification about them. - re-factor soft reset code and replace its name to compute reset to better reflect the actual reset done in new ASICs - Change the way Gaudi2 triggers an MSI-X interrupt due to h/w bug. - Improve the code of the debugfs node that scrubs the device's memory. - Add mechanism for better compatibility with older f/w versions - Cleanup kernel log prints by moving some prints to debug and removing others. - Many small bug fixes and minor changes. -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEE7TEboABC71LctBLFZR1NuKta54AFAmLNJ54ACgkQZR1NuKta 54Dv6QgAqL79pZbAGQRw7deWkbBEy5IAwp7Kk3KqQNxi1jHZ502iNc8ntyYsL6zc TVEx4j9KlJfayVncr2ciqJ49NN1kZfarkIoYABO+qlCmTpdVj3lpBytaEqqTfw4p iqmacAEcCDcfbn+qh9qjnNsfMPxqFa21gE0lPKe1au1tEWVeeNynKnNe0DW8GIVE HcqYuSilUZ4g5KSyoXBzapsGx16ja+GsHZCsJPC1sp/pabt9/RHaeMer5njD4FoY gCiz9QgsO89ENMJ18bgWDcdsKx8tXe0kOtMi5/ypXm7JSiwajkt1+OQdIYQFBEu9 uzC6aTYFUQflvS0DHC0YyDZOM0gNiQ== =uAns -----END PGP SIGNATURE----- Merge tag 'misc-habanalabs-next-2022-07-12' of https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux into char-misc-next Oded writes: This tag contains habanalabs driver changes for v5.20: - Add Gaudi2 ASIC support. All the features required for Gaudi2 are included in this tag (except the networking aspect). - Add more events to the eventfd support in the driver. With the new code, we expose three events that the user can register to get notification about them. - re-factor soft reset code and replace its name to compute reset to better reflect the actual reset done in new ASICs - Change the way Gaudi2 triggers an MSI-X interrupt due to h/w bug. - Improve the code of the debugfs node that scrubs the device's memory. - Add mechanism for better compatibility with older f/w versions - Cleanup kernel log prints by moving some prints to debug and removing others. - Many small bug fixes and minor changes. * tag 'misc-habanalabs-next-2022-07-12' of https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux: (88 commits) habanalabs: move h/w dirty message to debug habanalabs: rename soft reset to compute reset habanalabs: add status of reset after device release habanalabs: fix update of is_in_soft_reset habanalabs: expose only valid debugfs nodes habanalabs/gaudi2: map virtual MSI-X doorbell memory for user habanalabs/gaudi2: modify decoder to use virtual MSI-X doorbell habanalabs/gaudi2: modify CS completion CQ to use virtual MSI-X doorbell habanalabs/gaudi2: replace defines for reserved sob/mob with enums habanalabs/gaudi2: configure virtual MSI-X doorbell interface habanalabs: add a value field to hl_fw_send_pci_access_msg() habanalabs: fixes to the poll-timeout macros habanalabs/gaudi2: use DIV_ROUND_UP_SECTOR_T instead of roundup habanalabs: initialize variable explicitly habanalabs: Use the bitmap API to allocate bitmaps habanalabs/gaudi2: remove unused defines habanalabs: make sure variable is set before used habanalabs: don't declare tmp twice in same function habanalabs: do not set max power on a secured device habanalabs/gaudi2: SM mask can only be 8-bit ...
This commit is contained in:
commit
bc2c6a5ee7
@ -101,6 +101,15 @@ Description: Specify the size of the DMA transaction when using DMA to read
|
||||
When the write is finished, the user can read the "data_dma"
|
||||
blob
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/dump_razwi_events
|
||||
Date: Aug 2022
|
||||
KernelVersion: 5.20
|
||||
Contact: fkassabri@habana.ai
|
||||
Description: Dumps all razwi events to dmesg if exist.
|
||||
After reading the status register of an existing event
|
||||
the routine will clear the status register.
|
||||
Usage: cat dump_razwi_events
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/dump_security_violations
|
||||
Date: Jan 2021
|
||||
KernelVersion: 5.12
|
||||
@ -121,14 +130,16 @@ Date: Jan 2019
|
||||
KernelVersion: 5.1
|
||||
Contact: ogabbay@kernel.org
|
||||
Description: Sets I2C device address for I2C transaction that is generated
|
||||
by the device's CPU
|
||||
by the device's CPU, Not available when device is loaded with secured
|
||||
firmware
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_bus
|
||||
Date: Jan 2019
|
||||
KernelVersion: 5.1
|
||||
Contact: ogabbay@kernel.org
|
||||
Description: Sets I2C bus address for I2C transaction that is generated by
|
||||
the device's CPU
|
||||
the device's CPU, Not available when device is loaded with secured
|
||||
firmware
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_data
|
||||
Date: Jan 2019
|
||||
@ -136,39 +147,45 @@ KernelVersion: 5.1
|
||||
Contact: ogabbay@kernel.org
|
||||
Description: Triggers an I2C transaction that is generated by the device's
|
||||
CPU. Writing to this file generates a write transaction while
|
||||
reading from the file generates a read transaction
|
||||
reading from the file generates a read transaction, Not available
|
||||
when device is loaded with secured firmware
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_len
|
||||
Date: Dec 2021
|
||||
KernelVersion: 5.17
|
||||
Contact: obitton@habana.ai
|
||||
Description: Sets I2C length in bytes for I2C transaction that is generated by
|
||||
the device's CPU
|
||||
the device's CPU, Not available when device is loaded with secured
|
||||
firmware
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_reg
|
||||
Date: Jan 2019
|
||||
KernelVersion: 5.1
|
||||
Contact: ogabbay@kernel.org
|
||||
Description: Sets I2C register id for I2C transaction that is generated by
|
||||
the device's CPU
|
||||
the device's CPU, Not available when device is loaded with secured
|
||||
firmware
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/led0
|
||||
Date: Jan 2019
|
||||
KernelVersion: 5.1
|
||||
Contact: ogabbay@kernel.org
|
||||
Description: Sets the state of the first S/W led on the device
|
||||
Description: Sets the state of the first S/W led on the device, Not available
|
||||
when device is loaded with secured firmware
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/led1
|
||||
Date: Jan 2019
|
||||
KernelVersion: 5.1
|
||||
Contact: ogabbay@kernel.org
|
||||
Description: Sets the state of the second S/W led on the device
|
||||
Description: Sets the state of the second S/W led on the device, Not available
|
||||
when device is loaded with secured firmware
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/led2
|
||||
Date: Jan 2019
|
||||
KernelVersion: 5.1
|
||||
Contact: ogabbay@kernel.org
|
||||
Description: Sets the state of the third S/W led on the device
|
||||
Description: Sets the state of the third S/W led on the device, Not available
|
||||
when device is loaded with secured firmware
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/memory_scrub
|
||||
Date: May 2022
|
||||
@ -182,7 +199,8 @@ Date: May 2022
|
||||
KernelVersion: 5.19
|
||||
Contact: dhirschfeld@habana.ai
|
||||
Description: The value to which the dram will be set to when the user
|
||||
scrubs the dram using 'memory_scrub' debugfs file
|
||||
scrubs the dram using 'memory_scrub' debugfs file and
|
||||
the scrubbing value when using module param 'memory_scrub'
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/mmu
|
||||
Date: Jan 2019
|
||||
@ -277,7 +295,7 @@ Description: Displays a list with information about the currently user
|
||||
to DMA addresses
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/userptr_lookup
|
||||
Date: Aug 2021
|
||||
Date: Oct 2021
|
||||
KernelVersion: 5.15
|
||||
Contact: ogabbay@kernel.org
|
||||
Description: Allows to search for specific user pointers (user virtual
|
||||
|
@ -14,4 +14,7 @@ habanalabs-y += $(HL_GOYA_FILES)
|
||||
include $(src)/gaudi/Makefile
|
||||
habanalabs-y += $(HL_GAUDI_FILES)
|
||||
|
||||
include $(src)/gaudi2/Makefile
|
||||
habanalabs-y += $(HL_GAUDI2_FILES)
|
||||
|
||||
habanalabs-$(CONFIG_DEBUG_FS) += common/debugfs.o
|
||||
|
@ -11,4 +11,5 @@ HL_COMMON_FILES := common/habanalabs_drv.o common/device.o common/context.o \
|
||||
common/command_buffer.o common/hw_queue.o common/irq.o \
|
||||
common/sysfs.o common/hwmon.o common/memory.o \
|
||||
common/command_submission.o common/firmware_if.o \
|
||||
common/state_dump.o common/memory_mgr.o
|
||||
common/security.o common/state_dump.o \
|
||||
common/memory_mgr.o common/decoder.o
|
||||
|
@ -11,8 +11,7 @@
|
||||
|
||||
int hl_asid_init(struct hl_device *hdev)
|
||||
{
|
||||
hdev->asid_bitmap = kcalloc(BITS_TO_LONGS(hdev->asic_prop.max_asid),
|
||||
sizeof(*hdev->asid_bitmap), GFP_KERNEL);
|
||||
hdev->asid_bitmap = bitmap_zalloc(hdev->asic_prop.max_asid, GFP_KERNEL);
|
||||
if (!hdev->asid_bitmap)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -27,7 +26,7 @@ int hl_asid_init(struct hl_device *hdev)
|
||||
void hl_asid_fini(struct hl_device *hdev)
|
||||
{
|
||||
mutex_destroy(&hdev->asid_mutex);
|
||||
kfree(hdev->asid_bitmap);
|
||||
bitmap_free(hdev->asid_bitmap);
|
||||
}
|
||||
|
||||
unsigned long hl_asid_alloc(struct hl_device *hdev)
|
||||
|
@ -143,8 +143,7 @@ static void cb_fini(struct hl_device *hdev, struct hl_cb *cb)
|
||||
gen_pool_free(hdev->internal_cb_pool,
|
||||
(uintptr_t)cb->kernel_address, cb->size);
|
||||
else
|
||||
hdev->asic_funcs->asic_dma_free_coherent(hdev, cb->size,
|
||||
cb->kernel_address, cb->bus_address);
|
||||
hl_asic_dma_free_coherent(hdev, cb->size, cb->kernel_address, cb->bus_address);
|
||||
|
||||
kfree(cb);
|
||||
}
|
||||
@ -195,14 +194,11 @@ static struct hl_cb *hl_cb_alloc(struct hl_device *hdev, u32 cb_size,
|
||||
cb->is_internal = true;
|
||||
cb->bus_address = hdev->internal_cb_va_base + cb_offset;
|
||||
} else if (ctx_id == HL_KERNEL_ASID_ID) {
|
||||
p = hdev->asic_funcs->asic_dma_alloc_coherent(hdev, cb_size,
|
||||
&cb->bus_address, GFP_ATOMIC);
|
||||
p = hl_asic_dma_alloc_coherent(hdev, cb_size, &cb->bus_address, GFP_ATOMIC);
|
||||
if (!p)
|
||||
p = hdev->asic_funcs->asic_dma_alloc_coherent(hdev,
|
||||
cb_size, &cb->bus_address, GFP_KERNEL);
|
||||
p = hl_asic_dma_alloc_coherent(hdev, cb_size, &cb->bus_address, GFP_KERNEL);
|
||||
} else {
|
||||
p = hdev->asic_funcs->asic_dma_alloc_coherent(hdev, cb_size,
|
||||
&cb->bus_address,
|
||||
p = hl_asic_dma_alloc_coherent(hdev, cb_size, &cb->bus_address,
|
||||
GFP_USER | __GFP_ZERO);
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
#include <linux/slab.h>
|
||||
|
||||
#define HL_CS_FLAGS_TYPE_MASK (HL_CS_FLAGS_SIGNAL | HL_CS_FLAGS_WAIT | \
|
||||
HL_CS_FLAGS_COLLECTIVE_WAIT)
|
||||
HL_CS_FLAGS_COLLECTIVE_WAIT)
|
||||
|
||||
#define MAX_TS_ITER_NUM 10
|
||||
|
||||
@ -29,11 +29,88 @@ enum hl_cs_wait_status {
|
||||
};
|
||||
|
||||
static void job_wq_completion(struct work_struct *work);
|
||||
static int _hl_cs_wait_ioctl(struct hl_device *hdev, struct hl_ctx *ctx,
|
||||
u64 timeout_us, u64 seq,
|
||||
static int _hl_cs_wait_ioctl(struct hl_device *hdev, struct hl_ctx *ctx, u64 timeout_us, u64 seq,
|
||||
enum hl_cs_wait_status *status, s64 *timestamp);
|
||||
static void cs_do_release(struct kref *ref);
|
||||
|
||||
static void hl_push_cs_outcome(struct hl_device *hdev,
|
||||
struct hl_cs_outcome_store *outcome_store,
|
||||
u64 seq, ktime_t ts, int error)
|
||||
{
|
||||
struct hl_cs_outcome *node;
|
||||
unsigned long flags;
|
||||
|
||||
/*
|
||||
* CS outcome store supports the following operations:
|
||||
* push outcome - store a recent CS outcome in the store
|
||||
* pop outcome - retrieve a SPECIFIC (by seq) CS outcome from the store
|
||||
* It uses 2 lists: used list and free list.
|
||||
* It has a pre-allocated amount of nodes, each node stores
|
||||
* a single CS outcome.
|
||||
* Initially, all the nodes are in the free list.
|
||||
* On push outcome, a node (any) is taken from the free list, its
|
||||
* information is filled in, and the node is moved to the used list.
|
||||
* It is possible, that there are no nodes left in the free list.
|
||||
* In this case, we will lose some information about old outcomes. We
|
||||
* will pop the OLDEST node from the used list, and make it free.
|
||||
* On pop, the node is searched for in the used list (using a search
|
||||
* index).
|
||||
* If found, the node is then removed from the used list, and moved
|
||||
* back to the free list. The outcome data that the node contained is
|
||||
* returned back to the user.
|
||||
*/
|
||||
|
||||
spin_lock_irqsave(&outcome_store->db_lock, flags);
|
||||
|
||||
if (list_empty(&outcome_store->free_list)) {
|
||||
node = list_last_entry(&outcome_store->used_list,
|
||||
struct hl_cs_outcome, list_link);
|
||||
hash_del(&node->map_link);
|
||||
dev_dbg(hdev->dev, "CS %llu outcome was lost\n", node->seq);
|
||||
} else {
|
||||
node = list_last_entry(&outcome_store->free_list,
|
||||
struct hl_cs_outcome, list_link);
|
||||
}
|
||||
|
||||
list_del_init(&node->list_link);
|
||||
|
||||
node->seq = seq;
|
||||
node->ts = ts;
|
||||
node->error = error;
|
||||
|
||||
list_add(&node->list_link, &outcome_store->used_list);
|
||||
hash_add(outcome_store->outcome_map, &node->map_link, node->seq);
|
||||
|
||||
spin_unlock_irqrestore(&outcome_store->db_lock, flags);
|
||||
}
|
||||
|
||||
static bool hl_pop_cs_outcome(struct hl_cs_outcome_store *outcome_store,
|
||||
u64 seq, ktime_t *ts, int *error)
|
||||
{
|
||||
struct hl_cs_outcome *node;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&outcome_store->db_lock, flags);
|
||||
|
||||
hash_for_each_possible(outcome_store->outcome_map, node, map_link, seq)
|
||||
if (node->seq == seq) {
|
||||
*ts = node->ts;
|
||||
*error = node->error;
|
||||
|
||||
hash_del(&node->map_link);
|
||||
list_del_init(&node->list_link);
|
||||
list_add(&node->list_link, &outcome_store->free_list);
|
||||
|
||||
spin_unlock_irqrestore(&outcome_store->db_lock, flags);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(&outcome_store->db_lock, flags);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static void hl_sob_reset(struct kref *ref)
|
||||
{
|
||||
struct hl_hw_sob *hw_sob = container_of(ref, struct hl_hw_sob,
|
||||
@ -171,7 +248,7 @@ static void cs_job_do_release(struct kref *ref)
|
||||
kfree(job);
|
||||
}
|
||||
|
||||
static void cs_job_put(struct hl_cs_job *job)
|
||||
static void hl_cs_job_put(struct hl_cs_job *job)
|
||||
{
|
||||
kref_put(&job->refcount, cs_job_do_release);
|
||||
}
|
||||
@ -266,7 +343,7 @@ static int cs_parser(struct hl_fpriv *hpriv, struct hl_cs_job *job)
|
||||
return rc;
|
||||
}
|
||||
|
||||
static void complete_job(struct hl_device *hdev, struct hl_cs_job *job)
|
||||
static void hl_complete_job(struct hl_device *hdev, struct hl_cs_job *job)
|
||||
{
|
||||
struct hl_cs *cs = job->cs;
|
||||
|
||||
@ -285,12 +362,12 @@ static void complete_job(struct hl_device *hdev, struct hl_cs_job *job)
|
||||
|
||||
/* For H/W queue jobs, if a user CB was allocated by driver and MMU is
|
||||
* enabled, the user CB isn't released in cs_parser() and thus should be
|
||||
* released here.
|
||||
* This is also true for INT queues jobs which were allocated by driver
|
||||
* released here. This is also true for INT queues jobs which were
|
||||
* allocated by driver.
|
||||
*/
|
||||
if (job->is_kernel_allocated_cb &&
|
||||
if ((job->is_kernel_allocated_cb &&
|
||||
((job->queue_type == QUEUE_TYPE_HW && hdev->mmu_enable) ||
|
||||
job->queue_type == QUEUE_TYPE_INT)) {
|
||||
job->queue_type == QUEUE_TYPE_INT))) {
|
||||
atomic_dec(&job->user_cb->cs_cnt);
|
||||
hl_cb_put(job->user_cb);
|
||||
}
|
||||
@ -318,11 +395,10 @@ static void complete_job(struct hl_device *hdev, struct hl_cs_job *job)
|
||||
* flow by calling 'hl_hw_queue_update_ci'.
|
||||
*/
|
||||
if (cs_needs_completion(cs) &&
|
||||
(job->queue_type == QUEUE_TYPE_EXT ||
|
||||
job->queue_type == QUEUE_TYPE_HW))
|
||||
(job->queue_type == QUEUE_TYPE_EXT || job->queue_type == QUEUE_TYPE_HW))
|
||||
cs_put(cs);
|
||||
|
||||
cs_job_put(job);
|
||||
hl_cs_job_put(job);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -612,7 +688,7 @@ static void cs_do_release(struct kref *ref)
|
||||
* still holds a pointer to them (but no reference).
|
||||
*/
|
||||
list_for_each_entry_safe(job, tmp, &cs->job_list, cs_node)
|
||||
complete_job(hdev, job);
|
||||
hl_complete_job(hdev, job);
|
||||
|
||||
if (!cs->submitted) {
|
||||
/*
|
||||
@ -642,9 +718,9 @@ static void cs_do_release(struct kref *ref)
|
||||
* staged submission
|
||||
*/
|
||||
if (cs->staged_last) {
|
||||
struct hl_cs *staged_cs, *tmp;
|
||||
struct hl_cs *staged_cs, *tmp_cs;
|
||||
|
||||
list_for_each_entry_safe(staged_cs, tmp,
|
||||
list_for_each_entry_safe(staged_cs, tmp_cs,
|
||||
&cs->staged_cs_node, staged_cs_node)
|
||||
staged_cs_put(hdev, staged_cs);
|
||||
}
|
||||
@ -678,7 +754,7 @@ out:
|
||||
*/
|
||||
hl_debugfs_remove_cs(cs);
|
||||
|
||||
hl_ctx_put(cs->ctx);
|
||||
hdev->shadow_cs_queue[cs->sequence & (hdev->asic_prop.max_pending_cs - 1)] = NULL;
|
||||
|
||||
/* We need to mark an error for not submitted because in that case
|
||||
* the hl fence release flow is different. Mainly, we don't need
|
||||
@ -698,8 +774,14 @@ out:
|
||||
div_u64(jiffies - cs->submission_time_jiffies, HZ));
|
||||
}
|
||||
|
||||
if (cs->timestamp)
|
||||
if (cs->timestamp) {
|
||||
cs->fence->timestamp = ktime_get();
|
||||
hl_push_cs_outcome(hdev, &cs->ctx->outcome_store, cs->sequence,
|
||||
cs->fence->timestamp, cs->fence->error);
|
||||
}
|
||||
|
||||
hl_ctx_put(cs->ctx);
|
||||
|
||||
complete_all(&cs->fence->completion);
|
||||
complete_multi_cs(hdev, cs);
|
||||
|
||||
@ -714,10 +796,11 @@ out:
|
||||
static void cs_timedout(struct work_struct *work)
|
||||
{
|
||||
struct hl_device *hdev;
|
||||
u64 event_mask;
|
||||
int rc;
|
||||
struct hl_cs *cs = container_of(work, struct hl_cs,
|
||||
work_tdr.work);
|
||||
bool skip_reset_on_timeout = cs->skip_reset_on_timeout;
|
||||
bool skip_reset_on_timeout = cs->skip_reset_on_timeout, device_reset = false;
|
||||
|
||||
rc = cs_get_unless_zero(cs);
|
||||
if (!rc)
|
||||
@ -728,17 +811,28 @@ static void cs_timedout(struct work_struct *work)
|
||||
return;
|
||||
}
|
||||
|
||||
/* Mark the CS is timed out so we won't try to cancel its TDR */
|
||||
if (likely(!skip_reset_on_timeout))
|
||||
cs->timedout = true;
|
||||
|
||||
hdev = cs->ctx->hdev;
|
||||
|
||||
if (likely(!skip_reset_on_timeout)) {
|
||||
if (hdev->reset_on_lockup)
|
||||
device_reset = true;
|
||||
else
|
||||
hdev->reset_info.needs_reset = true;
|
||||
|
||||
/* Mark the CS is timed out so we won't try to cancel its TDR */
|
||||
cs->timedout = true;
|
||||
}
|
||||
|
||||
/* Save only the first CS timeout parameters */
|
||||
rc = atomic_cmpxchg(&hdev->last_error.cs_timeout.write_disable, 0, 1);
|
||||
if (!rc) {
|
||||
rc = atomic_cmpxchg(&hdev->last_error.cs_timeout.write_enable, 1, 0);
|
||||
if (rc) {
|
||||
hdev->last_error.cs_timeout.timestamp = ktime_get();
|
||||
hdev->last_error.cs_timeout.seq = cs->sequence;
|
||||
|
||||
event_mask = device_reset ? (HL_NOTIFIER_EVENT_CS_TIMEOUT |
|
||||
HL_NOTIFIER_EVENT_DEVICE_RESET) : HL_NOTIFIER_EVENT_CS_TIMEOUT;
|
||||
|
||||
hl_notifier_event_send_all(hdev, event_mask);
|
||||
}
|
||||
|
||||
switch (cs->type) {
|
||||
@ -773,12 +867,8 @@ static void cs_timedout(struct work_struct *work)
|
||||
|
||||
cs_put(cs);
|
||||
|
||||
if (likely(!skip_reset_on_timeout)) {
|
||||
if (hdev->reset_on_lockup)
|
||||
hl_device_reset(hdev, HL_DRV_RESET_TDR);
|
||||
else
|
||||
hdev->reset_info.needs_reset = true;
|
||||
}
|
||||
if (device_reset)
|
||||
hl_device_reset(hdev, HL_DRV_RESET_TDR);
|
||||
}
|
||||
|
||||
static int allocate_cs(struct hl_device *hdev, struct hl_ctx *ctx,
|
||||
@ -916,7 +1006,7 @@ static void cs_rollback(struct hl_device *hdev, struct hl_cs *cs)
|
||||
staged_cs_put(hdev, cs);
|
||||
|
||||
list_for_each_entry_safe(job, tmp, &cs->job_list, cs_node)
|
||||
complete_job(hdev, job);
|
||||
hl_complete_job(hdev, job);
|
||||
}
|
||||
|
||||
void hl_cs_rollback_all(struct hl_device *hdev, bool skip_wq_flush)
|
||||
@ -933,6 +1023,7 @@ void hl_cs_rollback_all(struct hl_device *hdev, bool skip_wq_flush)
|
||||
for (i = 0 ; i < hdev->asic_prop.completion_queues_count ; i++)
|
||||
flush_workqueue(hdev->cq_wq[i]);
|
||||
|
||||
flush_workqueue(hdev->cs_cmplt_wq);
|
||||
}
|
||||
|
||||
/* Make sure we don't have leftovers in the CS mirror list */
|
||||
@ -940,7 +1031,7 @@ void hl_cs_rollback_all(struct hl_device *hdev, bool skip_wq_flush)
|
||||
cs_get(cs);
|
||||
cs->aborted = true;
|
||||
dev_warn_ratelimited(hdev->dev, "Killing CS %d.%llu\n",
|
||||
cs->ctx->asid, cs->sequence);
|
||||
cs->ctx->asid, cs->sequence);
|
||||
cs_rollback(hdev, cs);
|
||||
cs_put(cs);
|
||||
}
|
||||
@ -989,7 +1080,10 @@ void hl_release_pending_user_interrupts(struct hl_device *hdev)
|
||||
wake_pending_user_interrupt_threads(interrupt);
|
||||
}
|
||||
|
||||
interrupt = &hdev->common_user_interrupt;
|
||||
interrupt = &hdev->common_user_cq_interrupt;
|
||||
wake_pending_user_interrupt_threads(interrupt);
|
||||
|
||||
interrupt = &hdev->common_decoder_interrupt;
|
||||
wake_pending_user_interrupt_threads(interrupt);
|
||||
}
|
||||
|
||||
@ -1001,7 +1095,17 @@ static void job_wq_completion(struct work_struct *work)
|
||||
struct hl_device *hdev = cs->ctx->hdev;
|
||||
|
||||
/* job is no longer needed */
|
||||
complete_job(hdev, job);
|
||||
hl_complete_job(hdev, job);
|
||||
}
|
||||
|
||||
static void cs_completion(struct work_struct *work)
|
||||
{
|
||||
struct hl_cs *cs = container_of(work, struct hl_cs, finish_work);
|
||||
struct hl_device *hdev = cs->ctx->hdev;
|
||||
struct hl_cs_job *job, *tmp;
|
||||
|
||||
list_for_each_entry_safe(job, tmp, &cs->job_list, cs_node)
|
||||
hl_complete_job(hdev, job);
|
||||
}
|
||||
|
||||
static int validate_queue_index(struct hl_device *hdev,
|
||||
@ -1024,7 +1128,13 @@ static int validate_queue_index(struct hl_device *hdev,
|
||||
hw_queue_prop = &asic->hw_queues_props[chunk->queue_index];
|
||||
|
||||
if (hw_queue_prop->type == QUEUE_TYPE_NA) {
|
||||
dev_err(hdev->dev, "Queue index %d is invalid\n",
|
||||
dev_err(hdev->dev, "Queue index %d is not applicable\n",
|
||||
chunk->queue_index);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (hw_queue_prop->binned) {
|
||||
dev_err(hdev->dev, "Queue index %d is binned out\n",
|
||||
chunk->queue_index);
|
||||
return -EINVAL;
|
||||
}
|
||||
@ -1166,17 +1276,16 @@ static int hl_cs_sanity_checks(struct hl_fpriv *hpriv, union hl_cs_args *args)
|
||||
cs_type = hl_cs_get_cs_type(cs_type_flags);
|
||||
num_chunks = args->in.num_chunks_execute;
|
||||
|
||||
if (unlikely((cs_type != CS_TYPE_DEFAULT) &&
|
||||
!hdev->supports_sync_stream)) {
|
||||
if (unlikely((cs_type == CS_TYPE_SIGNAL || cs_type == CS_TYPE_WAIT ||
|
||||
cs_type == CS_TYPE_COLLECTIVE_WAIT) &&
|
||||
!hdev->supports_sync_stream)) {
|
||||
dev_err(hdev->dev, "Sync stream CS is not supported\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (cs_type == CS_TYPE_DEFAULT) {
|
||||
if (!num_chunks) {
|
||||
dev_err(hdev->dev,
|
||||
"Got execute CS with 0 chunks, context %d\n",
|
||||
ctx->asid);
|
||||
dev_err(hdev->dev, "Got execute CS with 0 chunks, context %d\n", ctx->asid);
|
||||
return -EINVAL;
|
||||
}
|
||||
} else if (num_chunks != 1) {
|
||||
@ -1276,7 +1385,7 @@ static int cs_ioctl_default(struct hl_fpriv *hpriv, void __user *chunks,
|
||||
u32 encaps_signals_handle, u32 timeout,
|
||||
u16 *signal_initial_sob_count)
|
||||
{
|
||||
bool staged_mid, int_queues_only = true;
|
||||
bool staged_mid, int_queues_only = true, using_hw_queues = false;
|
||||
struct hl_device *hdev = hpriv->hdev;
|
||||
struct hl_cs_chunk *cs_chunk_array;
|
||||
struct hl_cs_counters_atomic *cntr;
|
||||
@ -1365,6 +1474,9 @@ static int cs_ioctl_default(struct hl_fpriv *hpriv, void __user *chunks,
|
||||
chunk->queue_index);
|
||||
}
|
||||
|
||||
if (queue_type == QUEUE_TYPE_HW)
|
||||
using_hw_queues = true;
|
||||
|
||||
job = hl_cs_allocate_job(hdev, queue_type,
|
||||
is_kernel_allocated_cb);
|
||||
if (!job) {
|
||||
@ -1385,6 +1497,7 @@ static int cs_ioctl_default(struct hl_fpriv *hpriv, void __user *chunks,
|
||||
job->hw_queue_id = chunk->queue_index;
|
||||
|
||||
cs->jobs_in_queue_cnt[job->hw_queue_id]++;
|
||||
cs->jobs_cnt++;
|
||||
|
||||
list_add_tail(&job->cs_node, &cs->job_list);
|
||||
|
||||
@ -1425,6 +1538,9 @@ static int cs_ioctl_default(struct hl_fpriv *hpriv, void __user *chunks,
|
||||
goto free_cs_object;
|
||||
}
|
||||
|
||||
if (using_hw_queues)
|
||||
INIT_WORK(&cs->finish_work, cs_completion);
|
||||
|
||||
/*
|
||||
* store the (external/HW queues) streams used by the CS in the
|
||||
* fence object for multi-CS completion
|
||||
@ -1773,6 +1889,7 @@ static int cs_ioctl_signal_wait_create_jobs(struct hl_device *hdev,
|
||||
cs_get(cs);
|
||||
|
||||
cs->jobs_in_queue_cnt[job->hw_queue_id]++;
|
||||
cs->jobs_cnt++;
|
||||
|
||||
list_add_tail(&job->cs_node, &cs->job_list);
|
||||
|
||||
@ -2191,6 +2308,9 @@ static int cs_ioctl_signal_wait(struct hl_fpriv *hpriv, enum hl_cs_type cs_type,
|
||||
if (rc)
|
||||
goto free_cs_object;
|
||||
|
||||
if (q_type == QUEUE_TYPE_HW)
|
||||
INIT_WORK(&cs->finish_work, cs_completion);
|
||||
|
||||
rc = hl_hw_queue_schedule_cs(cs);
|
||||
if (rc) {
|
||||
/* In case wait cs failed here, it means the signal cs
|
||||
@ -2321,12 +2441,12 @@ out:
|
||||
}
|
||||
|
||||
static int hl_wait_for_fence(struct hl_ctx *ctx, u64 seq, struct hl_fence *fence,
|
||||
enum hl_cs_wait_status *status, u64 timeout_us,
|
||||
s64 *timestamp)
|
||||
enum hl_cs_wait_status *status, u64 timeout_us, s64 *timestamp)
|
||||
{
|
||||
struct hl_device *hdev = ctx->hdev;
|
||||
ktime_t timestamp_kt;
|
||||
long completion_rc;
|
||||
int rc = 0;
|
||||
int rc = 0, error;
|
||||
|
||||
if (IS_ERR(fence)) {
|
||||
rc = PTR_ERR(fence);
|
||||
@ -2338,12 +2458,16 @@ static int hl_wait_for_fence(struct hl_ctx *ctx, u64 seq, struct hl_fence *fence
|
||||
}
|
||||
|
||||
if (!fence) {
|
||||
dev_dbg(hdev->dev,
|
||||
"Can't wait on seq %llu because current CS is at seq %llu (Fence is gone)\n",
|
||||
if (!hl_pop_cs_outcome(&ctx->outcome_store, seq, ×tamp_kt, &error)) {
|
||||
dev_dbg(hdev->dev,
|
||||
"Can't wait on seq %llu because current CS is at seq %llu (Fence is gone)\n",
|
||||
seq, ctx->cs_sequence);
|
||||
*status = CS_WAIT_STATUS_GONE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
*status = CS_WAIT_STATUS_GONE;
|
||||
return 0;
|
||||
completion_rc = 1;
|
||||
goto report_results;
|
||||
}
|
||||
|
||||
if (!timeout_us) {
|
||||
@ -2358,18 +2482,20 @@ static int hl_wait_for_fence(struct hl_ctx *ctx, u64 seq, struct hl_fence *fence
|
||||
&fence->completion, timeout);
|
||||
}
|
||||
|
||||
error = fence->error;
|
||||
timestamp_kt = fence->timestamp;
|
||||
|
||||
report_results:
|
||||
if (completion_rc > 0) {
|
||||
*status = CS_WAIT_STATUS_COMPLETED;
|
||||
if (timestamp)
|
||||
*timestamp = ktime_to_ns(fence->timestamp);
|
||||
*timestamp = ktime_to_ns(timestamp_kt);
|
||||
} else {
|
||||
*status = CS_WAIT_STATUS_BUSY;
|
||||
}
|
||||
|
||||
if (fence->error == -ETIMEDOUT)
|
||||
rc = -ETIMEDOUT;
|
||||
else if (fence->error == -EIO)
|
||||
rc = -EIO;
|
||||
if (error == -ETIMEDOUT || error == -EIO)
|
||||
rc = error;
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -2443,8 +2569,7 @@ static int hl_cs_poll_fences(struct multi_cs_data *mcs_data, struct multi_cs_com
|
||||
* function won't sleep as it is called with timeout 0 (i.e.
|
||||
* poll the fence)
|
||||
*/
|
||||
rc = hl_wait_for_fence(mcs_data->ctx, seq_arr[i], fence,
|
||||
&status, 0, NULL);
|
||||
rc = hl_wait_for_fence(mcs_data->ctx, seq_arr[i], fence, &status, 0, NULL);
|
||||
if (rc) {
|
||||
dev_err(hdev->dev,
|
||||
"wait_for_fence error :%d for CS seq %llu\n",
|
||||
@ -2482,7 +2607,7 @@ static int hl_cs_poll_fences(struct multi_cs_data *mcs_data, struct multi_cs_com
|
||||
* For this we have to validate that the timestamp is
|
||||
* earliest of all timestamps so far.
|
||||
*/
|
||||
if (mcs_data->update_ts &&
|
||||
if (fence && mcs_data->update_ts &&
|
||||
(ktime_compare(fence->timestamp, first_cs_time) < 0))
|
||||
first_cs_time = fence->timestamp;
|
||||
break;
|
||||
@ -2513,8 +2638,7 @@ static int hl_cs_poll_fences(struct multi_cs_data *mcs_data, struct multi_cs_com
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int _hl_cs_wait_ioctl(struct hl_device *hdev, struct hl_ctx *ctx,
|
||||
u64 timeout_us, u64 seq,
|
||||
static int _hl_cs_wait_ioctl(struct hl_device *hdev, struct hl_ctx *ctx, u64 timeout_us, u64 seq,
|
||||
enum hl_cs_wait_status *status, s64 *timestamp)
|
||||
{
|
||||
struct hl_fence *fence;
|
||||
@ -2815,8 +2939,7 @@ static int hl_cs_wait_ioctl(struct hl_fpriv *hpriv, void *data)
|
||||
s64 timestamp;
|
||||
int rc;
|
||||
|
||||
rc = _hl_cs_wait_ioctl(hdev, hpriv->ctx, args->in.timeout_us, seq,
|
||||
&status, ×tamp);
|
||||
rc = _hl_cs_wait_ioctl(hdev, hpriv->ctx, args->in.timeout_us, seq, &status, ×tamp);
|
||||
|
||||
if (rc == -ERESTARTSYS) {
|
||||
dev_err_ratelimited(hdev->dev,
|
||||
@ -2880,7 +3003,7 @@ static int ts_buff_get_kernel_ts_record(struct hl_mmap_mem_buf *buf,
|
||||
u64 current_cq_counter;
|
||||
|
||||
/* Validate ts_offset not exceeding last max */
|
||||
if (requested_offset_record > cb_last) {
|
||||
if (requested_offset_record >= cb_last) {
|
||||
dev_err(buf->mmg->dev, "Ts offset exceeds max CB offset(0x%llx)\n",
|
||||
(u64)(uintptr_t)cb_last);
|
||||
return -EINVAL;
|
||||
@ -2936,8 +3059,8 @@ start_over:
|
||||
|
||||
*pend = requested_offset_record;
|
||||
|
||||
dev_dbg(buf->mmg->dev, "Found available node in TS kernel CB(0x%llx)\n",
|
||||
(u64)(uintptr_t)requested_offset_record);
|
||||
dev_dbg(buf->mmg->dev, "Found available node in TS kernel CB %p\n",
|
||||
requested_offset_record);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2965,6 +3088,13 @@ static int _hl_interrupt_wait_ioctl(struct hl_device *hdev, struct hl_ctx *ctx,
|
||||
goto put_ctx;
|
||||
}
|
||||
|
||||
/* Validate the cq offset */
|
||||
if (((u64 *) cq_cb->kernel_address + cq_counters_offset) >=
|
||||
((u64 *) cq_cb->kernel_address + (cq_cb->size / sizeof(u64)))) {
|
||||
rc = -EINVAL;
|
||||
goto put_cq_cb;
|
||||
}
|
||||
|
||||
if (register_ts_record) {
|
||||
dev_dbg(hdev->dev, "Timestamp registration: interrupt id: %u, ts offset: %llu, cq_offset: %llu\n",
|
||||
interrupt->interrupt_id, ts_offset, cq_counters_offset);
|
||||
@ -3094,7 +3224,6 @@ put_ctx:
|
||||
static int _hl_interrupt_wait_ioctl_user_addr(struct hl_device *hdev, struct hl_ctx *ctx,
|
||||
u64 timeout_us, u64 user_address,
|
||||
u64 target_value, struct hl_user_interrupt *interrupt,
|
||||
|
||||
u32 *status,
|
||||
u64 *timestamp)
|
||||
{
|
||||
@ -3216,33 +3345,46 @@ static int hl_interrupt_wait_ioctl(struct hl_fpriv *hpriv, void *data)
|
||||
struct hl_user_interrupt *interrupt;
|
||||
union hl_wait_cs_args *args = data;
|
||||
u32 status = HL_WAIT_CS_STATUS_BUSY;
|
||||
u64 timestamp;
|
||||
int rc;
|
||||
u64 timestamp = 0;
|
||||
int rc, int_idx;
|
||||
|
||||
prop = &hdev->asic_prop;
|
||||
|
||||
if (!prop->user_interrupt_count) {
|
||||
if (!(prop->user_interrupt_count + prop->user_dec_intr_count)) {
|
||||
dev_err(hdev->dev, "no user interrupts allowed");
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
interrupt_id = FIELD_GET(HL_WAIT_CS_FLAGS_INTERRUPT_MASK, args->in.flags);
|
||||
|
||||
first_interrupt = prop->first_available_user_msix_interrupt;
|
||||
last_interrupt = prop->first_available_user_msix_interrupt +
|
||||
prop->user_interrupt_count - 1;
|
||||
first_interrupt = prop->first_available_user_interrupt;
|
||||
last_interrupt = prop->first_available_user_interrupt + prop->user_interrupt_count - 1;
|
||||
|
||||
if ((interrupt_id < first_interrupt || interrupt_id > last_interrupt) &&
|
||||
interrupt_id != HL_COMMON_USER_INTERRUPT_ID) {
|
||||
if (interrupt_id < prop->user_dec_intr_count) {
|
||||
|
||||
/* Check if the requested core is enabled */
|
||||
if (!(prop->decoder_enabled_mask & BIT(interrupt_id))) {
|
||||
dev_err(hdev->dev, "interrupt on a disabled core(%u) not allowed",
|
||||
interrupt_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
interrupt = &hdev->user_interrupt[interrupt_id];
|
||||
|
||||
} else if (interrupt_id >= first_interrupt && interrupt_id <= last_interrupt) {
|
||||
|
||||
int_idx = interrupt_id - first_interrupt + prop->user_dec_intr_count;
|
||||
interrupt = &hdev->user_interrupt[int_idx];
|
||||
|
||||
} else if (interrupt_id == HL_COMMON_USER_CQ_INTERRUPT_ID) {
|
||||
interrupt = &hdev->common_user_cq_interrupt;
|
||||
} else if (interrupt_id == HL_COMMON_DEC_INTERRUPT_ID) {
|
||||
interrupt = &hdev->common_decoder_interrupt;
|
||||
} else {
|
||||
dev_err(hdev->dev, "invalid user interrupt %u", interrupt_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (interrupt_id == HL_COMMON_USER_INTERRUPT_ID)
|
||||
interrupt = &hdev->common_user_interrupt;
|
||||
else
|
||||
interrupt = &hdev->user_interrupt[interrupt_id - first_interrupt];
|
||||
|
||||
if (args->in.flags & HL_WAIT_CS_FLAGS_INTERRUPT_KERNEL_CQ)
|
||||
rc = _hl_interrupt_wait_ioctl(hdev, hpriv->ctx, &hpriv->mem_mgr, &hpriv->mem_mgr,
|
||||
args->in.interrupt_timeout_us, args->in.cq_counters_handle,
|
||||
|
@ -102,13 +102,13 @@ static void hl_ctx_fini(struct hl_ctx *ctx)
|
||||
hl_device_set_debug_mode(hdev, ctx, false);
|
||||
|
||||
hdev->asic_funcs->ctx_fini(ctx);
|
||||
|
||||
hl_dec_ctx_fini(ctx);
|
||||
|
||||
hl_cb_va_pool_fini(ctx);
|
||||
hl_vm_ctx_fini(ctx);
|
||||
hl_asid_free(hdev, ctx->asid);
|
||||
hl_encaps_sig_mgr_fini(hdev, &ctx->sig_mgr);
|
||||
|
||||
/* Scrub both SRAM and DRAM */
|
||||
hdev->asic_funcs->scrub_device_mem(hdev, 0, 0);
|
||||
} else {
|
||||
dev_dbg(hdev->dev, "closing kernel context\n");
|
||||
hdev->asic_funcs->ctx_fini(ctx);
|
||||
@ -125,15 +125,22 @@ void hl_ctx_do_release(struct kref *ref)
|
||||
|
||||
hl_ctx_fini(ctx);
|
||||
|
||||
if (ctx->hpriv)
|
||||
hl_hpriv_put(ctx->hpriv);
|
||||
if (ctx->hpriv) {
|
||||
struct hl_fpriv *hpriv = ctx->hpriv;
|
||||
|
||||
mutex_lock(&hpriv->ctx_lock);
|
||||
hpriv->ctx = NULL;
|
||||
mutex_unlock(&hpriv->ctx_lock);
|
||||
|
||||
hl_hpriv_put(hpriv);
|
||||
}
|
||||
|
||||
kfree(ctx);
|
||||
}
|
||||
|
||||
int hl_ctx_create(struct hl_device *hdev, struct hl_fpriv *hpriv)
|
||||
{
|
||||
struct hl_ctx_mgr *mgr = &hpriv->ctx_mgr;
|
||||
struct hl_ctx_mgr *ctx_mgr = &hpriv->ctx_mgr;
|
||||
struct hl_ctx *ctx;
|
||||
int rc;
|
||||
|
||||
@ -143,9 +150,9 @@ int hl_ctx_create(struct hl_device *hdev, struct hl_fpriv *hpriv)
|
||||
goto out_err;
|
||||
}
|
||||
|
||||
mutex_lock(&mgr->ctx_lock);
|
||||
rc = idr_alloc(&mgr->ctx_handles, ctx, 1, 0, GFP_KERNEL);
|
||||
mutex_unlock(&mgr->ctx_lock);
|
||||
mutex_lock(&ctx_mgr->lock);
|
||||
rc = idr_alloc(&ctx_mgr->handles, ctx, 1, 0, GFP_KERNEL);
|
||||
mutex_unlock(&ctx_mgr->lock);
|
||||
|
||||
if (rc < 0) {
|
||||
dev_err(hdev->dev, "Failed to allocate IDR for a new CTX\n");
|
||||
@ -170,9 +177,9 @@ int hl_ctx_create(struct hl_device *hdev, struct hl_fpriv *hpriv)
|
||||
return 0;
|
||||
|
||||
remove_from_idr:
|
||||
mutex_lock(&mgr->ctx_lock);
|
||||
idr_remove(&mgr->ctx_handles, ctx->handle);
|
||||
mutex_unlock(&mgr->ctx_lock);
|
||||
mutex_lock(&ctx_mgr->lock);
|
||||
idr_remove(&ctx_mgr->handles, ctx->handle);
|
||||
mutex_unlock(&ctx_mgr->lock);
|
||||
free_ctx:
|
||||
kfree(ctx);
|
||||
out_err:
|
||||
@ -181,7 +188,7 @@ out_err:
|
||||
|
||||
int hl_ctx_init(struct hl_device *hdev, struct hl_ctx *ctx, bool is_kernel_ctx)
|
||||
{
|
||||
int rc = 0;
|
||||
int rc = 0, i;
|
||||
|
||||
ctx->hdev = hdev;
|
||||
|
||||
@ -197,6 +204,13 @@ int hl_ctx_init(struct hl_device *hdev, struct hl_ctx *ctx, bool is_kernel_ctx)
|
||||
if (!ctx->cs_pending)
|
||||
return -ENOMEM;
|
||||
|
||||
INIT_LIST_HEAD(&ctx->outcome_store.used_list);
|
||||
INIT_LIST_HEAD(&ctx->outcome_store.free_list);
|
||||
hash_init(ctx->outcome_store.outcome_map);
|
||||
for (i = 0; i < ARRAY_SIZE(ctx->outcome_store.nodes_pool); ++i)
|
||||
list_add(&ctx->outcome_store.nodes_pool[i].list_link,
|
||||
&ctx->outcome_store.free_list);
|
||||
|
||||
hl_hw_block_mem_init(ctx);
|
||||
|
||||
if (is_kernel_ctx) {
|
||||
@ -262,6 +276,11 @@ err_hw_block_mem_fini:
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int hl_ctx_get_unless_zero(struct hl_ctx *ctx)
|
||||
{
|
||||
return kref_get_unless_zero(&ctx->refcount);
|
||||
}
|
||||
|
||||
void hl_ctx_get(struct hl_ctx *ctx)
|
||||
{
|
||||
kref_get(&ctx->refcount);
|
||||
@ -280,11 +299,15 @@ struct hl_ctx *hl_get_compute_ctx(struct hl_device *hdev)
|
||||
mutex_lock(&hdev->fpriv_list_lock);
|
||||
|
||||
list_for_each_entry(hpriv, &hdev->fpriv_list, dev_node) {
|
||||
/* There can only be a single user which has opened the compute device, so exit
|
||||
* immediately once we find him
|
||||
*/
|
||||
mutex_lock(&hpriv->ctx_lock);
|
||||
ctx = hpriv->ctx;
|
||||
hl_ctx_get(ctx);
|
||||
if (ctx && !hl_ctx_get_unless_zero(ctx))
|
||||
ctx = NULL;
|
||||
mutex_unlock(&hpriv->ctx_lock);
|
||||
|
||||
/* There can only be a single user which has opened the compute device, so exit
|
||||
* immediately once we find its context or if we see that it has been released
|
||||
*/
|
||||
break;
|
||||
}
|
||||
|
||||
@ -376,37 +399,37 @@ int hl_ctx_get_fences(struct hl_ctx *ctx, u64 *seq_arr,
|
||||
/*
|
||||
* hl_ctx_mgr_init - initialize the context manager
|
||||
*
|
||||
* @mgr: pointer to context manager structure
|
||||
* @ctx_mgr: pointer to context manager structure
|
||||
*
|
||||
* This manager is an object inside the hpriv object of the user process.
|
||||
* The function is called when a user process opens the FD.
|
||||
*/
|
||||
void hl_ctx_mgr_init(struct hl_ctx_mgr *mgr)
|
||||
void hl_ctx_mgr_init(struct hl_ctx_mgr *ctx_mgr)
|
||||
{
|
||||
mutex_init(&mgr->ctx_lock);
|
||||
idr_init(&mgr->ctx_handles);
|
||||
mutex_init(&ctx_mgr->lock);
|
||||
idr_init(&ctx_mgr->handles);
|
||||
}
|
||||
|
||||
/*
|
||||
* hl_ctx_mgr_fini - finalize the context manager
|
||||
*
|
||||
* @hdev: pointer to device structure
|
||||
* @mgr: pointer to context manager structure
|
||||
* @ctx_mgr: pointer to context manager structure
|
||||
*
|
||||
* This function goes over all the contexts in the manager and frees them.
|
||||
* It is called when a process closes the FD.
|
||||
*/
|
||||
void hl_ctx_mgr_fini(struct hl_device *hdev, struct hl_ctx_mgr *mgr)
|
||||
void hl_ctx_mgr_fini(struct hl_device *hdev, struct hl_ctx_mgr *ctx_mgr)
|
||||
{
|
||||
struct hl_ctx *ctx;
|
||||
struct idr *idp;
|
||||
u32 id;
|
||||
|
||||
idp = &mgr->ctx_handles;
|
||||
idp = &ctx_mgr->handles;
|
||||
|
||||
idr_for_each_entry(idp, ctx, id)
|
||||
kref_put(&ctx->refcount, hl_ctx_do_release);
|
||||
|
||||
idr_destroy(&mgr->ctx_handles);
|
||||
mutex_destroy(&mgr->ctx_lock);
|
||||
idr_destroy(&ctx_mgr->handles);
|
||||
mutex_destroy(&ctx_mgr->lock);
|
||||
}
|
||||
|
@ -152,12 +152,12 @@ static int command_submission_show(struct seq_file *s, void *data)
|
||||
if (first) {
|
||||
first = false;
|
||||
seq_puts(s, "\n");
|
||||
seq_puts(s, " CS ID CTX ASID CS RefCnt Submitted Completed\n");
|
||||
seq_puts(s, "------------------------------------------------------\n");
|
||||
seq_puts(s, " CS ID CS TYPE CTX ASID CS RefCnt Submitted Completed\n");
|
||||
seq_puts(s, "----------------------------------------------------------------\n");
|
||||
}
|
||||
seq_printf(s,
|
||||
" %llu %d %d %d %d\n",
|
||||
cs->sequence, cs->ctx->asid,
|
||||
" %llu %d %d %d %d %d\n",
|
||||
cs->sequence, cs->type, cs->ctx->asid,
|
||||
kref_read(&cs->refcount),
|
||||
cs->submitted, cs->completed);
|
||||
}
|
||||
@ -183,17 +183,18 @@ static int command_submission_jobs_show(struct seq_file *s, void *data)
|
||||
if (first) {
|
||||
first = false;
|
||||
seq_puts(s, "\n");
|
||||
seq_puts(s, " JOB ID CS ID CTX ASID JOB RefCnt H/W Queue\n");
|
||||
seq_puts(s, "----------------------------------------------------\n");
|
||||
seq_puts(s, " JOB ID CS ID CS TYPE CTX ASID JOB RefCnt H/W Queue\n");
|
||||
seq_puts(s, "---------------------------------------------------------------\n");
|
||||
}
|
||||
if (job->cs)
|
||||
seq_printf(s,
|
||||
" %02d %llu %d %d %d\n",
|
||||
job->id, job->cs->sequence, job->cs->ctx->asid,
|
||||
kref_read(&job->refcount), job->hw_queue_id);
|
||||
" %02d %llu %d %d %d %d\n",
|
||||
job->id, job->cs->sequence, job->cs->type,
|
||||
job->cs->ctx->asid, kref_read(&job->refcount),
|
||||
job->hw_queue_id);
|
||||
else
|
||||
seq_printf(s,
|
||||
" %02d 0 %d %d %d\n",
|
||||
" %02d 0 0 %d %d %d\n",
|
||||
job->id, HL_KERNEL_ASID_ID,
|
||||
kref_read(&job->refcount), job->hw_queue_id);
|
||||
}
|
||||
@ -449,7 +450,7 @@ static int mmu_show(struct seq_file *s, void *data)
|
||||
if (hl_mmu_get_tlb_info(ctx, virt_addr, &hops_info)) {
|
||||
dev_err(hdev->dev, "virt addr 0x%llx is not mapped to phys addr\n",
|
||||
virt_addr);
|
||||
return 0;
|
||||
goto put_ctx;
|
||||
}
|
||||
|
||||
hl_mmu_va_to_pa(ctx, virt_addr, &phys_addr);
|
||||
@ -475,6 +476,10 @@ static int mmu_show(struct seq_file *s, void *data)
|
||||
i, hops_info.hop_info[i].hop_pte_val);
|
||||
}
|
||||
|
||||
put_ctx:
|
||||
if (dev_entry->mmu_asid != HL_KERNEL_ASID_ID)
|
||||
hl_ctx_put(ctx);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -521,6 +526,66 @@ err:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static int mmu_ack_error(struct seq_file *s, void *data)
|
||||
{
|
||||
struct hl_debugfs_entry *entry = s->private;
|
||||
struct hl_dbg_device_entry *dev_entry = entry->dev_entry;
|
||||
struct hl_device *hdev = dev_entry->hdev;
|
||||
int rc;
|
||||
|
||||
if (!hdev->mmu_enable)
|
||||
return 0;
|
||||
|
||||
if (!dev_entry->mmu_cap_mask) {
|
||||
dev_err(hdev->dev, "mmu_cap_mask is not set\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
rc = hdev->asic_funcs->ack_mmu_errors(hdev, dev_entry->mmu_cap_mask);
|
||||
if (rc)
|
||||
goto err;
|
||||
|
||||
return 0;
|
||||
err:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static ssize_t mmu_ack_error_value_write(struct file *file,
|
||||
const char __user *buf,
|
||||
size_t count, loff_t *f_pos)
|
||||
{
|
||||
struct seq_file *s = file->private_data;
|
||||
struct hl_debugfs_entry *entry = s->private;
|
||||
struct hl_dbg_device_entry *dev_entry = entry->dev_entry;
|
||||
struct hl_device *hdev = dev_entry->hdev;
|
||||
char kbuf[MMU_KBUF_SIZE];
|
||||
ssize_t rc;
|
||||
|
||||
if (!hdev->mmu_enable)
|
||||
return count;
|
||||
|
||||
if (count > sizeof(kbuf) - 1)
|
||||
goto err;
|
||||
|
||||
if (copy_from_user(kbuf, buf, count))
|
||||
goto err;
|
||||
|
||||
kbuf[count] = 0;
|
||||
|
||||
if (strncmp(kbuf, "0x", 2))
|
||||
goto err;
|
||||
|
||||
rc = kstrtoull(kbuf, 16, &dev_entry->mmu_cap_mask);
|
||||
if (rc)
|
||||
goto err;
|
||||
|
||||
return count;
|
||||
err:
|
||||
dev_err(hdev->dev, "usage: echo <0xmmu_cap_mask > > mmu_error\n");
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static int engines_show(struct seq_file *s, void *data)
|
||||
{
|
||||
struct hl_debugfs_entry *entry = s->private;
|
||||
@ -543,7 +608,7 @@ static ssize_t hl_memory_scrub(struct file *f, const char __user *buf,
|
||||
{
|
||||
struct hl_dbg_device_entry *entry = file_inode(f)->i_private;
|
||||
struct hl_device *hdev = entry->hdev;
|
||||
u64 val = entry->memory_scrub_val;
|
||||
u64 val = hdev->memory_scrub_val;
|
||||
int rc;
|
||||
|
||||
if (!hl_device_operational(hdev, NULL)) {
|
||||
@ -666,7 +731,8 @@ static int device_va_to_pa(struct hl_device *hdev, u64 virt_addr, u32 size,
|
||||
dev_err(hdev->dev,
|
||||
"virt addr 0x%llx is not mapped\n",
|
||||
virt_addr);
|
||||
return -EINVAL;
|
||||
rc = -EINVAL;
|
||||
goto put_ctx;
|
||||
}
|
||||
|
||||
rc = hl_mmu_va_to_pa(ctx, virt_addr, phys_addr);
|
||||
@ -677,6 +743,9 @@ static int device_va_to_pa(struct hl_device *hdev, u64 virt_addr, u32 size,
|
||||
rc = -EINVAL;
|
||||
}
|
||||
|
||||
put_ctx:
|
||||
hl_ctx_put(ctx);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -695,8 +764,7 @@ static int hl_access_dev_mem_by_region(struct hl_device *hdev, u64 addr,
|
||||
if (addr >= mem_reg->region_base &&
|
||||
addr <= mem_reg->region_base + mem_reg->region_size - acc_size) {
|
||||
*found = true;
|
||||
return hdev->asic_funcs->access_dev_mem(hdev, mem_reg, i,
|
||||
addr, val, acc_type);
|
||||
return hdev->asic_funcs->access_dev_mem(hdev, i, addr, val, acc_type);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
@ -728,7 +796,7 @@ static void hl_access_host_mem(struct hl_device *hdev, u64 addr, u64 *val,
|
||||
}
|
||||
|
||||
static int hl_access_mem(struct hl_device *hdev, u64 addr, u64 *val,
|
||||
enum debugfs_access_type acc_type)
|
||||
enum debugfs_access_type acc_type)
|
||||
{
|
||||
size_t acc_size = (acc_type == DEBUGFS_READ64 || acc_type == DEBUGFS_WRITE64) ?
|
||||
sizeof(u64) : sizeof(u32);
|
||||
@ -1349,6 +1417,17 @@ static ssize_t hl_timeout_locked_write(struct file *f, const char __user *buf,
|
||||
return count;
|
||||
}
|
||||
|
||||
static ssize_t hl_check_razwi_happened(struct file *f, char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct hl_dbg_device_entry *entry = file_inode(f)->i_private;
|
||||
struct hl_device *hdev = entry->hdev;
|
||||
|
||||
hdev->asic_funcs->check_if_razwi_happened(hdev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct file_operations hl_mem_scrub_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.write = hl_memory_scrub,
|
||||
@ -1438,6 +1517,11 @@ static const struct file_operations hl_timeout_locked_fops = {
|
||||
.write = hl_timeout_locked_write
|
||||
};
|
||||
|
||||
static const struct file_operations hl_razwi_check_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.read = hl_check_razwi_happened
|
||||
};
|
||||
|
||||
static const struct hl_info_list hl_debugfs_list[] = {
|
||||
{"command_buffers", command_buffers_show, NULL},
|
||||
{"command_submission", command_submission_show, NULL},
|
||||
@ -1446,7 +1530,8 @@ static const struct hl_info_list hl_debugfs_list[] = {
|
||||
{"vm", vm_show, NULL},
|
||||
{"userptr_lookup", userptr_lookup_show, userptr_lookup_write},
|
||||
{"mmu", mmu_show, mmu_asid_va_write},
|
||||
{"engines", engines_show, NULL}
|
||||
{"mmu_error", mmu_ack_error, mmu_ack_error_value_write},
|
||||
{"engines", engines_show, NULL},
|
||||
};
|
||||
|
||||
static int hl_debugfs_open(struct inode *inode, struct file *file)
|
||||
@ -1477,76 +1562,8 @@ static const struct file_operations hl_debugfs_fops = {
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
void hl_debugfs_add_device(struct hl_device *hdev)
|
||||
static void add_secured_nodes(struct hl_dbg_device_entry *dev_entry)
|
||||
{
|
||||
struct hl_dbg_device_entry *dev_entry = &hdev->hl_debugfs;
|
||||
int count = ARRAY_SIZE(hl_debugfs_list);
|
||||
struct hl_debugfs_entry *entry;
|
||||
int i;
|
||||
|
||||
dev_entry->hdev = hdev;
|
||||
dev_entry->entry_arr = kmalloc_array(count,
|
||||
sizeof(struct hl_debugfs_entry),
|
||||
GFP_KERNEL);
|
||||
if (!dev_entry->entry_arr)
|
||||
return;
|
||||
|
||||
dev_entry->data_dma_blob_desc.size = 0;
|
||||
dev_entry->data_dma_blob_desc.data = NULL;
|
||||
dev_entry->mon_dump_blob_desc.size = 0;
|
||||
dev_entry->mon_dump_blob_desc.data = NULL;
|
||||
|
||||
INIT_LIST_HEAD(&dev_entry->file_list);
|
||||
INIT_LIST_HEAD(&dev_entry->cb_list);
|
||||
INIT_LIST_HEAD(&dev_entry->cs_list);
|
||||
INIT_LIST_HEAD(&dev_entry->cs_job_list);
|
||||
INIT_LIST_HEAD(&dev_entry->userptr_list);
|
||||
INIT_LIST_HEAD(&dev_entry->ctx_mem_hash_list);
|
||||
mutex_init(&dev_entry->file_mutex);
|
||||
init_rwsem(&dev_entry->state_dump_sem);
|
||||
spin_lock_init(&dev_entry->cb_spinlock);
|
||||
spin_lock_init(&dev_entry->cs_spinlock);
|
||||
spin_lock_init(&dev_entry->cs_job_spinlock);
|
||||
spin_lock_init(&dev_entry->userptr_spinlock);
|
||||
spin_lock_init(&dev_entry->ctx_mem_hash_spinlock);
|
||||
|
||||
dev_entry->root = debugfs_create_dir(dev_name(hdev->dev),
|
||||
hl_debug_root);
|
||||
|
||||
debugfs_create_x64("memory_scrub_val",
|
||||
0644,
|
||||
dev_entry->root,
|
||||
&dev_entry->memory_scrub_val);
|
||||
|
||||
debugfs_create_file("memory_scrub",
|
||||
0200,
|
||||
dev_entry->root,
|
||||
dev_entry,
|
||||
&hl_mem_scrub_fops);
|
||||
|
||||
debugfs_create_x64("addr",
|
||||
0644,
|
||||
dev_entry->root,
|
||||
&dev_entry->addr);
|
||||
|
||||
debugfs_create_file("data32",
|
||||
0644,
|
||||
dev_entry->root,
|
||||
dev_entry,
|
||||
&hl_data32b_fops);
|
||||
|
||||
debugfs_create_file("data64",
|
||||
0644,
|
||||
dev_entry->root,
|
||||
dev_entry,
|
||||
&hl_data64b_fops);
|
||||
|
||||
debugfs_create_file("set_power_state",
|
||||
0200,
|
||||
dev_entry->root,
|
||||
dev_entry,
|
||||
&hl_power_fops);
|
||||
|
||||
debugfs_create_u8("i2c_bus",
|
||||
0644,
|
||||
dev_entry->root,
|
||||
@ -1590,6 +1607,77 @@ void hl_debugfs_add_device(struct hl_device *hdev)
|
||||
dev_entry->root,
|
||||
dev_entry,
|
||||
&hl_led2_fops);
|
||||
}
|
||||
|
||||
void hl_debugfs_add_device(struct hl_device *hdev)
|
||||
{
|
||||
struct hl_dbg_device_entry *dev_entry = &hdev->hl_debugfs;
|
||||
int count = ARRAY_SIZE(hl_debugfs_list);
|
||||
struct hl_debugfs_entry *entry;
|
||||
int i;
|
||||
|
||||
dev_entry->hdev = hdev;
|
||||
dev_entry->entry_arr = kmalloc_array(count,
|
||||
sizeof(struct hl_debugfs_entry),
|
||||
GFP_KERNEL);
|
||||
if (!dev_entry->entry_arr)
|
||||
return;
|
||||
|
||||
dev_entry->data_dma_blob_desc.size = 0;
|
||||
dev_entry->data_dma_blob_desc.data = NULL;
|
||||
dev_entry->mon_dump_blob_desc.size = 0;
|
||||
dev_entry->mon_dump_blob_desc.data = NULL;
|
||||
|
||||
INIT_LIST_HEAD(&dev_entry->file_list);
|
||||
INIT_LIST_HEAD(&dev_entry->cb_list);
|
||||
INIT_LIST_HEAD(&dev_entry->cs_list);
|
||||
INIT_LIST_HEAD(&dev_entry->cs_job_list);
|
||||
INIT_LIST_HEAD(&dev_entry->userptr_list);
|
||||
INIT_LIST_HEAD(&dev_entry->ctx_mem_hash_list);
|
||||
mutex_init(&dev_entry->file_mutex);
|
||||
init_rwsem(&dev_entry->state_dump_sem);
|
||||
spin_lock_init(&dev_entry->cb_spinlock);
|
||||
spin_lock_init(&dev_entry->cs_spinlock);
|
||||
spin_lock_init(&dev_entry->cs_job_spinlock);
|
||||
spin_lock_init(&dev_entry->userptr_spinlock);
|
||||
spin_lock_init(&dev_entry->ctx_mem_hash_spinlock);
|
||||
|
||||
dev_entry->root = debugfs_create_dir(dev_name(hdev->dev),
|
||||
hl_debug_root);
|
||||
|
||||
debugfs_create_x64("memory_scrub_val",
|
||||
0644,
|
||||
dev_entry->root,
|
||||
&hdev->memory_scrub_val);
|
||||
|
||||
debugfs_create_file("memory_scrub",
|
||||
0200,
|
||||
dev_entry->root,
|
||||
dev_entry,
|
||||
&hl_mem_scrub_fops);
|
||||
|
||||
debugfs_create_x64("addr",
|
||||
0644,
|
||||
dev_entry->root,
|
||||
&dev_entry->addr);
|
||||
|
||||
debugfs_create_file("data32",
|
||||
0644,
|
||||
dev_entry->root,
|
||||
dev_entry,
|
||||
&hl_data32b_fops);
|
||||
|
||||
debugfs_create_file("data64",
|
||||
0644,
|
||||
dev_entry->root,
|
||||
dev_entry,
|
||||
&hl_data64b_fops);
|
||||
|
||||
debugfs_create_file("set_power_state",
|
||||
0200,
|
||||
dev_entry->root,
|
||||
dev_entry,
|
||||
&hl_power_fops);
|
||||
|
||||
debugfs_create_file("device",
|
||||
0200,
|
||||
@ -1615,6 +1703,12 @@ void hl_debugfs_add_device(struct hl_device *hdev)
|
||||
dev_entry,
|
||||
&hl_security_violations_fops);
|
||||
|
||||
debugfs_create_file("dump_razwi_events",
|
||||
0644,
|
||||
dev_entry->root,
|
||||
dev_entry,
|
||||
&hl_razwi_check_fops);
|
||||
|
||||
debugfs_create_file("dma_size",
|
||||
0200,
|
||||
dev_entry->root,
|
||||
@ -1663,6 +1757,9 @@ void hl_debugfs_add_device(struct hl_device *hdev)
|
||||
entry->info_ent = &hl_debugfs_list[i];
|
||||
entry->dev_entry = dev_entry;
|
||||
}
|
||||
|
||||
if (!hdev->asic_prop.fw_security_enabled)
|
||||
add_secured_nodes(dev_entry);
|
||||
}
|
||||
|
||||
void hl_debugfs_remove_device(struct hl_device *hdev)
|
||||
|
133
drivers/misc/habanalabs/common/decoder.c
Normal file
133
drivers/misc/habanalabs/common/decoder.c
Normal file
@ -0,0 +1,133 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/*
|
||||
* Copyright 2022 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "habanalabs.h"
|
||||
|
||||
#define VCMD_CONTROL_OFFSET 0x40 /* SWREG16 */
|
||||
#define VCMD_IRQ_STATUS_OFFSET 0x44 /* SWREG17 */
|
||||
|
||||
#define VCMD_IRQ_STATUS_ENDCMD_MASK 0x1
|
||||
#define VCMD_IRQ_STATUS_BUSERR_MASK 0x2
|
||||
#define VCMD_IRQ_STATUS_TIMEOUT_MASK 0x4
|
||||
#define VCMD_IRQ_STATUS_CMDERR_MASK 0x8
|
||||
#define VCMD_IRQ_STATUS_ABORT_MASK 0x10
|
||||
#define VCMD_IRQ_STATUS_RESET_MASK 0x20
|
||||
|
||||
static void dec_print_abnrm_intr_source(struct hl_device *hdev, u32 irq_status)
|
||||
{
|
||||
const char *format = "abnormal interrupt source:%s%s%s%s%s%s\n";
|
||||
char *intr_source[6] = {"Unknown", "", "", "", "", ""};
|
||||
int i = 0;
|
||||
|
||||
if (!irq_status)
|
||||
return;
|
||||
|
||||
if (irq_status & VCMD_IRQ_STATUS_ENDCMD_MASK)
|
||||
intr_source[i++] = " ENDCMD";
|
||||
if (irq_status & VCMD_IRQ_STATUS_BUSERR_MASK)
|
||||
intr_source[i++] = " BUSERR";
|
||||
if (irq_status & VCMD_IRQ_STATUS_TIMEOUT_MASK)
|
||||
intr_source[i++] = " TIMEOUT";
|
||||
if (irq_status & VCMD_IRQ_STATUS_CMDERR_MASK)
|
||||
intr_source[i++] = " CMDERR";
|
||||
if (irq_status & VCMD_IRQ_STATUS_ABORT_MASK)
|
||||
intr_source[i++] = " ABORT";
|
||||
if (irq_status & VCMD_IRQ_STATUS_RESET_MASK)
|
||||
intr_source[i++] = " RESET";
|
||||
|
||||
dev_err(hdev->dev, format, intr_source[0], intr_source[1],
|
||||
intr_source[2], intr_source[3], intr_source[4], intr_source[5]);
|
||||
}
|
||||
|
||||
static void dec_error_intr_work(struct hl_device *hdev, u32 base_addr, u32 core_id)
|
||||
{
|
||||
bool reset_required = false;
|
||||
u32 irq_status;
|
||||
|
||||
irq_status = RREG32(base_addr + VCMD_IRQ_STATUS_OFFSET);
|
||||
|
||||
dev_err(hdev->dev, "Decoder abnormal interrupt %#x, core %d\n", irq_status, core_id);
|
||||
|
||||
dec_print_abnrm_intr_source(hdev, irq_status);
|
||||
|
||||
if (irq_status & VCMD_IRQ_STATUS_TIMEOUT_MASK)
|
||||
reset_required = true;
|
||||
|
||||
/* Clear the interrupt */
|
||||
WREG32(base_addr + VCMD_IRQ_STATUS_OFFSET, irq_status);
|
||||
|
||||
/* Flush the interrupt clear */
|
||||
RREG32(base_addr + VCMD_IRQ_STATUS_OFFSET);
|
||||
|
||||
if (reset_required)
|
||||
hl_device_reset(hdev, HL_DRV_RESET_HARD);
|
||||
}
|
||||
|
||||
static void dec_completion_abnrm(struct work_struct *work)
|
||||
{
|
||||
struct hl_dec *dec = container_of(work, struct hl_dec, completion_abnrm_work);
|
||||
struct hl_device *hdev = dec->hdev;
|
||||
|
||||
dec_error_intr_work(hdev, dec->base_addr, dec->core_id);
|
||||
}
|
||||
|
||||
void hl_dec_fini(struct hl_device *hdev)
|
||||
{
|
||||
kfree(hdev->dec);
|
||||
}
|
||||
|
||||
int hl_dec_init(struct hl_device *hdev)
|
||||
{
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
struct hl_dec *dec;
|
||||
int rc, j;
|
||||
|
||||
/* if max core is 0, nothing to do*/
|
||||
if (!prop->max_dec)
|
||||
return 0;
|
||||
|
||||
hdev->dec = kcalloc(prop->max_dec, sizeof(struct hl_dec), GFP_KERNEL);
|
||||
if (!hdev->dec)
|
||||
return -ENOMEM;
|
||||
|
||||
for (j = 0 ; j < prop->max_dec ; j++) {
|
||||
dec = hdev->dec + j;
|
||||
|
||||
dec->hdev = hdev;
|
||||
INIT_WORK(&dec->completion_abnrm_work, dec_completion_abnrm);
|
||||
dec->core_id = j;
|
||||
dec->base_addr = hdev->asic_funcs->get_dec_base_addr(hdev, j);
|
||||
if (!dec->base_addr) {
|
||||
dev_err(hdev->dev, "Invalid base address of decoder %d\n", j);
|
||||
rc = -EINVAL;
|
||||
goto err_dec_fini;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err_dec_fini:
|
||||
hl_dec_fini(hdev);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
void hl_dec_ctx_fini(struct hl_ctx *ctx)
|
||||
{
|
||||
struct hl_device *hdev = ctx->hdev;
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
struct hl_dec *dec;
|
||||
int j;
|
||||
|
||||
for (j = 0 ; j < prop->max_dec ; j++) {
|
||||
if (!!(prop->decoder_enabled_mask & BIT(j))) {
|
||||
dec = hdev->dec + j;
|
||||
/* Stop the decoder */
|
||||
WREG32(dec->base_addr + VCMD_CONTROL_OFFSET, 0);
|
||||
}
|
||||
}
|
||||
}
|
@ -15,6 +15,14 @@
|
||||
|
||||
#define HL_RESET_DELAY_USEC 10000 /* 10ms */
|
||||
|
||||
enum dma_alloc_type {
|
||||
DMA_ALLOC_COHERENT,
|
||||
DMA_ALLOC_CPU_ACCESSIBLE,
|
||||
DMA_ALLOC_POOL,
|
||||
};
|
||||
|
||||
#define MEM_SCRUB_DEFAULT_VAL 0x1122334455667788
|
||||
|
||||
/*
|
||||
* hl_set_dram_bar- sets the bar to allow later access to address
|
||||
*
|
||||
@ -44,7 +52,7 @@ static int hl_access_sram_dram_region(struct hl_device *hdev, u64 addr, u64 *val
|
||||
enum debugfs_access_type acc_type, enum pci_region region_type)
|
||||
{
|
||||
struct pci_mem_region *region = &hdev->pci_mem_region[region_type];
|
||||
u64 old_base, rc;
|
||||
u64 old_base = 0, rc;
|
||||
|
||||
if (region_type == PCI_REGION_DRAM) {
|
||||
old_base = hl_set_dram_bar(hdev, addr);
|
||||
@ -88,6 +96,75 @@ static int hl_access_sram_dram_region(struct hl_device *hdev, u64 addr, u64 *val
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void *hl_dma_alloc_common(struct hl_device *hdev, size_t size, dma_addr_t *dma_handle,
|
||||
gfp_t flag, enum dma_alloc_type alloc_type)
|
||||
{
|
||||
void *ptr;
|
||||
|
||||
switch (alloc_type) {
|
||||
case DMA_ALLOC_COHERENT:
|
||||
ptr = hdev->asic_funcs->asic_dma_alloc_coherent(hdev, size, dma_handle, flag);
|
||||
break;
|
||||
case DMA_ALLOC_CPU_ACCESSIBLE:
|
||||
ptr = hdev->asic_funcs->cpu_accessible_dma_pool_alloc(hdev, size, dma_handle);
|
||||
break;
|
||||
case DMA_ALLOC_POOL:
|
||||
ptr = hdev->asic_funcs->asic_dma_pool_zalloc(hdev, size, flag, dma_handle);
|
||||
break;
|
||||
}
|
||||
|
||||
return ptr;
|
||||
}
|
||||
|
||||
static void hl_asic_dma_free_common(struct hl_device *hdev, size_t size, void *cpu_addr,
|
||||
dma_addr_t dma_handle, enum dma_alloc_type alloc_type)
|
||||
{
|
||||
switch (alloc_type) {
|
||||
case DMA_ALLOC_COHERENT:
|
||||
hdev->asic_funcs->asic_dma_free_coherent(hdev, size, cpu_addr, dma_handle);
|
||||
break;
|
||||
case DMA_ALLOC_CPU_ACCESSIBLE:
|
||||
hdev->asic_funcs->cpu_accessible_dma_pool_free(hdev, size, cpu_addr);
|
||||
break;
|
||||
case DMA_ALLOC_POOL:
|
||||
hdev->asic_funcs->asic_dma_pool_free(hdev, cpu_addr, dma_handle);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void *hl_asic_dma_alloc_coherent(struct hl_device *hdev, size_t size, dma_addr_t *dma_handle,
|
||||
gfp_t flag)
|
||||
{
|
||||
return hl_dma_alloc_common(hdev, size, dma_handle, flag, DMA_ALLOC_COHERENT);
|
||||
}
|
||||
|
||||
void hl_asic_dma_free_coherent(struct hl_device *hdev, size_t size, void *cpu_addr,
|
||||
dma_addr_t dma_handle)
|
||||
{
|
||||
hl_asic_dma_free_common(hdev, size, cpu_addr, dma_handle, DMA_ALLOC_COHERENT);
|
||||
}
|
||||
|
||||
void *hl_cpu_accessible_dma_pool_alloc(struct hl_device *hdev, size_t size, dma_addr_t *dma_handle)
|
||||
{
|
||||
return hl_dma_alloc_common(hdev, size, dma_handle, 0, DMA_ALLOC_CPU_ACCESSIBLE);
|
||||
}
|
||||
|
||||
void hl_cpu_accessible_dma_pool_free(struct hl_device *hdev, size_t size, void *vaddr)
|
||||
{
|
||||
hl_asic_dma_free_common(hdev, size, vaddr, 0, DMA_ALLOC_CPU_ACCESSIBLE);
|
||||
}
|
||||
|
||||
void *hl_asic_dma_pool_zalloc(struct hl_device *hdev, size_t size, gfp_t mem_flags,
|
||||
dma_addr_t *dma_handle)
|
||||
{
|
||||
return hl_dma_alloc_common(hdev, size, dma_handle, mem_flags, DMA_ALLOC_POOL);
|
||||
}
|
||||
|
||||
void hl_asic_dma_pool_free(struct hl_device *hdev, void *vaddr, dma_addr_t dma_addr)
|
||||
{
|
||||
hl_asic_dma_free_common(hdev, 0, vaddr, dma_addr, DMA_ALLOC_POOL);
|
||||
}
|
||||
|
||||
int hl_dma_map_sgtable(struct hl_device *hdev, struct sg_table *sgt, enum dma_data_direction dir)
|
||||
{
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
@ -168,14 +245,13 @@ int hl_access_cfg_region(struct hl_device *hdev, u64 addr, u64 *val,
|
||||
* hl_access_dev_mem - access device memory
|
||||
*
|
||||
* @hdev: pointer to habanalabs device structure
|
||||
* @region: the memory region the address belongs to
|
||||
* @region_type: the type of the region the address belongs to
|
||||
* @addr: the address to access
|
||||
* @val: the value to write from or read to
|
||||
* @acc_type: the type of access (r/w, 32/64)
|
||||
*/
|
||||
int hl_access_dev_mem(struct hl_device *hdev, struct pci_mem_region *region,
|
||||
enum pci_region region_type, u64 addr, u64 *val, enum debugfs_access_type acc_type)
|
||||
int hl_access_dev_mem(struct hl_device *hdev, enum pci_region region_type,
|
||||
u64 addr, u64 *val, enum debugfs_access_type acc_type)
|
||||
{
|
||||
switch (region_type) {
|
||||
case PCI_REGION_CFG:
|
||||
@ -195,16 +271,20 @@ enum hl_device_status hl_device_status(struct hl_device *hdev)
|
||||
{
|
||||
enum hl_device_status status;
|
||||
|
||||
if (hdev->reset_info.in_reset)
|
||||
status = HL_DEVICE_STATUS_IN_RESET;
|
||||
else if (hdev->reset_info.needs_reset)
|
||||
if (hdev->reset_info.in_reset) {
|
||||
if (hdev->reset_info.in_compute_reset)
|
||||
status = HL_DEVICE_STATUS_IN_RESET_AFTER_DEVICE_RELEASE;
|
||||
else
|
||||
status = HL_DEVICE_STATUS_IN_RESET;
|
||||
} else if (hdev->reset_info.needs_reset) {
|
||||
status = HL_DEVICE_STATUS_NEEDS_RESET;
|
||||
else if (hdev->disabled)
|
||||
} else if (hdev->disabled) {
|
||||
status = HL_DEVICE_STATUS_MALFUNCTION;
|
||||
else if (!hdev->init_done)
|
||||
} else if (!hdev->init_done) {
|
||||
status = HL_DEVICE_STATUS_IN_DEVICE_CREATION;
|
||||
else
|
||||
} else {
|
||||
status = HL_DEVICE_STATUS_OPERATIONAL;
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
@ -220,6 +300,7 @@ bool hl_device_operational(struct hl_device *hdev,
|
||||
|
||||
switch (current_status) {
|
||||
case HL_DEVICE_STATUS_IN_RESET:
|
||||
case HL_DEVICE_STATUS_IN_RESET_AFTER_DEVICE_RELEASE:
|
||||
case HL_DEVICE_STATUS_MALFUNCTION:
|
||||
case HL_DEVICE_STATUS_NEEDS_RESET:
|
||||
return false;
|
||||
@ -245,6 +326,7 @@ static void hpriv_release(struct kref *ref)
|
||||
|
||||
hl_debugfs_remove_file(hpriv);
|
||||
|
||||
mutex_destroy(&hpriv->ctx_lock);
|
||||
mutex_destroy(&hpriv->restore_phase_mutex);
|
||||
|
||||
if ((!hdev->pldm) && (hdev->pdev) &&
|
||||
@ -271,9 +353,14 @@ static void hpriv_release(struct kref *ref)
|
||||
list_del(&hpriv->dev_node);
|
||||
mutex_unlock(&hdev->fpriv_list_lock);
|
||||
|
||||
if ((hdev->reset_if_device_not_idle && !device_is_idle)
|
||||
|| hdev->reset_upon_device_release)
|
||||
if (!device_is_idle || hdev->reset_upon_device_release) {
|
||||
hl_device_reset(hdev, HL_DRV_RESET_DEV_RELEASE);
|
||||
} else {
|
||||
int rc = hdev->asic_funcs->scrub_device_mem(hdev);
|
||||
|
||||
if (rc)
|
||||
dev_err(hdev->dev, "failed to scrub memory from hpriv release (%d)\n", rc);
|
||||
}
|
||||
|
||||
/* Now we can mark the compute_ctx as not active. Even if a reset is running in a different
|
||||
* thread, we don't care because the in_reset is marked so if a user will try to open
|
||||
@ -330,8 +417,8 @@ static int hl_device_release(struct inode *inode, struct file *filp)
|
||||
*/
|
||||
hl_release_pending_user_interrupts(hpriv->hdev);
|
||||
|
||||
hl_mem_mgr_fini(&hpriv->mem_mgr);
|
||||
hl_ctx_mgr_fini(hdev, &hpriv->ctx_mgr);
|
||||
hl_mem_mgr_fini(&hpriv->mem_mgr);
|
||||
|
||||
hdev->compute_ctx_in_release = 1;
|
||||
|
||||
@ -379,7 +466,7 @@ out:
|
||||
* @*filp: pointer to file structure
|
||||
* @*vma: pointer to vm_area_struct of the process
|
||||
*
|
||||
* Called when process does an mmap on habanalabs device. Call the device's mmap
|
||||
* Called when process does an mmap on habanalabs device. Call the relevant mmap
|
||||
* function at the end of the common code.
|
||||
*/
|
||||
static int hl_mmap(struct file *filp, struct vm_area_struct *vma)
|
||||
@ -404,7 +491,6 @@ static int hl_mmap(struct file *filp, struct vm_area_struct *vma)
|
||||
case HL_MMAP_TYPE_TS_BUFF:
|
||||
return hl_mem_mgr_mmap(&hpriv->mem_mgr, vma, NULL);
|
||||
}
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -563,6 +649,14 @@ static int device_early_init(struct hl_device *hdev)
|
||||
gaudi_set_asic_funcs(hdev);
|
||||
strscpy(hdev->asic_name, "GAUDI SEC", sizeof(hdev->asic_name));
|
||||
break;
|
||||
case ASIC_GAUDI2:
|
||||
gaudi2_set_asic_funcs(hdev);
|
||||
strscpy(hdev->asic_name, "GAUDI2", sizeof(hdev->asic_name));
|
||||
break;
|
||||
case ASIC_GAUDI2_SEC:
|
||||
gaudi2_set_asic_funcs(hdev);
|
||||
strscpy(hdev->asic_name, "GAUDI2 SEC", sizeof(hdev->asic_name));
|
||||
break;
|
||||
default:
|
||||
dev_err(hdev->dev, "Unrecognized ASIC type %d\n",
|
||||
hdev->asic_type);
|
||||
@ -604,12 +698,20 @@ static int device_early_init(struct hl_device *hdev)
|
||||
goto free_cq_wq;
|
||||
}
|
||||
|
||||
hdev->cs_cmplt_wq = alloc_workqueue("hl-cs-completions", WQ_UNBOUND, 0);
|
||||
if (!hdev->cs_cmplt_wq) {
|
||||
dev_err(hdev->dev,
|
||||
"Failed to allocate CS completions workqueue\n");
|
||||
rc = -ENOMEM;
|
||||
goto free_eq_wq;
|
||||
}
|
||||
|
||||
hdev->ts_free_obj_wq = alloc_workqueue("hl-ts-free-obj", WQ_UNBOUND, 0);
|
||||
if (!hdev->ts_free_obj_wq) {
|
||||
dev_err(hdev->dev,
|
||||
"Failed to allocate Timestamp registration free workqueue\n");
|
||||
rc = -ENOMEM;
|
||||
goto free_eq_wq;
|
||||
goto free_cs_cmplt_wq;
|
||||
}
|
||||
|
||||
hdev->pf_wq = alloc_workqueue("hl-prefetch", WQ_UNBOUND, 0);
|
||||
@ -666,6 +768,8 @@ free_pf_wq:
|
||||
destroy_workqueue(hdev->pf_wq);
|
||||
free_ts_free_wq:
|
||||
destroy_workqueue(hdev->ts_free_obj_wq);
|
||||
free_cs_cmplt_wq:
|
||||
destroy_workqueue(hdev->cs_cmplt_wq);
|
||||
free_eq_wq:
|
||||
destroy_workqueue(hdev->eq_wq);
|
||||
free_cq_wq:
|
||||
@ -706,6 +810,7 @@ static void device_early_fini(struct hl_device *hdev)
|
||||
|
||||
destroy_workqueue(hdev->pf_wq);
|
||||
destroy_workqueue(hdev->ts_free_obj_wq);
|
||||
destroy_workqueue(hdev->cs_cmplt_wq);
|
||||
destroy_workqueue(hdev->eq_wq);
|
||||
destroy_workqueue(hdev->device_reset_work.wq);
|
||||
|
||||
@ -1159,8 +1264,7 @@ static void handle_reset_trigger(struct hl_device *hdev, u32 flags)
|
||||
* of heartbeat, the device CPU is marked as disable
|
||||
* so this message won't be sent
|
||||
*/
|
||||
if (hl_fw_send_pci_access_msg(hdev,
|
||||
CPUCP_PACKET_DISABLE_PCI_ACCESS))
|
||||
if (hl_fw_send_pci_access_msg(hdev, CPUCP_PACKET_DISABLE_PCI_ACCESS, 0x0))
|
||||
dev_warn(hdev->dev,
|
||||
"Failed to disable PCI access by F/W\n");
|
||||
}
|
||||
@ -1202,7 +1306,7 @@ int hl_device_reset(struct hl_device *hdev, u32 flags)
|
||||
skip_wq_flush = !!(flags & HL_DRV_RESET_DEV_RELEASE);
|
||||
delay_reset = !!(flags & HL_DRV_RESET_DELAY);
|
||||
|
||||
if (!hard_reset && !hdev->asic_prop.supports_soft_reset) {
|
||||
if (!hard_reset && !hdev->asic_prop.supports_compute_reset) {
|
||||
hard_instead_soft = true;
|
||||
hard_reset = true;
|
||||
}
|
||||
@ -1225,7 +1329,7 @@ int hl_device_reset(struct hl_device *hdev, u32 flags)
|
||||
}
|
||||
|
||||
if (hard_instead_soft)
|
||||
dev_dbg(hdev->dev, "Doing hard-reset instead of soft-reset\n");
|
||||
dev_dbg(hdev->dev, "Doing hard-reset instead of compute reset\n");
|
||||
|
||||
do_reset:
|
||||
/* Re-entry of reset thread */
|
||||
@ -1241,13 +1345,20 @@ do_reset:
|
||||
/* Block future CS/VM/JOB completion operations */
|
||||
spin_lock(&hdev->reset_info.lock);
|
||||
if (hdev->reset_info.in_reset) {
|
||||
/* We only allow scheduling of a hard reset during soft reset */
|
||||
if (hard_reset && hdev->reset_info.is_in_soft_reset)
|
||||
/* We only allow scheduling of a hard reset during compute reset */
|
||||
if (hard_reset && hdev->reset_info.in_compute_reset)
|
||||
hdev->reset_info.hard_reset_schedule_flags = flags;
|
||||
spin_unlock(&hdev->reset_info.lock);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* This still allows the completion of some KDMA ops
|
||||
* Update this before in_reset because in_compute_reset implies we are in reset
|
||||
*/
|
||||
hdev->reset_info.in_compute_reset = !hard_reset;
|
||||
|
||||
hdev->reset_info.in_reset = 1;
|
||||
|
||||
spin_unlock(&hdev->reset_info.lock);
|
||||
|
||||
if (delay_reset)
|
||||
@ -1255,9 +1366,6 @@ do_reset:
|
||||
|
||||
handle_reset_trigger(hdev, flags);
|
||||
|
||||
/* This still allows the completion of some KDMA ops */
|
||||
hdev->reset_info.is_in_soft_reset = !hard_reset;
|
||||
|
||||
/* This also blocks future CS/VM/JOB completion operations */
|
||||
hdev->disabled = true;
|
||||
|
||||
@ -1445,7 +1553,8 @@ kill_processes:
|
||||
goto out_err;
|
||||
}
|
||||
|
||||
hl_fw_set_max_power(hdev);
|
||||
if (!hdev->asic_prop.fw_security_enabled)
|
||||
hl_fw_set_max_power(hdev);
|
||||
} else {
|
||||
rc = hdev->asic_funcs->non_hard_reset_late_init(hdev);
|
||||
if (rc) {
|
||||
@ -1453,13 +1562,19 @@ kill_processes:
|
||||
dev_err(hdev->dev,
|
||||
"Failed late init in reset after device release\n");
|
||||
else
|
||||
dev_err(hdev->dev, "Failed late init after soft reset\n");
|
||||
dev_err(hdev->dev, "Failed late init after compute reset\n");
|
||||
goto out_err;
|
||||
}
|
||||
}
|
||||
|
||||
rc = hdev->asic_funcs->scrub_device_mem(hdev);
|
||||
if (rc) {
|
||||
dev_err(hdev->dev, "scrub mem failed from device reset (%d)\n", rc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
spin_lock(&hdev->reset_info.lock);
|
||||
hdev->reset_info.is_in_soft_reset = false;
|
||||
hdev->reset_info.in_compute_reset = 0;
|
||||
|
||||
/* Schedule hard reset only if requested and if not already in hard reset.
|
||||
* We keep 'in_reset' enabled, so no other reset can go in during the hard
|
||||
@ -1489,11 +1604,11 @@ kill_processes:
|
||||
*/
|
||||
hdev->asic_funcs->enable_events_from_fw(hdev);
|
||||
} else if (!reset_upon_device_release) {
|
||||
hdev->reset_info.soft_reset_cnt++;
|
||||
hdev->reset_info.compute_reset_cnt++;
|
||||
}
|
||||
|
||||
if (schedule_hard_reset) {
|
||||
dev_info(hdev->dev, "Performing hard reset scheduled during soft reset\n");
|
||||
dev_info(hdev->dev, "Performing hard reset scheduled during compute reset\n");
|
||||
flags = hdev->reset_info.hard_reset_schedule_flags;
|
||||
hdev->reset_info.hard_reset_schedule_flags = 0;
|
||||
hdev->disabled = true;
|
||||
@ -1506,20 +1621,24 @@ kill_processes:
|
||||
|
||||
out_err:
|
||||
hdev->disabled = true;
|
||||
hdev->reset_info.is_in_soft_reset = false;
|
||||
|
||||
spin_lock(&hdev->reset_info.lock);
|
||||
hdev->reset_info.in_compute_reset = 0;
|
||||
|
||||
if (hard_reset) {
|
||||
dev_err(hdev->dev, "Failed to reset! Device is NOT usable\n");
|
||||
hdev->reset_info.hard_reset_cnt++;
|
||||
} else if (reset_upon_device_release) {
|
||||
spin_unlock(&hdev->reset_info.lock);
|
||||
dev_err(hdev->dev, "Failed to reset device after user release\n");
|
||||
flags |= HL_DRV_RESET_HARD;
|
||||
flags &= ~HL_DRV_RESET_DEV_RELEASE;
|
||||
hard_reset = true;
|
||||
goto again;
|
||||
} else {
|
||||
dev_err(hdev->dev, "Failed to do soft-reset\n");
|
||||
hdev->reset_info.soft_reset_cnt++;
|
||||
spin_unlock(&hdev->reset_info.lock);
|
||||
dev_err(hdev->dev, "Failed to do compute reset\n");
|
||||
hdev->reset_info.compute_reset_cnt++;
|
||||
flags |= HL_DRV_RESET_HARD;
|
||||
hard_reset = true;
|
||||
goto again;
|
||||
@ -1527,13 +1646,16 @@ out_err:
|
||||
|
||||
hdev->reset_info.in_reset = 0;
|
||||
|
||||
spin_unlock(&hdev->reset_info.lock);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64 event)
|
||||
static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64 event_mask)
|
||||
{
|
||||
mutex_lock(¬ifier_event->lock);
|
||||
notifier_event->events_mask |= event;
|
||||
notifier_event->events_mask |= event_mask;
|
||||
|
||||
if (notifier_event->eventfd)
|
||||
eventfd_signal(notifier_event->eventfd, 1);
|
||||
|
||||
@ -1544,17 +1666,17 @@ static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64
|
||||
* hl_notifier_event_send_all - notify all user processes via eventfd
|
||||
*
|
||||
* @hdev: pointer to habanalabs device structure
|
||||
* @event: the occurred event
|
||||
* @event_mask: the occurred event/s
|
||||
* Returns 0 for success or an error on failure.
|
||||
*/
|
||||
void hl_notifier_event_send_all(struct hl_device *hdev, u64 event)
|
||||
void hl_notifier_event_send_all(struct hl_device *hdev, u64 event_mask)
|
||||
{
|
||||
struct hl_fpriv *hpriv;
|
||||
|
||||
mutex_lock(&hdev->fpriv_list_lock);
|
||||
|
||||
list_for_each_entry(hpriv, &hdev->fpriv_list, dev_node)
|
||||
hl_notifier_event_send(&hpriv->notifier_event, event);
|
||||
hl_notifier_event_send(&hpriv->notifier_event, event_mask);
|
||||
|
||||
mutex_unlock(&hdev->fpriv_list_lock);
|
||||
|
||||
@ -1562,7 +1684,7 @@ void hl_notifier_event_send_all(struct hl_device *hdev, u64 event)
|
||||
mutex_lock(&hdev->fpriv_ctrl_list_lock);
|
||||
|
||||
list_for_each_entry(hpriv, &hdev->fpriv_ctrl_list, dev_node)
|
||||
hl_notifier_event_send(&hpriv->notifier_event, event);
|
||||
hl_notifier_event_send(&hpriv->notifier_event, event_mask);
|
||||
|
||||
mutex_unlock(&hdev->fpriv_ctrl_list_lock);
|
||||
}
|
||||
@ -1617,13 +1739,12 @@ int hl_device_init(struct hl_device *hdev, struct class *hclass)
|
||||
if (rc)
|
||||
goto free_dev_ctrl;
|
||||
|
||||
user_interrupt_cnt = hdev->asic_prop.user_interrupt_count;
|
||||
user_interrupt_cnt = hdev->asic_prop.user_dec_intr_count +
|
||||
hdev->asic_prop.user_interrupt_count;
|
||||
|
||||
if (user_interrupt_cnt) {
|
||||
hdev->user_interrupt = kcalloc(user_interrupt_cnt,
|
||||
sizeof(*hdev->user_interrupt),
|
||||
GFP_KERNEL);
|
||||
|
||||
hdev->user_interrupt = kcalloc(user_interrupt_cnt, sizeof(*hdev->user_interrupt),
|
||||
GFP_KERNEL);
|
||||
if (!hdev->user_interrupt) {
|
||||
rc = -ENOMEM;
|
||||
goto early_fini;
|
||||
@ -1636,7 +1757,7 @@ int hl_device_init(struct hl_device *hdev, struct class *hclass)
|
||||
*/
|
||||
rc = hdev->asic_funcs->sw_init(hdev);
|
||||
if (rc)
|
||||
goto user_interrupts_fini;
|
||||
goto free_usr_intr_mem;
|
||||
|
||||
|
||||
/* initialize completion structure for multi CS wait */
|
||||
@ -1684,6 +1805,13 @@ int hl_device_init(struct hl_device *hdev, struct class *hclass)
|
||||
hdev->completion_queue[i].cq_idx = i;
|
||||
}
|
||||
|
||||
hdev->shadow_cs_queue = kcalloc(hdev->asic_prop.max_pending_cs,
|
||||
sizeof(*hdev->shadow_cs_queue), GFP_KERNEL);
|
||||
if (!hdev->shadow_cs_queue) {
|
||||
rc = -ENOMEM;
|
||||
goto cq_fini;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize the event queue. Must be done before hw_init,
|
||||
* because there the address of the event queue is being
|
||||
@ -1692,7 +1820,7 @@ int hl_device_init(struct hl_device *hdev, struct class *hclass)
|
||||
rc = hl_eq_init(hdev, &hdev->event_queue);
|
||||
if (rc) {
|
||||
dev_err(hdev->dev, "failed to initialize event queue\n");
|
||||
goto cq_fini;
|
||||
goto free_shadow_cs_queue;
|
||||
}
|
||||
|
||||
/* MMU S/W must be initialized before kernel context is created */
|
||||
@ -1713,6 +1841,7 @@ int hl_device_init(struct hl_device *hdev, struct class *hclass)
|
||||
|
||||
hdev->asic_funcs->state_dump_init(hdev);
|
||||
|
||||
hdev->memory_scrub_val = MEM_SCRUB_DEFAULT_VAL;
|
||||
hl_debugfs_add_device(hdev);
|
||||
|
||||
/* debugfs nodes are created in hl_ctx_init so it must be called after
|
||||
@ -1731,6 +1860,12 @@ int hl_device_init(struct hl_device *hdev, struct class *hclass)
|
||||
goto release_ctx;
|
||||
}
|
||||
|
||||
rc = hl_dec_init(hdev);
|
||||
if (rc) {
|
||||
dev_err(hdev->dev, "Failed to initialize the decoder module\n");
|
||||
goto cb_pool_fini;
|
||||
}
|
||||
|
||||
/*
|
||||
* From this point, override rc (=0) in case of an error to allow
|
||||
* debugging (by adding char devices and create sysfs nodes as part of
|
||||
@ -1794,7 +1929,8 @@ int hl_device_init(struct hl_device *hdev, struct class *hclass)
|
||||
/* Need to call this again because the max power might change,
|
||||
* depending on card type for certain ASICs
|
||||
*/
|
||||
if (hdev->asic_prop.set_max_power_on_device_init)
|
||||
if (hdev->asic_prop.set_max_power_on_device_init &&
|
||||
!hdev->asic_prop.fw_security_enabled)
|
||||
hl_fw_set_max_power(hdev);
|
||||
|
||||
/*
|
||||
@ -1824,6 +1960,8 @@ int hl_device_init(struct hl_device *hdev, struct class *hclass)
|
||||
|
||||
return 0;
|
||||
|
||||
cb_pool_fini:
|
||||
hl_cb_pool_fini(hdev);
|
||||
release_ctx:
|
||||
if (hl_ctx_put(hdev->kernel_ctx) != 1)
|
||||
dev_err(hdev->dev,
|
||||
@ -1834,6 +1972,8 @@ mmu_fini:
|
||||
hl_mmu_fini(hdev);
|
||||
eq_fini:
|
||||
hl_eq_fini(hdev, &hdev->event_queue);
|
||||
free_shadow_cs_queue:
|
||||
kfree(hdev->shadow_cs_queue);
|
||||
cq_fini:
|
||||
for (i = 0 ; i < cq_ready_cnt ; i++)
|
||||
hl_cq_fini(hdev, &hdev->completion_queue[i]);
|
||||
@ -1842,7 +1982,7 @@ hw_queues_destroy:
|
||||
hl_hw_queues_destroy(hdev);
|
||||
sw_fini:
|
||||
hdev->asic_funcs->sw_fini(hdev);
|
||||
user_interrupts_fini:
|
||||
free_usr_intr_mem:
|
||||
kfree(hdev->user_interrupt);
|
||||
early_fini:
|
||||
device_early_fini(hdev);
|
||||
@ -1928,7 +2068,7 @@ void hl_device_fini(struct hl_device *hdev)
|
||||
* message won't be send. Also, in case of heartbeat, the device CPU is
|
||||
* marked as disable so this message won't be sent
|
||||
*/
|
||||
hl_fw_send_pci_access_msg(hdev, CPUCP_PACKET_DISABLE_PCI_ACCESS);
|
||||
hl_fw_send_pci_access_msg(hdev, CPUCP_PACKET_DISABLE_PCI_ACCESS, 0x0);
|
||||
|
||||
/* Mark device as disabled */
|
||||
hdev->disabled = true;
|
||||
@ -1974,12 +2114,16 @@ void hl_device_fini(struct hl_device *hdev)
|
||||
|
||||
hl_debugfs_remove_device(hdev);
|
||||
|
||||
hl_dec_fini(hdev);
|
||||
|
||||
hl_vm_fini(hdev);
|
||||
|
||||
hl_mmu_fini(hdev);
|
||||
|
||||
hl_eq_fini(hdev, &hdev->event_queue);
|
||||
|
||||
kfree(hdev->shadow_cs_queue);
|
||||
|
||||
for (i = 0 ; i < hdev->asic_prop.completion_queues_count ; i++)
|
||||
hl_cq_fini(hdev, &hdev->completion_queue[i]);
|
||||
kfree(hdev->completion_queue);
|
||||
|
@ -15,6 +15,14 @@
|
||||
|
||||
#define FW_FILE_MAX_SIZE 0x1400000 /* maximum size of 20MB */
|
||||
|
||||
struct fw_binning_conf {
|
||||
u64 tpc_binning;
|
||||
u32 dec_binning;
|
||||
u32 hbm_binning;
|
||||
u32 edma_binning;
|
||||
u32 mme_redundancy;
|
||||
};
|
||||
|
||||
static char *extract_fw_ver_from_str(const char *fw_str)
|
||||
{
|
||||
char *str, *fw_ver, *whitespace;
|
||||
@ -33,7 +41,7 @@ static char *extract_fw_ver_from_str(const char *fw_str)
|
||||
ver_offset = str - fw_str;
|
||||
|
||||
/* Copy until the next whitespace */
|
||||
whitespace = strnstr(str, " ", VERSION_MAX_LEN - ver_offset);
|
||||
whitespace = strnstr(str, " ", VERSION_MAX_LEN - ver_offset);
|
||||
if (!whitespace)
|
||||
goto free_fw_ver;
|
||||
|
||||
@ -46,6 +54,43 @@ free_fw_ver:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int extract_fw_sub_versions(struct hl_device *hdev, char *preboot_ver)
|
||||
{
|
||||
char major[8], minor[8], *first_dot, *second_dot;
|
||||
int rc;
|
||||
|
||||
first_dot = strnstr(preboot_ver, ".", 10);
|
||||
if (first_dot) {
|
||||
strscpy(major, preboot_ver, first_dot - preboot_ver + 1);
|
||||
rc = kstrtou32(major, 10, &hdev->fw_major_version);
|
||||
} else {
|
||||
rc = -EINVAL;
|
||||
}
|
||||
|
||||
if (rc) {
|
||||
dev_err(hdev->dev, "Error %d parsing preboot major version\n", rc);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* skip the first dot */
|
||||
first_dot++;
|
||||
|
||||
second_dot = strnstr(first_dot, ".", 10);
|
||||
if (second_dot) {
|
||||
strscpy(minor, first_dot, second_dot - first_dot + 1);
|
||||
rc = kstrtou32(minor, 10, &hdev->fw_minor_version);
|
||||
} else {
|
||||
rc = -EINVAL;
|
||||
}
|
||||
|
||||
if (rc)
|
||||
dev_err(hdev->dev, "Error %d parsing preboot minor version\n", rc);
|
||||
|
||||
out:
|
||||
kfree(preboot_ver);
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int hl_request_fw(struct hl_device *hdev,
|
||||
const struct firmware **firmware_p,
|
||||
const char *fw_name)
|
||||
@ -197,14 +242,14 @@ int hl_fw_load_fw_to_device(struct hl_device *hdev, const char *fw_name,
|
||||
return rc;
|
||||
}
|
||||
|
||||
int hl_fw_send_pci_access_msg(struct hl_device *hdev, u32 opcode)
|
||||
int hl_fw_send_pci_access_msg(struct hl_device *hdev, u32 opcode, u64 value)
|
||||
{
|
||||
struct cpucp_packet pkt = {};
|
||||
|
||||
pkt.ctl = cpu_to_le32(opcode << CPUCP_PKT_CTL_OPCODE_SHIFT);
|
||||
pkt.value = cpu_to_le64(value);
|
||||
|
||||
return hdev->asic_funcs->send_cpu_message(hdev, (u32 *) &pkt,
|
||||
sizeof(pkt), 0, NULL);
|
||||
return hdev->asic_funcs->send_cpu_message(hdev, (u32 *) &pkt, sizeof(pkt), 0, NULL);
|
||||
}
|
||||
|
||||
int hl_fw_send_cpu_message(struct hl_device *hdev, u32 hw_queue_id, u32 *msg,
|
||||
@ -218,8 +263,7 @@ int hl_fw_send_cpu_message(struct hl_device *hdev, u32 hw_queue_id, u32 *msg,
|
||||
u32 tmp, expected_ack_val, pi;
|
||||
int rc;
|
||||
|
||||
pkt = hdev->asic_funcs->cpu_accessible_dma_pool_alloc(hdev, len,
|
||||
&pkt_dma_addr);
|
||||
pkt = hl_cpu_accessible_dma_pool_alloc(hdev, len, &pkt_dma_addr);
|
||||
if (!pkt) {
|
||||
dev_err(hdev->dev,
|
||||
"Failed to allocate DMA memory for packet to CPU\n");
|
||||
@ -231,7 +275,7 @@ int hl_fw_send_cpu_message(struct hl_device *hdev, u32 hw_queue_id, u32 *msg,
|
||||
mutex_lock(&hdev->send_cpu_message_lock);
|
||||
|
||||
/* CPU-CP messages can be sent during soft-reset */
|
||||
if (hdev->disabled && !hdev->reset_info.is_in_soft_reset) {
|
||||
if (hdev->disabled && !hdev->reset_info.in_compute_reset) {
|
||||
rc = 0;
|
||||
goto out;
|
||||
}
|
||||
@ -267,7 +311,14 @@ int hl_fw_send_cpu_message(struct hl_device *hdev, u32 hw_queue_id, u32 *msg,
|
||||
hl_hw_queue_inc_ci_kernel(hdev, hw_queue_id);
|
||||
|
||||
if (rc == -ETIMEDOUT) {
|
||||
dev_err(hdev->dev, "Device CPU packet timeout (0x%x)\n", tmp);
|
||||
/* If FW performed reset just before sending it a packet, we will get a timeout.
|
||||
* This is expected behavior, hence no need for error message.
|
||||
*/
|
||||
if (!hl_device_operational(hdev, NULL) && !hdev->reset_info.in_compute_reset)
|
||||
dev_dbg(hdev->dev, "Device CPU packet timeout (0x%x) due to FW reset\n",
|
||||
tmp);
|
||||
else
|
||||
dev_err(hdev->dev, "Device CPU packet timeout (0x%x)\n", tmp);
|
||||
hdev->device_cpu_disabled = true;
|
||||
goto out;
|
||||
}
|
||||
@ -276,11 +327,15 @@ int hl_fw_send_cpu_message(struct hl_device *hdev, u32 hw_queue_id, u32 *msg,
|
||||
|
||||
rc = (tmp & CPUCP_PKT_CTL_RC_MASK) >> CPUCP_PKT_CTL_RC_SHIFT;
|
||||
if (rc) {
|
||||
dev_err(hdev->dev, "F/W ERROR %d for CPU packet %d\n",
|
||||
rc,
|
||||
(tmp & CPUCP_PKT_CTL_OPCODE_MASK)
|
||||
>> CPUCP_PKT_CTL_OPCODE_SHIFT);
|
||||
dev_dbg(hdev->dev, "F/W ERROR %d for CPU packet %d\n",
|
||||
rc, (tmp & CPUCP_PKT_CTL_OPCODE_MASK) >> CPUCP_PKT_CTL_OPCODE_SHIFT);
|
||||
|
||||
/* propagate the return code from the f/w to the callers who want to check it */
|
||||
if (result)
|
||||
*result = rc;
|
||||
|
||||
rc = -EIO;
|
||||
|
||||
} else if (result) {
|
||||
*result = le64_to_cpu(pkt->result);
|
||||
}
|
||||
@ -296,7 +351,7 @@ int hl_fw_send_cpu_message(struct hl_device *hdev, u32 hw_queue_id, u32 *msg,
|
||||
out:
|
||||
mutex_unlock(&hdev->send_cpu_message_lock);
|
||||
|
||||
hdev->asic_funcs->cpu_accessible_dma_pool_free(hdev, len, pkt);
|
||||
hl_cpu_accessible_dma_pool_free(hdev, len, pkt);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -517,6 +572,11 @@ static bool fw_report_boot_dev0(struct hl_device *hdev, u32 err_val,
|
||||
err_val &= ~CPU_BOOT_ERR0_DEVICE_UNUSABLE_FAIL;
|
||||
}
|
||||
|
||||
if (err_val & CPU_BOOT_ERR0_BINNING_FAIL) {
|
||||
dev_err(hdev->dev, "Device boot error - binning failure\n");
|
||||
err_exists = true;
|
||||
}
|
||||
|
||||
if (sts_val & CPU_BOOT_DEV_STS0_ENABLED)
|
||||
dev_dbg(hdev->dev, "Device status0 %#x\n", sts_val);
|
||||
|
||||
@ -637,10 +697,8 @@ int hl_fw_cpucp_info_get(struct hl_device *hdev,
|
||||
u64 result;
|
||||
int rc;
|
||||
|
||||
cpucp_info_cpu_addr =
|
||||
hdev->asic_funcs->cpu_accessible_dma_pool_alloc(hdev,
|
||||
sizeof(struct cpucp_info),
|
||||
&cpucp_info_dma_addr);
|
||||
cpucp_info_cpu_addr = hl_cpu_accessible_dma_pool_alloc(hdev, sizeof(struct cpucp_info),
|
||||
&cpucp_info_dma_addr);
|
||||
if (!cpucp_info_cpu_addr) {
|
||||
dev_err(hdev->dev,
|
||||
"Failed to allocate DMA memory for CPU-CP info packet\n");
|
||||
@ -701,8 +759,7 @@ int hl_fw_cpucp_info_get(struct hl_device *hdev,
|
||||
prop->fw_app_cpu_boot_dev_sts1 = RREG32(sts_boot_dev_sts1_reg);
|
||||
|
||||
out:
|
||||
hdev->asic_funcs->cpu_accessible_dma_pool_free(hdev,
|
||||
sizeof(struct cpucp_info), cpucp_info_cpu_addr);
|
||||
hl_cpu_accessible_dma_pool_free(hdev, sizeof(struct cpucp_info), cpucp_info_cpu_addr);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -785,9 +842,8 @@ int hl_fw_get_eeprom_data(struct hl_device *hdev, void *data, size_t max_size)
|
||||
u64 result;
|
||||
int rc;
|
||||
|
||||
eeprom_info_cpu_addr =
|
||||
hdev->asic_funcs->cpu_accessible_dma_pool_alloc(hdev,
|
||||
max_size, &eeprom_info_dma_addr);
|
||||
eeprom_info_cpu_addr = hl_cpu_accessible_dma_pool_alloc(hdev, max_size,
|
||||
&eeprom_info_dma_addr);
|
||||
if (!eeprom_info_cpu_addr) {
|
||||
dev_err(hdev->dev,
|
||||
"Failed to allocate DMA memory for CPU-CP EEPROM packet\n");
|
||||
@ -815,8 +871,7 @@ int hl_fw_get_eeprom_data(struct hl_device *hdev, void *data, size_t max_size)
|
||||
memcpy(data, eeprom_info_cpu_addr, min((size_t)result, max_size));
|
||||
|
||||
out:
|
||||
hdev->asic_funcs->cpu_accessible_dma_pool_free(hdev, max_size,
|
||||
eeprom_info_cpu_addr);
|
||||
hl_cpu_accessible_dma_pool_free(hdev, max_size, eeprom_info_cpu_addr);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -833,8 +888,7 @@ int hl_fw_get_monitor_dump(struct hl_device *hdev, void *data)
|
||||
int i, rc;
|
||||
|
||||
data_size = sizeof(struct cpucp_monitor_dump);
|
||||
mon_dump_cpu_addr = hdev->asic_funcs->cpu_accessible_dma_pool_alloc(hdev, data_size,
|
||||
&mon_dump_dma_addr);
|
||||
mon_dump_cpu_addr = hl_cpu_accessible_dma_pool_alloc(hdev, data_size, &mon_dump_dma_addr);
|
||||
if (!mon_dump_cpu_addr) {
|
||||
dev_err(hdev->dev,
|
||||
"Failed to allocate DMA memory for CPU-CP monitor-dump packet\n");
|
||||
@ -864,7 +918,7 @@ int hl_fw_get_monitor_dump(struct hl_device *hdev, void *data)
|
||||
}
|
||||
|
||||
out:
|
||||
hdev->asic_funcs->cpu_accessible_dma_pool_free(hdev, data_size, mon_dump_cpu_addr);
|
||||
hl_cpu_accessible_dma_pool_free(hdev, data_size, mon_dump_cpu_addr);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -1057,10 +1111,9 @@ int hl_fw_dram_replaced_row_get(struct hl_device *hdev,
|
||||
u64 result;
|
||||
int rc;
|
||||
|
||||
cpucp_repl_rows_info_cpu_addr =
|
||||
hdev->asic_funcs->cpu_accessible_dma_pool_alloc(hdev,
|
||||
sizeof(struct cpucp_hbm_row_info),
|
||||
&cpucp_repl_rows_info_dma_addr);
|
||||
cpucp_repl_rows_info_cpu_addr = hl_cpu_accessible_dma_pool_alloc(hdev,
|
||||
sizeof(struct cpucp_hbm_row_info),
|
||||
&cpucp_repl_rows_info_dma_addr);
|
||||
if (!cpucp_repl_rows_info_cpu_addr) {
|
||||
dev_err(hdev->dev,
|
||||
"Failed to allocate DMA memory for CPU-CP replaced rows info packet\n");
|
||||
@ -1085,9 +1138,8 @@ int hl_fw_dram_replaced_row_get(struct hl_device *hdev,
|
||||
memcpy(info, cpucp_repl_rows_info_cpu_addr, sizeof(*info));
|
||||
|
||||
out:
|
||||
hdev->asic_funcs->cpu_accessible_dma_pool_free(hdev,
|
||||
sizeof(struct cpucp_hbm_row_info),
|
||||
cpucp_repl_rows_info_cpu_addr);
|
||||
hl_cpu_accessible_dma_pool_free(hdev, sizeof(struct cpucp_hbm_row_info),
|
||||
cpucp_repl_rows_info_cpu_addr);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -1234,15 +1286,10 @@ static void detect_cpu_boot_status(struct hl_device *hdev, u32 status)
|
||||
}
|
||||
}
|
||||
|
||||
static int hl_fw_read_preboot_caps(struct hl_device *hdev,
|
||||
u32 cpu_boot_status_reg,
|
||||
u32 sts_boot_dev_sts0_reg,
|
||||
u32 sts_boot_dev_sts1_reg,
|
||||
u32 boot_err0_reg, u32 boot_err1_reg,
|
||||
u32 timeout)
|
||||
static int hl_fw_wait_preboot_ready(struct hl_device *hdev)
|
||||
{
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
u32 status, reg_val;
|
||||
struct pre_fw_load_props *pre_fw_load = &hdev->fw_loader.pre_fw_load;
|
||||
u32 status;
|
||||
int rc;
|
||||
|
||||
/* Need to check two possible scenarios:
|
||||
@ -1255,13 +1302,13 @@ static int hl_fw_read_preboot_caps(struct hl_device *hdev,
|
||||
*/
|
||||
rc = hl_poll_timeout(
|
||||
hdev,
|
||||
cpu_boot_status_reg,
|
||||
pre_fw_load->cpu_boot_status_reg,
|
||||
status,
|
||||
(status == CPU_BOOT_STATUS_NIC_FW_RDY) ||
|
||||
(status == CPU_BOOT_STATUS_READY_TO_BOOT) ||
|
||||
(status == CPU_BOOT_STATUS_WAITING_FOR_BOOT_FIT),
|
||||
hdev->fw_poll_interval_usec,
|
||||
timeout);
|
||||
pre_fw_load->wait_for_preboot_timeout);
|
||||
|
||||
if (rc) {
|
||||
dev_err(hdev->dev, "CPU boot ready status timeout\n");
|
||||
@ -1271,12 +1318,32 @@ static int hl_fw_read_preboot_caps(struct hl_device *hdev,
|
||||
* of reading specific errors
|
||||
*/
|
||||
if (status != -1)
|
||||
fw_read_errors(hdev, boot_err0_reg, boot_err1_reg,
|
||||
sts_boot_dev_sts0_reg,
|
||||
sts_boot_dev_sts1_reg);
|
||||
fw_read_errors(hdev, pre_fw_load->boot_err0_reg,
|
||||
pre_fw_load->boot_err1_reg,
|
||||
pre_fw_load->sts_boot_dev_sts0_reg,
|
||||
pre_fw_load->sts_boot_dev_sts1_reg);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
hdev->fw_loader.fw_comp_loaded |= FW_TYPE_PREBOOT_CPU;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int hl_fw_read_preboot_caps(struct hl_device *hdev)
|
||||
{
|
||||
struct pre_fw_load_props *pre_fw_load;
|
||||
struct asic_fixed_properties *prop;
|
||||
u32 reg_val;
|
||||
int rc;
|
||||
|
||||
prop = &hdev->asic_prop;
|
||||
pre_fw_load = &hdev->fw_loader.pre_fw_load;
|
||||
|
||||
rc = hl_fw_wait_preboot_ready(hdev);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
/*
|
||||
* the registers DEV_STS* contain FW capabilities/features.
|
||||
* We can rely on this registers only if bit CPU_BOOT_DEV_STS*_ENABLED
|
||||
@ -1287,13 +1354,13 @@ static int hl_fw_read_preboot_caps(struct hl_device *hdev,
|
||||
* In case it is not enabled the stored value will be left 0- all
|
||||
* caps/features are off
|
||||
*/
|
||||
reg_val = RREG32(sts_boot_dev_sts0_reg);
|
||||
reg_val = RREG32(pre_fw_load->sts_boot_dev_sts0_reg);
|
||||
if (reg_val & CPU_BOOT_DEV_STS0_ENABLED) {
|
||||
prop->fw_cpu_boot_dev_sts0_valid = true;
|
||||
prop->fw_preboot_cpu_boot_dev_sts0 = reg_val;
|
||||
}
|
||||
|
||||
reg_val = RREG32(sts_boot_dev_sts1_reg);
|
||||
reg_val = RREG32(pre_fw_load->sts_boot_dev_sts1_reg);
|
||||
if (reg_val & CPU_BOOT_DEV_STS1_ENABLED) {
|
||||
prop->fw_cpu_boot_dev_sts1_valid = true;
|
||||
prop->fw_preboot_cpu_boot_dev_sts1 = reg_val;
|
||||
@ -1436,24 +1503,21 @@ static int hl_fw_static_read_preboot_status(struct hl_device *hdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hl_fw_read_preboot_status(struct hl_device *hdev, u32 cpu_boot_status_reg,
|
||||
u32 sts_boot_dev_sts0_reg,
|
||||
u32 sts_boot_dev_sts1_reg, u32 boot_err0_reg,
|
||||
u32 boot_err1_reg, u32 timeout)
|
||||
int hl_fw_read_preboot_status(struct hl_device *hdev)
|
||||
{
|
||||
int rc;
|
||||
|
||||
if (!(hdev->fw_components & FW_TYPE_PREBOOT_CPU))
|
||||
return 0;
|
||||
|
||||
/* get FW pre-load parameters */
|
||||
hdev->asic_funcs->init_firmware_preload_params(hdev);
|
||||
|
||||
/*
|
||||
* In order to determine boot method (static VS dymanic) we need to
|
||||
* read the boot caps register
|
||||
*/
|
||||
rc = hl_fw_read_preboot_caps(hdev, cpu_boot_status_reg,
|
||||
sts_boot_dev_sts0_reg,
|
||||
sts_boot_dev_sts1_reg, boot_err0_reg,
|
||||
boot_err1_reg, timeout);
|
||||
rc = hl_fw_read_preboot_caps(hdev);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
@ -1989,18 +2053,14 @@ static int hl_fw_dynamic_read_device_fw_version(struct hl_device *hdev,
|
||||
|
||||
preboot_ver = extract_fw_ver_from_str(prop->preboot_ver);
|
||||
if (preboot_ver) {
|
||||
char major[8];
|
||||
int rc;
|
||||
|
||||
dev_info(hdev->dev, "preboot version %s\n", preboot_ver);
|
||||
sprintf(major, "%.2s", preboot_ver);
|
||||
kfree(preboot_ver);
|
||||
|
||||
rc = kstrtou32(major, 10, &hdev->fw_major_version);
|
||||
if (rc) {
|
||||
dev_err(hdev->dev, "Error %d parsing preboot major version\n", rc);
|
||||
/* This function takes care of freeing preboot_ver */
|
||||
rc = extract_fw_sub_versions(hdev, preboot_ver);
|
||||
if (rc)
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
@ -2361,6 +2421,19 @@ static int hl_fw_dynamic_send_msg(struct hl_device *hdev,
|
||||
case HL_COMMS_RESET_CAUSE_TYPE:
|
||||
msg.reset_cause = *(__u8 *) data;
|
||||
break;
|
||||
|
||||
case HL_COMMS_BINNING_CONF_TYPE:
|
||||
{
|
||||
struct fw_binning_conf *binning_conf = (struct fw_binning_conf *) data;
|
||||
|
||||
msg.tpc_binning_conf = cpu_to_le64(binning_conf->tpc_binning);
|
||||
msg.dec_binning_conf = cpu_to_le32(binning_conf->dec_binning);
|
||||
msg.hbm_binning_conf = cpu_to_le32(binning_conf->hbm_binning);
|
||||
msg.edma_binning_conf = cpu_to_le32(binning_conf->edma_binning);
|
||||
msg.mme_redundancy_conf = cpu_to_le32(binning_conf->mme_redundancy);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
dev_err(hdev->dev,
|
||||
"Send COMMS message - invalid message type %u\n",
|
||||
@ -2418,7 +2491,8 @@ static int hl_fw_dynamic_init_cpu(struct hl_device *hdev,
|
||||
int rc;
|
||||
|
||||
dev_info(hdev->dev,
|
||||
"Loading firmware to device, may take some time...\n");
|
||||
"Loading %sfirmware to device, may take some time...\n",
|
||||
hdev->asic_prop.fw_security_enabled ? "secured " : "");
|
||||
|
||||
/* initialize FW descriptor as invalid */
|
||||
fw_loader->dynamic_loader.fw_desc_valid = false;
|
||||
@ -2429,6 +2503,13 @@ static int hl_fw_dynamic_init_cpu(struct hl_device *hdev,
|
||||
*/
|
||||
dyn_regs = &fw_loader->dynamic_loader.comm_desc.cpu_dyn_regs;
|
||||
|
||||
/* if no preboot loaded indication- wait for preboot */
|
||||
if (!(hdev->fw_loader.fw_comp_loaded & FW_TYPE_PREBOOT_CPU)) {
|
||||
rc = hl_fw_wait_preboot_ready(hdev);
|
||||
if (rc)
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
rc = hl_fw_dynamic_send_protocol_cmd(hdev, fw_loader, COMMS_RST_STATE,
|
||||
0, true,
|
||||
fw_loader->cpu_timeout);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -54,10 +54,15 @@ MODULE_PARM_DESC(boot_error_status_mask,
|
||||
#define PCI_IDS_GAUDI 0x1000
|
||||
#define PCI_IDS_GAUDI_SEC 0x1010
|
||||
|
||||
#define PCI_IDS_GAUDI2 0x1020
|
||||
#define PCI_IDS_GAUDI2_SEC 0x1030
|
||||
|
||||
static const struct pci_device_id ids[] = {
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_HABANALABS, PCI_IDS_GOYA), },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_HABANALABS, PCI_IDS_GAUDI), },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_HABANALABS, PCI_IDS_GAUDI_SEC), },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_HABANALABS, PCI_IDS_GAUDI2), },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_HABANALABS, PCI_IDS_GAUDI2_SEC), },
|
||||
{ 0, }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, ids);
|
||||
@ -84,6 +89,12 @@ static enum hl_asic_type get_asic_type(u16 device)
|
||||
case PCI_IDS_GAUDI_SEC:
|
||||
asic_type = ASIC_GAUDI_SEC;
|
||||
break;
|
||||
case PCI_IDS_GAUDI2:
|
||||
asic_type = ASIC_GAUDI2;
|
||||
break;
|
||||
case PCI_IDS_GAUDI2_SEC:
|
||||
asic_type = ASIC_GAUDI2_SEC;
|
||||
break;
|
||||
default:
|
||||
asic_type = ASIC_INVALID;
|
||||
break;
|
||||
@ -96,6 +107,7 @@ static bool is_asic_secured(enum hl_asic_type asic_type)
|
||||
{
|
||||
switch (asic_type) {
|
||||
case ASIC_GAUDI_SEC:
|
||||
case ASIC_GAUDI2_SEC:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
@ -137,6 +149,7 @@ int hl_device_open(struct inode *inode, struct file *filp)
|
||||
|
||||
mutex_init(&hpriv->notifier_event.lock);
|
||||
mutex_init(&hpriv->restore_phase_mutex);
|
||||
mutex_init(&hpriv->ctx_lock);
|
||||
kref_init(&hpriv->refcount);
|
||||
nonseekable_open(inode, filp);
|
||||
|
||||
@ -152,7 +165,8 @@ int hl_device_open(struct inode *inode, struct file *filp)
|
||||
"Can't open %s because it is %s\n",
|
||||
dev_name(hdev->dev), hdev->status[status]);
|
||||
|
||||
if (status == HL_DEVICE_STATUS_IN_RESET)
|
||||
if (status == HL_DEVICE_STATUS_IN_RESET ||
|
||||
status == HL_DEVICE_STATUS_IN_RESET_AFTER_DEVICE_RELEASE)
|
||||
rc = -EAGAIN;
|
||||
else
|
||||
rc = -EPERM;
|
||||
@ -195,8 +209,9 @@ int hl_device_open(struct inode *inode, struct file *filp)
|
||||
|
||||
hl_debugfs_add_file(hpriv);
|
||||
|
||||
atomic_set(&hdev->last_error.cs_timeout.write_disable, 0);
|
||||
atomic_set(&hdev->last_error.razwi.write_disable, 0);
|
||||
atomic_set(&hdev->last_error.cs_timeout.write_enable, 1);
|
||||
atomic_set(&hdev->last_error.razwi.write_enable, 1);
|
||||
hdev->last_error.undef_opcode.write_enable = true;
|
||||
|
||||
hdev->open_counter++;
|
||||
hdev->last_successful_open_jif = jiffies;
|
||||
@ -209,6 +224,7 @@ out_err:
|
||||
hl_mem_mgr_fini(&hpriv->mem_mgr);
|
||||
hl_ctx_mgr_fini(hpriv->hdev, &hpriv->ctx_mgr);
|
||||
filp->private_data = NULL;
|
||||
mutex_destroy(&hpriv->ctx_lock);
|
||||
mutex_destroy(&hpriv->restore_phase_mutex);
|
||||
mutex_destroy(&hpriv->notifier_event.lock);
|
||||
put_pid(hpriv->taskpid);
|
||||
@ -277,43 +293,56 @@ out_err:
|
||||
|
||||
static void set_driver_behavior_per_device(struct hl_device *hdev)
|
||||
{
|
||||
hdev->pldm = 0;
|
||||
hdev->nic_ports_mask = 0;
|
||||
hdev->fw_components = FW_TYPE_ALL_TYPES;
|
||||
hdev->mmu_enable = MMU_EN_ALL;
|
||||
hdev->cpu_queues_enable = 1;
|
||||
hdev->heartbeat = 1;
|
||||
hdev->mmu_enable = 1;
|
||||
hdev->sram_scrambler_enable = 1;
|
||||
hdev->dram_scrambler_enable = 1;
|
||||
hdev->bmc_enable = 1;
|
||||
hdev->pldm = 0;
|
||||
hdev->hard_reset_on_fw_events = 1;
|
||||
hdev->bmc_enable = 1;
|
||||
hdev->reset_on_preboot_fail = 1;
|
||||
hdev->reset_if_device_not_idle = 1;
|
||||
|
||||
hdev->reset_pcilink = 0;
|
||||
hdev->axi_drain = 0;
|
||||
hdev->heartbeat = 1;
|
||||
}
|
||||
|
||||
static void copy_kernel_module_params_to_device(struct hl_device *hdev)
|
||||
{
|
||||
hdev->asic_prop.fw_security_enabled = is_asic_secured(hdev->asic_type);
|
||||
|
||||
hdev->major = hl_major;
|
||||
hdev->memory_scrub = memory_scrub;
|
||||
hdev->reset_on_lockup = reset_on_lockup;
|
||||
hdev->boot_error_status_mask = boot_error_status_mask;
|
||||
}
|
||||
|
||||
if (timeout_locked)
|
||||
hdev->timeout_jiffies = msecs_to_jiffies(timeout_locked * 1000);
|
||||
else
|
||||
hdev->timeout_jiffies = MAX_SCHEDULE_TIMEOUT;
|
||||
static void fixup_device_params_per_asic(struct hl_device *hdev)
|
||||
{
|
||||
switch (hdev->asic_type) {
|
||||
case ASIC_GOYA:
|
||||
case ASIC_GAUDI:
|
||||
case ASIC_GAUDI_SEC:
|
||||
hdev->reset_upon_device_release = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
hdev->reset_upon_device_release = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static int fixup_device_params(struct hl_device *hdev)
|
||||
{
|
||||
hdev->asic_prop.fw_security_enabled = is_asic_secured(hdev->asic_type);
|
||||
int tmp_timeout;
|
||||
|
||||
tmp_timeout = timeout_locked;
|
||||
|
||||
hdev->fw_poll_interval_usec = HL_FW_STATUS_POLL_INTERVAL_USEC;
|
||||
hdev->fw_comms_poll_interval_usec = HL_FW_STATUS_POLL_INTERVAL_USEC;
|
||||
|
||||
if (tmp_timeout)
|
||||
hdev->timeout_jiffies = msecs_to_jiffies(tmp_timeout * 1000);
|
||||
else
|
||||
hdev->timeout_jiffies = MAX_SCHEDULE_TIMEOUT;
|
||||
|
||||
hdev->stop_on_err = true;
|
||||
hdev->reset_info.curr_reset_cause = HL_RESET_CAUSE_UNKNOWN;
|
||||
hdev->reset_info.prev_reset_trigger = HL_RESET_TRIGGER_DEFAULT;
|
||||
@ -321,6 +350,18 @@ static int fixup_device_params(struct hl_device *hdev)
|
||||
/* Enable only after the initialization of the device */
|
||||
hdev->disabled = true;
|
||||
|
||||
if (!(hdev->fw_components & FW_TYPE_PREBOOT_CPU) &&
|
||||
(hdev->fw_components & ~FW_TYPE_PREBOOT_CPU)) {
|
||||
pr_err("Preboot must be set along with other components");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* If CPU queues not enabled, no way to do heartbeat */
|
||||
if (!hdev->cpu_queues_enable)
|
||||
hdev->heartbeat = 0;
|
||||
|
||||
fixup_device_params_per_asic(hdev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -345,7 +386,7 @@ static int create_hdev(struct hl_device **dev, struct pci_dev *pdev)
|
||||
if (!hdev)
|
||||
return -ENOMEM;
|
||||
|
||||
/* can be NULL in case of simulator device */
|
||||
/* Will be NULL in case of simulator device */
|
||||
hdev->pdev = pdev;
|
||||
|
||||
/* Assign status description string */
|
||||
@ -355,6 +396,9 @@ static int create_hdev(struct hl_device **dev, struct pci_dev *pdev)
|
||||
strncpy(hdev->status[HL_DEVICE_STATUS_NEEDS_RESET], "needs reset", HL_STR_MAX);
|
||||
strncpy(hdev->status[HL_DEVICE_STATUS_IN_DEVICE_CREATION],
|
||||
"in device creation", HL_STR_MAX);
|
||||
strncpy(hdev->status[HL_DEVICE_STATUS_IN_RESET_AFTER_DEVICE_RELEASE],
|
||||
"in reset after device release", HL_STR_MAX);
|
||||
|
||||
|
||||
/* First, we must find out which ASIC are we handling. This is needed
|
||||
* to configure the behavior of the driver (kernel parameters)
|
||||
|
@ -47,7 +47,7 @@ static int hw_ip_info(struct hl_device *hdev, struct hl_info_args *args)
|
||||
u32 size = args->return_size;
|
||||
void __user *out = (void __user *) (uintptr_t) args->return_pointer;
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
u64 sram_kmd_size, dram_kmd_size;
|
||||
u64 sram_kmd_size, dram_kmd_size, dram_available_size;
|
||||
|
||||
if ((!size) || (!out))
|
||||
return -EINVAL;
|
||||
@ -62,19 +62,22 @@ static int hw_ip_info(struct hl_device *hdev, struct hl_info_args *args)
|
||||
hw_ip.dram_base_address =
|
||||
hdev->mmu_enable && prop->dram_supports_virtual_memory ?
|
||||
prop->dmmu.start_addr : prop->dram_user_base_address;
|
||||
hw_ip.tpc_enabled_mask = prop->tpc_enabled_mask;
|
||||
hw_ip.tpc_enabled_mask = prop->tpc_enabled_mask & 0xFF;
|
||||
hw_ip.tpc_enabled_mask_ext = prop->tpc_enabled_mask;
|
||||
|
||||
hw_ip.sram_size = prop->sram_size - sram_kmd_size;
|
||||
|
||||
if (hdev->mmu_enable)
|
||||
hw_ip.dram_size =
|
||||
DIV_ROUND_DOWN_ULL(prop->dram_size - dram_kmd_size,
|
||||
prop->dram_page_size) *
|
||||
prop->dram_page_size;
|
||||
dram_available_size = prop->dram_size - dram_kmd_size;
|
||||
|
||||
if (hdev->mmu_enable == MMU_EN_ALL)
|
||||
hw_ip.dram_size = DIV_ROUND_DOWN_ULL(dram_available_size,
|
||||
prop->dram_page_size) * prop->dram_page_size;
|
||||
else
|
||||
hw_ip.dram_size = prop->dram_size - dram_kmd_size;
|
||||
hw_ip.dram_size = dram_available_size;
|
||||
|
||||
if (hw_ip.dram_size > PAGE_SIZE)
|
||||
hw_ip.dram_enabled = 1;
|
||||
|
||||
hw_ip.dram_page_size = prop->dram_page_size;
|
||||
hw_ip.device_mem_alloc_default_page_size = prop->device_mem_alloc_default_page_size;
|
||||
hw_ip.num_of_events = prop->num_of_events;
|
||||
@ -93,8 +96,12 @@ static int hw_ip_info(struct hl_device *hdev, struct hl_info_args *args)
|
||||
hw_ip.psoc_pci_pll_od = prop->psoc_pci_pll_od;
|
||||
hw_ip.psoc_pci_pll_div_factor = prop->psoc_pci_pll_div_factor;
|
||||
|
||||
hw_ip.first_available_interrupt_id = prop->first_available_user_msix_interrupt;
|
||||
hw_ip.decoder_enabled_mask = prop->decoder_enabled_mask;
|
||||
hw_ip.mme_master_slave_mode = prop->mme_master_slave_mode;
|
||||
hw_ip.first_available_interrupt_id = prop->first_available_user_interrupt;
|
||||
hw_ip.number_of_user_interrupts = prop->user_interrupt_count;
|
||||
|
||||
hw_ip.edma_enabled_mask = prop->edma_enabled_mask;
|
||||
hw_ip.server_type = prop->server_type;
|
||||
|
||||
return copy_to_user(out, &hw_ip,
|
||||
@ -287,7 +294,7 @@ static int get_reset_count(struct hl_device *hdev, struct hl_info_args *args)
|
||||
return -EINVAL;
|
||||
|
||||
reset_count.hard_reset_cnt = hdev->reset_info.hard_reset_cnt;
|
||||
reset_count.soft_reset_cnt = hdev->reset_info.soft_reset_cnt;
|
||||
reset_count.soft_reset_cnt = hdev->reset_info.compute_reset_cnt;
|
||||
|
||||
return copy_to_user(out, &reset_count,
|
||||
min((size_t) max_size, sizeof(reset_count))) ? -EFAULT : 0;
|
||||
@ -610,6 +617,28 @@ static int razwi_info(struct hl_fpriv *hpriv, struct hl_info_args *args)
|
||||
return copy_to_user(out, &info, min_t(size_t, max_size, sizeof(info))) ? -EFAULT : 0;
|
||||
}
|
||||
|
||||
static int undefined_opcode_info(struct hl_fpriv *hpriv, struct hl_info_args *args)
|
||||
{
|
||||
struct hl_device *hdev = hpriv->hdev;
|
||||
u32 max_size = args->return_size;
|
||||
struct hl_info_undefined_opcode_event info = {0};
|
||||
void __user *out = (void __user *) (uintptr_t) args->return_pointer;
|
||||
|
||||
if ((!max_size) || (!out))
|
||||
return -EINVAL;
|
||||
|
||||
info.timestamp = ktime_to_ns(hdev->last_error.undef_opcode.timestamp);
|
||||
info.engine_id = hdev->last_error.undef_opcode.engine_id;
|
||||
info.cq_addr = hdev->last_error.undef_opcode.cq_addr;
|
||||
info.cq_size = hdev->last_error.undef_opcode.cq_size;
|
||||
info.stream_id = hdev->last_error.undef_opcode.stream_id;
|
||||
info.cb_addr_streams_len = hdev->last_error.undef_opcode.cb_addr_streams_len;
|
||||
memcpy(info.cb_addr_streams, hdev->last_error.undef_opcode.cb_addr_streams,
|
||||
sizeof(info.cb_addr_streams));
|
||||
|
||||
return copy_to_user(out, &info, min_t(size_t, max_size, sizeof(info))) ? -EFAULT : 0;
|
||||
}
|
||||
|
||||
static int dev_mem_alloc_page_sizes_info(struct hl_fpriv *hpriv, struct hl_info_args *args)
|
||||
{
|
||||
void __user *out = (void __user *) (uintptr_t) args->return_pointer;
|
||||
@ -626,7 +655,7 @@ static int dev_mem_alloc_page_sizes_info(struct hl_fpriv *hpriv, struct hl_info_
|
||||
* For this reason for all ASICs that not support multiple page size the function will
|
||||
* return an empty bitmask indicating that multiple page sizes is not supported.
|
||||
*/
|
||||
hdev->asic_funcs->get_valid_dram_page_orders(&info);
|
||||
info.page_order_bitmask = hdev->asic_prop.dmmu.supported_pages_mask;
|
||||
|
||||
return copy_to_user(out, &info, min_t(size_t, max_size, sizeof(info))) ? -EFAULT : 0;
|
||||
}
|
||||
@ -718,6 +747,9 @@ static int _hl_info_ioctl(struct hl_fpriv *hpriv, void *data,
|
||||
case HL_INFO_RAZWI_EVENT:
|
||||
return razwi_info(hpriv, args);
|
||||
|
||||
case HL_INFO_UNDEFINED_OPCODE_EVENT:
|
||||
return undefined_opcode_info(hpriv, args);
|
||||
|
||||
case HL_INFO_DEV_MEM_ALLOC_PAGE_SIZES:
|
||||
return dev_mem_alloc_page_sizes_info(hpriv, args);
|
||||
|
||||
|
@ -308,6 +308,7 @@ static void ext_queue_schedule_job(struct hl_cs_job *job)
|
||||
cq_addr = cq->bus_address + cq->pi * sizeof(struct hl_cq_entry);
|
||||
|
||||
hdev->asic_funcs->add_end_of_cb_packets(hdev, cb->kernel_address, len,
|
||||
job->user_cb_size,
|
||||
cq_addr,
|
||||
le32_to_cpu(cq_pkt.data),
|
||||
q->msi_vec,
|
||||
@ -695,6 +696,16 @@ int hl_hw_queue_schedule_cs(struct hl_cs *cs)
|
||||
goto unroll_cq_resv;
|
||||
}
|
||||
|
||||
rc = hdev->asic_funcs->pre_schedule_cs(cs);
|
||||
if (rc) {
|
||||
dev_err(hdev->dev,
|
||||
"Failed in pre-submission operations of CS %d.%llu\n",
|
||||
ctx->asid, cs->sequence);
|
||||
goto unroll_cq_resv;
|
||||
}
|
||||
|
||||
hdev->shadow_cs_queue[cs->sequence &
|
||||
(hdev->asic_prop.max_pending_cs - 1)] = cs;
|
||||
|
||||
if (cs->encaps_signals && cs->staged_first) {
|
||||
rc = encaps_sig_first_staged_cs_handler(hdev, cs);
|
||||
@ -806,13 +817,9 @@ static int ext_and_cpu_queue_init(struct hl_device *hdev, struct hl_hw_queue *q,
|
||||
int rc;
|
||||
|
||||
if (is_cpu_queue)
|
||||
p = hdev->asic_funcs->cpu_accessible_dma_pool_alloc(hdev,
|
||||
HL_QUEUE_SIZE_IN_BYTES,
|
||||
&q->bus_address);
|
||||
p = hl_cpu_accessible_dma_pool_alloc(hdev, HL_QUEUE_SIZE_IN_BYTES, &q->bus_address);
|
||||
else
|
||||
p = hdev->asic_funcs->asic_dma_alloc_coherent(hdev,
|
||||
HL_QUEUE_SIZE_IN_BYTES,
|
||||
&q->bus_address,
|
||||
p = hl_asic_dma_alloc_coherent(hdev, HL_QUEUE_SIZE_IN_BYTES, &q->bus_address,
|
||||
GFP_KERNEL | __GFP_ZERO);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
@ -838,14 +845,10 @@ static int ext_and_cpu_queue_init(struct hl_device *hdev, struct hl_hw_queue *q,
|
||||
|
||||
free_queue:
|
||||
if (is_cpu_queue)
|
||||
hdev->asic_funcs->cpu_accessible_dma_pool_free(hdev,
|
||||
HL_QUEUE_SIZE_IN_BYTES,
|
||||
q->kernel_address);
|
||||
hl_cpu_accessible_dma_pool_free(hdev, HL_QUEUE_SIZE_IN_BYTES, q->kernel_address);
|
||||
else
|
||||
hdev->asic_funcs->asic_dma_free_coherent(hdev,
|
||||
HL_QUEUE_SIZE_IN_BYTES,
|
||||
q->kernel_address,
|
||||
q->bus_address);
|
||||
hl_asic_dma_free_coherent(hdev, HL_QUEUE_SIZE_IN_BYTES, q->kernel_address,
|
||||
q->bus_address);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -884,10 +887,8 @@ static int hw_queue_init(struct hl_device *hdev, struct hl_hw_queue *q)
|
||||
{
|
||||
void *p;
|
||||
|
||||
p = hdev->asic_funcs->asic_dma_alloc_coherent(hdev,
|
||||
HL_QUEUE_SIZE_IN_BYTES,
|
||||
&q->bus_address,
|
||||
GFP_KERNEL | __GFP_ZERO);
|
||||
p = hl_asic_dma_alloc_coherent(hdev, HL_QUEUE_SIZE_IN_BYTES, &q->bus_address,
|
||||
GFP_KERNEL | __GFP_ZERO);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -1060,14 +1061,10 @@ static void queue_fini(struct hl_device *hdev, struct hl_hw_queue *q)
|
||||
kfree(q->shadow_queue);
|
||||
|
||||
if (q->queue_type == QUEUE_TYPE_CPU)
|
||||
hdev->asic_funcs->cpu_accessible_dma_pool_free(hdev,
|
||||
HL_QUEUE_SIZE_IN_BYTES,
|
||||
q->kernel_address);
|
||||
hl_cpu_accessible_dma_pool_free(hdev, HL_QUEUE_SIZE_IN_BYTES, q->kernel_address);
|
||||
else
|
||||
hdev->asic_funcs->asic_dma_free_coherent(hdev,
|
||||
HL_QUEUE_SIZE_IN_BYTES,
|
||||
q->kernel_address,
|
||||
q->bus_address);
|
||||
hl_asic_dma_free_coherent(hdev, HL_QUEUE_SIZE_IN_BYTES, q->kernel_address,
|
||||
q->bus_address);
|
||||
}
|
||||
|
||||
int hl_hw_queues_create(struct hl_device *hdev)
|
||||
|
@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/*
|
||||
* Copyright 2016-2019 HabanaLabs, Ltd.
|
||||
* Copyright 2016-2022 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
@ -66,6 +66,56 @@ static void irq_handle_eqe(struct work_struct *work)
|
||||
kfree(eqe_work);
|
||||
}
|
||||
|
||||
/**
|
||||
* job_finish - queue job finish work
|
||||
*
|
||||
* @hdev: pointer to device structure
|
||||
* @cs_seq: command submission sequence
|
||||
* @cq: completion queue
|
||||
*
|
||||
*/
|
||||
static void job_finish(struct hl_device *hdev, u32 cs_seq, struct hl_cq *cq)
|
||||
{
|
||||
struct hl_hw_queue *queue;
|
||||
struct hl_cs_job *job;
|
||||
|
||||
queue = &hdev->kernel_queues[cq->hw_queue_id];
|
||||
job = queue->shadow_queue[hl_pi_2_offset(cs_seq)];
|
||||
queue_work(hdev->cq_wq[cq->cq_idx], &job->finish_work);
|
||||
|
||||
atomic_inc(&queue->ci);
|
||||
}
|
||||
|
||||
/**
|
||||
* cs_finish - queue all cs jobs finish work
|
||||
*
|
||||
* @hdev: pointer to device structure
|
||||
* @cs_seq: command submission sequence
|
||||
*
|
||||
*/
|
||||
static void cs_finish(struct hl_device *hdev, u16 cs_seq)
|
||||
{
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
struct hl_hw_queue *queue;
|
||||
struct hl_cs *cs;
|
||||
struct hl_cs_job *job;
|
||||
|
||||
cs = hdev->shadow_cs_queue[cs_seq & (prop->max_pending_cs - 1)];
|
||||
if (!cs) {
|
||||
dev_warn(hdev->dev,
|
||||
"No pointer to CS in shadow array at index %d\n",
|
||||
cs_seq);
|
||||
return;
|
||||
}
|
||||
|
||||
list_for_each_entry(job, &cs->job_list, cs_node) {
|
||||
queue = &hdev->kernel_queues[job->hw_queue_id];
|
||||
atomic_inc(&queue->ci);
|
||||
}
|
||||
|
||||
queue_work(hdev->cs_cmplt_wq, &cs->finish_work);
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_irq_handler_cq - irq handler for completion queue
|
||||
*
|
||||
@ -77,9 +127,7 @@ irqreturn_t hl_irq_handler_cq(int irq, void *arg)
|
||||
{
|
||||
struct hl_cq *cq = arg;
|
||||
struct hl_device *hdev = cq->hdev;
|
||||
struct hl_hw_queue *queue;
|
||||
struct hl_cs_job *job;
|
||||
bool shadow_index_valid;
|
||||
bool shadow_index_valid, entry_ready;
|
||||
u16 shadow_index;
|
||||
struct hl_cq_entry *cq_entry, *cq_base;
|
||||
|
||||
@ -93,37 +141,41 @@ irqreturn_t hl_irq_handler_cq(int irq, void *arg)
|
||||
cq_base = cq->kernel_address;
|
||||
|
||||
while (1) {
|
||||
bool entry_ready = ((le32_to_cpu(cq_base[cq->ci].data) &
|
||||
CQ_ENTRY_READY_MASK)
|
||||
>> CQ_ENTRY_READY_SHIFT);
|
||||
cq_entry = (struct hl_cq_entry *) &cq_base[cq->ci];
|
||||
|
||||
entry_ready = !!FIELD_GET(CQ_ENTRY_READY_MASK,
|
||||
le32_to_cpu(cq_entry->data));
|
||||
if (!entry_ready)
|
||||
break;
|
||||
|
||||
cq_entry = (struct hl_cq_entry *) &cq_base[cq->ci];
|
||||
|
||||
/* Make sure we read CQ entry contents after we've
|
||||
* checked the ownership bit.
|
||||
*/
|
||||
dma_rmb();
|
||||
|
||||
shadow_index_valid = ((le32_to_cpu(cq_entry->data) &
|
||||
CQ_ENTRY_SHADOW_INDEX_VALID_MASK)
|
||||
>> CQ_ENTRY_SHADOW_INDEX_VALID_SHIFT);
|
||||
shadow_index_valid =
|
||||
!!FIELD_GET(CQ_ENTRY_SHADOW_INDEX_VALID_MASK,
|
||||
le32_to_cpu(cq_entry->data));
|
||||
|
||||
shadow_index = (u16) ((le32_to_cpu(cq_entry->data) &
|
||||
CQ_ENTRY_SHADOW_INDEX_MASK)
|
||||
>> CQ_ENTRY_SHADOW_INDEX_SHIFT);
|
||||
shadow_index = FIELD_GET(CQ_ENTRY_SHADOW_INDEX_MASK,
|
||||
le32_to_cpu(cq_entry->data));
|
||||
|
||||
queue = &hdev->kernel_queues[cq->hw_queue_id];
|
||||
|
||||
if ((shadow_index_valid) && (!hdev->disabled)) {
|
||||
job = queue->shadow_queue[hl_pi_2_offset(shadow_index)];
|
||||
queue_work(hdev->cq_wq[cq->cq_idx], &job->finish_work);
|
||||
/*
|
||||
* CQ interrupt handler has 2 modes of operation:
|
||||
* 1. Interrupt per CS completion: (Single CQ for all queues)
|
||||
* CQ entry represents a completed CS
|
||||
*
|
||||
* 2. Interrupt per CS job completion in queue: (CQ per queue)
|
||||
* CQ entry represents a completed job in a certain queue
|
||||
*/
|
||||
if (shadow_index_valid && !hdev->disabled) {
|
||||
if (hdev->asic_prop.completion_mode ==
|
||||
HL_COMPLETION_MODE_CS)
|
||||
cs_finish(hdev, shadow_index);
|
||||
else
|
||||
job_finish(hdev, shadow_index, cq);
|
||||
}
|
||||
|
||||
atomic_inc(&queue->ci);
|
||||
|
||||
/* Clear CQ entry ready bit */
|
||||
cq_entry->data = cpu_to_le32(le32_to_cpu(cq_entry->data) &
|
||||
~CQ_ENTRY_READY_MASK);
|
||||
@ -217,8 +269,7 @@ static int handle_registration_node(struct hl_device *hdev, struct hl_user_pendi
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void handle_user_cq(struct hl_device *hdev,
|
||||
struct hl_user_interrupt *user_cq)
|
||||
static void handle_user_interrupt(struct hl_device *hdev, struct hl_user_interrupt *intr)
|
||||
{
|
||||
struct hl_user_pending_interrupt *pend, *temp_pend;
|
||||
struct list_head *ts_reg_free_list_head = NULL;
|
||||
@ -240,8 +291,8 @@ static void handle_user_cq(struct hl_device *hdev,
|
||||
if (!job)
|
||||
return;
|
||||
|
||||
spin_lock(&user_cq->wait_list_lock);
|
||||
list_for_each_entry_safe(pend, temp_pend, &user_cq->wait_list_head, wait_list_node) {
|
||||
spin_lock(&intr->wait_list_lock);
|
||||
list_for_each_entry_safe(pend, temp_pend, &intr->wait_list_head, wait_list_node) {
|
||||
if ((pend->cq_kernel_addr && *(pend->cq_kernel_addr) >= pend->cq_target_value) ||
|
||||
!pend->cq_kernel_addr) {
|
||||
if (pend->ts_reg_info.buf) {
|
||||
@ -258,7 +309,7 @@ static void handle_user_cq(struct hl_device *hdev,
|
||||
}
|
||||
}
|
||||
}
|
||||
spin_unlock(&user_cq->wait_list_lock);
|
||||
spin_unlock(&intr->wait_list_lock);
|
||||
|
||||
if (ts_reg_free_list_head) {
|
||||
INIT_WORK(&job->free_obj, hl_ts_free_objects);
|
||||
@ -271,22 +322,24 @@ static void handle_user_cq(struct hl_device *hdev,
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_irq_handler_user_cq - irq handler for user completion queues
|
||||
* hl_irq_handler_user_interrupt - irq handler for user interrupts
|
||||
*
|
||||
* @irq: irq number
|
||||
* @arg: pointer to user interrupt structure
|
||||
*
|
||||
*/
|
||||
irqreturn_t hl_irq_handler_user_cq(int irq, void *arg)
|
||||
irqreturn_t hl_irq_handler_user_interrupt(int irq, void *arg)
|
||||
{
|
||||
struct hl_user_interrupt *user_cq = arg;
|
||||
struct hl_device *hdev = user_cq->hdev;
|
||||
struct hl_user_interrupt *user_int = arg;
|
||||
struct hl_device *hdev = user_int->hdev;
|
||||
|
||||
/* Handle user cq interrupts registered on all interrupts */
|
||||
handle_user_cq(hdev, &hdev->common_user_interrupt);
|
||||
if (user_int->is_decoder)
|
||||
handle_user_interrupt(hdev, &hdev->common_decoder_interrupt);
|
||||
else
|
||||
handle_user_interrupt(hdev, &hdev->common_user_cq_interrupt);
|
||||
|
||||
/* Handle user cq interrupts registered on this specific interrupt */
|
||||
handle_user_cq(hdev, user_cq);
|
||||
/* Handle user cq or decoder interrupts registered on this specific irq */
|
||||
handle_user_interrupt(hdev, user_int);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
@ -304,9 +357,7 @@ irqreturn_t hl_irq_handler_default(int irq, void *arg)
|
||||
struct hl_device *hdev = user_interrupt->hdev;
|
||||
u32 interrupt_id = user_interrupt->interrupt_id;
|
||||
|
||||
dev_err(hdev->dev,
|
||||
"got invalid user interrupt %u",
|
||||
interrupt_id);
|
||||
dev_err(hdev->dev, "got invalid user interrupt %u", interrupt_id);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
@ -360,7 +411,7 @@ irqreturn_t hl_irq_handler_eq(int irq, void *arg)
|
||||
*/
|
||||
dma_rmb();
|
||||
|
||||
if (hdev->disabled && !hdev->reset_info.is_in_soft_reset) {
|
||||
if (hdev->disabled && !hdev->reset_info.in_compute_reset) {
|
||||
dev_warn(hdev->dev, "Device disabled but received an EQ event\n");
|
||||
goto skip_irq;
|
||||
}
|
||||
@ -389,12 +440,27 @@ skip_irq:
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_irq_handler_dec_abnrm - Decoder error interrupt handler
|
||||
* @irq: IRQ number
|
||||
* @arg: pointer to decoder structure.
|
||||
*/
|
||||
irqreturn_t hl_irq_handler_dec_abnrm(int irq, void *arg)
|
||||
{
|
||||
struct hl_dec *dec = arg;
|
||||
|
||||
schedule_work(&dec->completion_abnrm_work);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_cq_init - main initialization function for an cq object
|
||||
*
|
||||
* @hdev: pointer to device structure
|
||||
* @q: pointer to cq structure
|
||||
* @hw_queue_id: The H/W queue ID this completion queue belongs to
|
||||
* HL_INVALID_QUEUE if cq is not attached to any specific queue
|
||||
*
|
||||
* Allocate dma-able memory for the completion queue and initialize fields
|
||||
* Returns 0 on success
|
||||
@ -403,8 +469,8 @@ int hl_cq_init(struct hl_device *hdev, struct hl_cq *q, u32 hw_queue_id)
|
||||
{
|
||||
void *p;
|
||||
|
||||
p = hdev->asic_funcs->asic_dma_alloc_coherent(hdev, HL_CQ_SIZE_IN_BYTES,
|
||||
&q->bus_address, GFP_KERNEL | __GFP_ZERO);
|
||||
p = hl_asic_dma_alloc_coherent(hdev, HL_CQ_SIZE_IN_BYTES, &q->bus_address,
|
||||
GFP_KERNEL | __GFP_ZERO);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -429,9 +495,7 @@ int hl_cq_init(struct hl_device *hdev, struct hl_cq *q, u32 hw_queue_id)
|
||||
*/
|
||||
void hl_cq_fini(struct hl_device *hdev, struct hl_cq *q)
|
||||
{
|
||||
hdev->asic_funcs->asic_dma_free_coherent(hdev, HL_CQ_SIZE_IN_BYTES,
|
||||
q->kernel_address,
|
||||
q->bus_address);
|
||||
hl_asic_dma_free_coherent(hdev, HL_CQ_SIZE_IN_BYTES, q->kernel_address, q->bus_address);
|
||||
}
|
||||
|
||||
void hl_cq_reset(struct hl_device *hdev, struct hl_cq *q)
|
||||
@ -464,9 +528,7 @@ int hl_eq_init(struct hl_device *hdev, struct hl_eq *q)
|
||||
{
|
||||
void *p;
|
||||
|
||||
p = hdev->asic_funcs->cpu_accessible_dma_pool_alloc(hdev,
|
||||
HL_EQ_SIZE_IN_BYTES,
|
||||
&q->bus_address);
|
||||
p = hl_cpu_accessible_dma_pool_alloc(hdev, HL_EQ_SIZE_IN_BYTES, &q->bus_address);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -490,9 +552,7 @@ void hl_eq_fini(struct hl_device *hdev, struct hl_eq *q)
|
||||
{
|
||||
flush_workqueue(hdev->eq_wq);
|
||||
|
||||
hdev->asic_funcs->cpu_accessible_dma_pool_free(hdev,
|
||||
HL_EQ_SIZE_IN_BYTES,
|
||||
q->kernel_address);
|
||||
hl_cpu_accessible_dma_pool_free(hdev, HL_EQ_SIZE_IN_BYTES, q->kernel_address);
|
||||
}
|
||||
|
||||
void hl_eq_reset(struct hl_device *hdev, struct hl_eq *q)
|
||||
|
@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/*
|
||||
* Copyright 2016-2021 HabanaLabs, Ltd.
|
||||
* Copyright 2016-2022 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
@ -27,7 +27,7 @@ static int allocate_timestamps_buffers(struct hl_fpriv *hpriv,
|
||||
static int set_alloc_page_size(struct hl_device *hdev, struct hl_mem_in *args, u32 *page_size)
|
||||
{
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
u32 psize;
|
||||
u64 psize;
|
||||
|
||||
/*
|
||||
* for ASIC that supports setting the allocation page size by user we will address
|
||||
@ -36,8 +36,8 @@ static int set_alloc_page_size(struct hl_device *hdev, struct hl_mem_in *args, u
|
||||
if (prop->supports_user_set_page_size && args->alloc.page_size) {
|
||||
psize = args->alloc.page_size;
|
||||
|
||||
if (!hdev->asic_funcs->is_valid_dram_page_size(psize)) {
|
||||
dev_err(hdev->dev, "user page size (%#x) is not valid\n", psize);
|
||||
if (!is_power_of_2(psize)) {
|
||||
dev_err(hdev->dev, "user page size (%#llx) is not power of 2\n", psize);
|
||||
return -EINVAL;
|
||||
}
|
||||
} else {
|
||||
@ -305,33 +305,20 @@ static void dram_pg_pool_do_release(struct kref *ref)
|
||||
*
|
||||
* This function does the following:
|
||||
* - For DRAM memory only
|
||||
* - iterate over the pack, scrub and free each physical block structure by
|
||||
* - iterate over the pack, free each physical block structure by
|
||||
* returning it to the general pool.
|
||||
* In case of error during scrubbing, initiate hard reset.
|
||||
* Once hard reset is triggered, scrubbing is bypassed while freeing the
|
||||
* memory continues.
|
||||
* - Free the hl_vm_phys_pg_pack structure.
|
||||
*/
|
||||
static int free_phys_pg_pack(struct hl_device *hdev,
|
||||
static void free_phys_pg_pack(struct hl_device *hdev,
|
||||
struct hl_vm_phys_pg_pack *phys_pg_pack)
|
||||
{
|
||||
struct hl_vm *vm = &hdev->vm;
|
||||
u64 i;
|
||||
int rc = 0;
|
||||
|
||||
if (phys_pg_pack->created_from_userptr)
|
||||
goto end;
|
||||
|
||||
if (phys_pg_pack->contiguous) {
|
||||
if (hdev->memory_scrub && !hdev->disabled) {
|
||||
rc = hdev->asic_funcs->scrub_device_mem(hdev,
|
||||
phys_pg_pack->pages[0],
|
||||
phys_pg_pack->total_size);
|
||||
if (rc)
|
||||
dev_err(hdev->dev,
|
||||
"Failed to scrub contiguous device memory\n");
|
||||
}
|
||||
|
||||
gen_pool_free(vm->dram_pg_pool, phys_pg_pack->pages[0],
|
||||
phys_pg_pack->total_size);
|
||||
|
||||
@ -340,15 +327,6 @@ static int free_phys_pg_pack(struct hl_device *hdev,
|
||||
dram_pg_pool_do_release);
|
||||
} else {
|
||||
for (i = 0 ; i < phys_pg_pack->npages ; i++) {
|
||||
if (hdev->memory_scrub && !hdev->disabled && rc == 0) {
|
||||
rc = hdev->asic_funcs->scrub_device_mem(
|
||||
hdev,
|
||||
phys_pg_pack->pages[i],
|
||||
phys_pg_pack->page_size);
|
||||
if (rc)
|
||||
dev_err(hdev->dev,
|
||||
"Failed to scrub device memory\n");
|
||||
}
|
||||
gen_pool_free(vm->dram_pg_pool,
|
||||
phys_pg_pack->pages[i],
|
||||
phys_pg_pack->page_size);
|
||||
@ -357,14 +335,11 @@ static int free_phys_pg_pack(struct hl_device *hdev,
|
||||
}
|
||||
}
|
||||
|
||||
if (rc && !hdev->disabled)
|
||||
hl_device_reset(hdev, HL_DRV_RESET_HARD);
|
||||
|
||||
end:
|
||||
kvfree(phys_pg_pack->pages);
|
||||
kfree(phys_pg_pack);
|
||||
|
||||
return rc;
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -384,40 +359,35 @@ static int free_device_memory(struct hl_ctx *ctx, struct hl_mem_in *args)
|
||||
|
||||
spin_lock(&vm->idr_lock);
|
||||
phys_pg_pack = idr_find(&vm->phys_pg_pack_handles, handle);
|
||||
if (phys_pg_pack) {
|
||||
if (atomic_read(&phys_pg_pack->mapping_cnt) > 0) {
|
||||
dev_err(hdev->dev, "handle %u is mapped, cannot free\n",
|
||||
handle);
|
||||
spin_unlock(&vm->idr_lock);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (phys_pg_pack->exporting_cnt) {
|
||||
dev_dbg(hdev->dev, "handle %u is exported, cannot free\n", handle);
|
||||
spin_unlock(&vm->idr_lock);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* must remove from idr before the freeing of the physical
|
||||
* pages as the refcount of the pool is also the trigger of the
|
||||
* idr destroy
|
||||
*/
|
||||
idr_remove(&vm->phys_pg_pack_handles, handle);
|
||||
if (!phys_pg_pack) {
|
||||
spin_unlock(&vm->idr_lock);
|
||||
|
||||
atomic64_sub(phys_pg_pack->total_size, &ctx->dram_phys_mem);
|
||||
atomic64_sub(phys_pg_pack->total_size, &hdev->dram_used_mem);
|
||||
|
||||
return free_phys_pg_pack(hdev, phys_pg_pack);
|
||||
} else {
|
||||
spin_unlock(&vm->idr_lock);
|
||||
dev_err(hdev->dev,
|
||||
"free device memory failed, no match for handle %u\n",
|
||||
handle);
|
||||
dev_err(hdev->dev, "free device memory failed, no match for handle %u\n", handle);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (atomic_read(&phys_pg_pack->mapping_cnt) > 0) {
|
||||
spin_unlock(&vm->idr_lock);
|
||||
dev_err(hdev->dev, "handle %u is mapped, cannot free\n", handle);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (phys_pg_pack->exporting_cnt) {
|
||||
spin_unlock(&vm->idr_lock);
|
||||
dev_dbg(hdev->dev, "handle %u is exported, cannot free\n", handle);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* must remove from idr before the freeing of the physical pages as the refcount of the pool
|
||||
* is also the trigger of the idr destroy
|
||||
*/
|
||||
idr_remove(&vm->phys_pg_pack_handles, handle);
|
||||
spin_unlock(&vm->idr_lock);
|
||||
|
||||
atomic64_sub(phys_pg_pack->total_size, &ctx->dram_phys_mem);
|
||||
atomic64_sub(phys_pg_pack->total_size, &hdev->dram_used_mem);
|
||||
|
||||
free_phys_pg_pack(hdev, phys_pg_pack);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -657,7 +627,7 @@ static u64 get_va_block(struct hl_device *hdev,
|
||||
|
||||
/* Check if we need to ignore hint address */
|
||||
if ((is_align_pow_2 && (hint_addr & (va_block_align - 1))) ||
|
||||
(!is_align_pow_2 && is_hint_dram_addr &&
|
||||
(!is_align_pow_2 && is_hint_dram_addr &&
|
||||
do_div(tmp_hint_addr, va_range->page_size))) {
|
||||
|
||||
if (force_hint) {
|
||||
@ -1245,16 +1215,16 @@ static int map_device_va(struct hl_ctx *ctx, struct hl_mem_in *args, u64 *device
|
||||
rc = map_phys_pg_pack(ctx, ret_vaddr, phys_pg_pack);
|
||||
if (rc) {
|
||||
dev_err(hdev->dev, "mapping page pack failed for handle %u\n", handle);
|
||||
mutex_unlock(&ctx->mmu_lock);
|
||||
goto map_err;
|
||||
}
|
||||
|
||||
rc = hl_mmu_invalidate_cache_range(hdev, false, *vm_type | MMU_OP_SKIP_LOW_CACHE_INV,
|
||||
ctx->asid, ret_vaddr, phys_pg_pack->total_size);
|
||||
mutex_unlock(&ctx->mmu_lock);
|
||||
if (rc)
|
||||
goto map_err;
|
||||
|
||||
mutex_unlock(&ctx->mmu_lock);
|
||||
|
||||
/*
|
||||
* prefetch is done upon user's request. it is performed in WQ as and so can
|
||||
* be outside the MMU lock. the operation itself is already protected by the mmu lock
|
||||
@ -1278,13 +1248,11 @@ static int map_device_va(struct hl_ctx *ctx, struct hl_mem_in *args, u64 *device
|
||||
*device_addr = ret_vaddr;
|
||||
|
||||
if (is_userptr)
|
||||
rc = free_phys_pg_pack(hdev, phys_pg_pack);
|
||||
free_phys_pg_pack(hdev, phys_pg_pack);
|
||||
|
||||
return rc;
|
||||
|
||||
map_err:
|
||||
mutex_unlock(&ctx->mmu_lock);
|
||||
|
||||
if (add_va_block(hdev, va_range, ret_vaddr,
|
||||
ret_vaddr + phys_pg_pack->total_size - 1))
|
||||
dev_warn(hdev->dev,
|
||||
@ -2509,17 +2477,20 @@ bool hl_userptr_is_pinned(struct hl_device *hdev, u64 addr,
|
||||
* va_range_init() - initialize virtual addresses range.
|
||||
* @hdev: pointer to the habanalabs device structure.
|
||||
* @va_ranges: pointer to va_ranges array.
|
||||
* @start: range start address.
|
||||
* @end: range end address.
|
||||
* @range_type: virtual address range type.
|
||||
* @start: range start address, inclusive.
|
||||
* @end: range end address, inclusive.
|
||||
* @page_size: page size for this va_range.
|
||||
*
|
||||
* This function does the following:
|
||||
* - Initializes the virtual addresses list of the given range with the given
|
||||
* addresses.
|
||||
*/
|
||||
static int va_range_init(struct hl_device *hdev, struct hl_va_range *va_range,
|
||||
u64 start, u64 end, u32 page_size)
|
||||
static int va_range_init(struct hl_device *hdev, struct hl_va_range **va_ranges,
|
||||
enum hl_va_range_type range_type, u64 start,
|
||||
u64 end, u32 page_size)
|
||||
{
|
||||
struct hl_va_range *va_range = va_ranges[range_type];
|
||||
int rc;
|
||||
|
||||
INIT_LIST_HEAD(&va_range->list);
|
||||
@ -2637,7 +2608,7 @@ static int vm_ctx_init_with_ranges(struct hl_ctx *ctx,
|
||||
|
||||
mutex_init(&ctx->va_range[HL_VA_RANGE_TYPE_HOST]->lock);
|
||||
|
||||
rc = va_range_init(hdev, ctx->va_range[HL_VA_RANGE_TYPE_HOST],
|
||||
rc = va_range_init(hdev, ctx->va_range, HL_VA_RANGE_TYPE_HOST,
|
||||
host_range_start, host_range_end, host_page_size);
|
||||
if (rc) {
|
||||
dev_err(hdev->dev, "failed to init host vm range\n");
|
||||
@ -2648,7 +2619,7 @@ static int vm_ctx_init_with_ranges(struct hl_ctx *ctx,
|
||||
mutex_init(&ctx->va_range[HL_VA_RANGE_TYPE_HOST_HUGE]->lock);
|
||||
|
||||
rc = va_range_init(hdev,
|
||||
ctx->va_range[HL_VA_RANGE_TYPE_HOST_HUGE],
|
||||
ctx->va_range, HL_VA_RANGE_TYPE_HOST_HUGE,
|
||||
host_huge_range_start, host_huge_range_end,
|
||||
host_huge_page_size);
|
||||
if (rc) {
|
||||
@ -2664,7 +2635,7 @@ static int vm_ctx_init_with_ranges(struct hl_ctx *ctx,
|
||||
|
||||
mutex_init(&ctx->va_range[HL_VA_RANGE_TYPE_DRAM]->lock);
|
||||
|
||||
rc = va_range_init(hdev, ctx->va_range[HL_VA_RANGE_TYPE_DRAM],
|
||||
rc = va_range_init(hdev, ctx->va_range, HL_VA_RANGE_TYPE_DRAM,
|
||||
dram_range_start, dram_range_end, dram_page_size);
|
||||
if (rc) {
|
||||
dev_err(hdev->dev, "failed to init dram vm range\n");
|
||||
|
@ -135,7 +135,7 @@ int hl_mmap_mem_buf_put_handle(struct hl_mem_mgr *mmg, u64 handle)
|
||||
}
|
||||
|
||||
/**
|
||||
* @hl_mmap_mem_buf_alloc - allocate a new mappable buffer
|
||||
* hl_mmap_mem_buf_alloc - allocate a new mappable buffer
|
||||
*
|
||||
* @mmg: parent unifed memory manager
|
||||
* @behavior: behavior object describing this buffer polymorphic behavior
|
||||
|
@ -1,2 +1,3 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
HL_COMMON_MMU_FILES := common/mmu/mmu.o common/mmu/mmu_v1.o
|
||||
HL_COMMON_MMU_FILES := common/mmu/mmu.o common/mmu/mmu_v1.o \
|
||||
common/mmu/mmu_v2_hr.o
|
||||
|
@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* Copyright 2016-2022 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
@ -51,8 +51,17 @@ int hl_mmu_init(struct hl_device *hdev)
|
||||
return rc;
|
||||
}
|
||||
|
||||
if (hdev->mmu_func[MMU_HR_PGT].init != NULL)
|
||||
if (hdev->mmu_func[MMU_HR_PGT].init != NULL) {
|
||||
rc = hdev->mmu_func[MMU_HR_PGT].init(hdev);
|
||||
if (rc)
|
||||
goto fini_dr_mmu;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
fini_dr_mmu:
|
||||
if (hdev->mmu_func[MMU_DR_PGT].fini != NULL)
|
||||
hdev->mmu_func[MMU_DR_PGT].fini(hdev);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -103,8 +112,17 @@ int hl_mmu_ctx_init(struct hl_ctx *ctx)
|
||||
return rc;
|
||||
}
|
||||
|
||||
if (hdev->mmu_func[MMU_HR_PGT].ctx_init != NULL)
|
||||
if (hdev->mmu_func[MMU_HR_PGT].ctx_init != NULL) {
|
||||
rc = hdev->mmu_func[MMU_HR_PGT].ctx_init(ctx);
|
||||
if (rc)
|
||||
goto fini_dr_ctx;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
fini_dr_ctx:
|
||||
if (hdev->mmu_func[MMU_DR_PGT].fini != NULL)
|
||||
hdev->mmu_func[MMU_DR_PGT].fini(hdev);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -607,6 +625,11 @@ int hl_mmu_if_set_funcs(struct hl_device *hdev)
|
||||
case ASIC_GAUDI_SEC:
|
||||
hl_mmu_v1_set_funcs(hdev, &hdev->mmu_func[MMU_DR_PGT]);
|
||||
break;
|
||||
case ASIC_GAUDI2:
|
||||
case ASIC_GAUDI2_SEC:
|
||||
/* MMUs in Gaudi2 are always host resident */
|
||||
hl_mmu_v2_hr_set_funcs(hdev, &hdev->mmu_func[MMU_HR_PGT]);
|
||||
break;
|
||||
default:
|
||||
dev_err(hdev->dev, "Unrecognized ASIC type %d\n",
|
||||
hdev->asic_type);
|
||||
@ -745,3 +768,470 @@ u64 hl_mmu_get_hop_pte_phys_addr(struct hl_ctx *ctx, struct hl_mmu_properties *m
|
||||
return hop_addr + ctx->hdev->asic_prop.mmu_pte_size * ((virt_addr & mask) >> shift);
|
||||
}
|
||||
|
||||
static void mmu_dma_mem_free_from_chunk(struct gen_pool *pool,
|
||||
struct gen_pool_chunk *chunk,
|
||||
void *data)
|
||||
{
|
||||
struct hl_device *hdev = (struct hl_device *)data;
|
||||
|
||||
hl_asic_dma_free_coherent(hdev, (chunk->end_addr - chunk->start_addr) + 1,
|
||||
(void *)chunk->start_addr, chunk->phys_addr);
|
||||
}
|
||||
|
||||
void hl_mmu_hr_flush(struct hl_ctx *ctx)
|
||||
{
|
||||
/* a flush operation requires memory barrier */
|
||||
mb();
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_hr_pool_destroy() - destroy genpool
|
||||
* @hdev: habanalabs device structure.
|
||||
* @hr_priv: MMU HR private data.
|
||||
* @hop_table_size: HOP table size.
|
||||
*
|
||||
* This function does the following:
|
||||
* - free entries allocated for shadow HOP0
|
||||
* - free pool chunks
|
||||
* - free pool
|
||||
*/
|
||||
static void hl_mmu_hr_pool_destroy(struct hl_device *hdev, struct hl_mmu_hr_priv *hr_priv,
|
||||
u32 hop_table_size)
|
||||
{
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
struct gen_pool **pool = &hr_priv->mmu_pgt_pool;
|
||||
struct pgt_info *hop0_pgt;
|
||||
int asid;
|
||||
|
||||
if (ZERO_OR_NULL_PTR(*pool))
|
||||
return;
|
||||
|
||||
/* Free the Fixed allocation of HOPs0 */
|
||||
if (hr_priv->mmu_asid_hop0) {
|
||||
for (asid = 0 ; asid < prop->max_asid ; asid++) {
|
||||
hop0_pgt = &hr_priv->mmu_asid_hop0[asid];
|
||||
if (ZERO_OR_NULL_PTR(hop0_pgt->virt_addr))
|
||||
continue;
|
||||
|
||||
gen_pool_free(*pool, (uintptr_t) hop0_pgt->virt_addr, hop_table_size);
|
||||
}
|
||||
}
|
||||
|
||||
gen_pool_for_each_chunk(*pool, mmu_dma_mem_free_from_chunk, hdev);
|
||||
gen_pool_destroy(*pool);
|
||||
|
||||
/* Make sure that if we arrive here again without init was called we
|
||||
* won't cause kernel panic. This can happen for example if we fail
|
||||
* during hard reset code at certain points
|
||||
*/
|
||||
*pool = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_hr_init() - initialize the MMU module.
|
||||
* @hdev: habanalabs device structure.
|
||||
* @hr_priv: MMU HR private data.
|
||||
* @hop_table_size: HOP table size.
|
||||
* @pgt_size: memory size allocated for the page table
|
||||
*
|
||||
* @return 0 on success otherwise non-zero error code
|
||||
*
|
||||
* This function does the following:
|
||||
* - Create a pool of pages for pgt_infos.
|
||||
* - Create a shadow table for pgt
|
||||
*/
|
||||
int hl_mmu_hr_init(struct hl_device *hdev, struct hl_mmu_hr_priv *hr_priv, u32 hop_table_size,
|
||||
u64 pgt_size)
|
||||
{
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
size_t pool_chunk_size = SZ_4M;
|
||||
struct pgt_info *hop0_pgt;
|
||||
dma_addr_t dma_addr;
|
||||
u64 virt_addr;
|
||||
int i, rc;
|
||||
|
||||
/*
|
||||
* we set alloc size as PAGE_SIZE (sine dma_alloc_coherent allocation order/size is
|
||||
* PAGE_SHIFT/PAGE_SIZE) in order to be able to control the allocations alignment.
|
||||
* This way we can call "DMA alloc align" according to dma_alloc granularity and supply
|
||||
* allocations with higher-order alignment restrictions
|
||||
*/
|
||||
hr_priv->mmu_pgt_pool = gen_pool_create(PAGE_SHIFT, -1);
|
||||
if (ZERO_OR_NULL_PTR(hr_priv->mmu_pgt_pool)) {
|
||||
dev_err(hdev->dev, "Failed to create hr page pool\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
hr_priv->mmu_asid_hop0 = kvcalloc(prop->max_asid, sizeof(struct pgt_info), GFP_KERNEL);
|
||||
if (ZERO_OR_NULL_PTR(hr_priv->mmu_asid_hop0)) {
|
||||
dev_err(hdev->dev, "Failed to allocate hr-mmu hop0 table\n");
|
||||
rc = -ENOMEM;
|
||||
goto destroy_mmu_pgt_pool;
|
||||
}
|
||||
|
||||
for (i = 0 ; i < pgt_size ; i += pool_chunk_size) {
|
||||
virt_addr = (uintptr_t) hl_asic_dma_alloc_coherent(hdev, pool_chunk_size,
|
||||
&dma_addr,
|
||||
GFP_KERNEL | __GFP_ZERO);
|
||||
if (ZERO_OR_NULL_PTR(virt_addr)) {
|
||||
dev_err(hdev->dev,
|
||||
"Failed to allocate memory for host-resident page pool\n");
|
||||
rc = -ENOMEM;
|
||||
goto destroy_mmu_pgt_pool;
|
||||
}
|
||||
|
||||
rc = gen_pool_add_virt(hr_priv->mmu_pgt_pool, virt_addr, (phys_addr_t) dma_addr,
|
||||
pool_chunk_size, -1);
|
||||
if (rc) {
|
||||
dev_err(hdev->dev, "Failed to fill host-resident page pool\n");
|
||||
goto destroy_mmu_pgt_pool;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0 ; i < prop->max_asid ; i++) {
|
||||
hop0_pgt = &hr_priv->mmu_asid_hop0[i];
|
||||
hop0_pgt->virt_addr = (uintptr_t)
|
||||
gen_pool_dma_zalloc_align(hr_priv->mmu_pgt_pool,
|
||||
hop_table_size,
|
||||
(dma_addr_t *) &hop0_pgt->phys_addr,
|
||||
hop_table_size);
|
||||
if (!hop0_pgt->virt_addr) {
|
||||
dev_err(hdev->dev, "Failed to allocate HOP from pgt pool\n");
|
||||
rc = -ENOMEM;
|
||||
goto destroy_mmu_pgt_pool;
|
||||
}
|
||||
}
|
||||
|
||||
/* MMU H/W init will be done in device hw_init() */
|
||||
|
||||
return 0;
|
||||
|
||||
destroy_mmu_pgt_pool:
|
||||
hl_mmu_hr_pool_destroy(hdev, hr_priv, hop_table_size);
|
||||
if (!ZERO_OR_NULL_PTR(hr_priv->mmu_asid_hop0))
|
||||
kvfree(hr_priv->mmu_asid_hop0);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_hr_fini() - release the MMU module.
|
||||
* @hdev: habanalabs device structure.
|
||||
* @hr_priv: MMU host resident private info.
|
||||
* @hop_table_size: HOP table size
|
||||
*
|
||||
* This function does the following:
|
||||
* - Disable MMU in H/W.
|
||||
* - Free the pgt_infos pool.
|
||||
*
|
||||
* All contexts should be freed before calling this function.
|
||||
*/
|
||||
void hl_mmu_hr_fini(struct hl_device *hdev, struct hl_mmu_hr_priv *hr_priv, u32 hop_table_size)
|
||||
{
|
||||
/* MMU H/W fini was already done in device hw_fini() */
|
||||
|
||||
hl_mmu_hr_pool_destroy(hdev, hr_priv, hop_table_size);
|
||||
|
||||
if (!ZERO_OR_NULL_PTR(hr_priv->mmu_asid_hop0)) {
|
||||
kvfree(hr_priv->mmu_asid_hop0);
|
||||
|
||||
/* Make sure that if we arrive here again without init was
|
||||
* called we won't cause kernel panic. This can happen for
|
||||
* example if we fail during hard reset code at certain points
|
||||
*/
|
||||
hr_priv->mmu_asid_hop0 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_hr_free_hop_remove_pgt() - free HOP and remove PGT from hash
|
||||
* @pgt_info: page table info structure.
|
||||
* @hr_priv: MMU HR private data.
|
||||
* @hop_table_size: HOP table size.
|
||||
*/
|
||||
void hl_mmu_hr_free_hop_remove_pgt(struct pgt_info *pgt_info, struct hl_mmu_hr_priv *hr_priv,
|
||||
u32 hop_table_size)
|
||||
{
|
||||
gen_pool_free(hr_priv->mmu_pgt_pool, pgt_info->virt_addr, hop_table_size);
|
||||
hash_del(&pgt_info->node);
|
||||
kfree(pgt_info);
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_hr_pte_phys_to_virt() - translate PTE phys addr to virt addr
|
||||
* @ctx: pointer to the context structure
|
||||
* @pgt: pgt_info for the HOP hosting the PTE
|
||||
* @phys_pte_addr: phys address of the PTE
|
||||
* @hop_table_size: HOP table size
|
||||
*
|
||||
* @return PTE virtual address
|
||||
*
|
||||
* The function use the pgt_info to get HOP base virt addr and obtain the PTE's virt addr
|
||||
* by adding the PTE offset.
|
||||
*/
|
||||
u64 hl_mmu_hr_pte_phys_to_virt(struct hl_ctx *ctx, struct pgt_info *pgt,
|
||||
u64 phys_pte_addr, u32 hop_table_size)
|
||||
{
|
||||
u64 page_mask = (hop_table_size - 1);
|
||||
u64 pte_offset = phys_pte_addr & page_mask;
|
||||
|
||||
return pgt->virt_addr + pte_offset;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_hr_write_pte() - write HR PTE
|
||||
* @ctx: pointer to the context structure
|
||||
* @pgt_info: HOP's page table info structure
|
||||
* @phys_pte_addr: phys PTE address
|
||||
* @val: raw PTE data
|
||||
* @hop_table_size: HOP table size
|
||||
*/
|
||||
void hl_mmu_hr_write_pte(struct hl_ctx *ctx, struct pgt_info *pgt_info, u64 phys_pte_addr,
|
||||
u64 val, u32 hop_table_size)
|
||||
{
|
||||
/*
|
||||
* The value to write is the phys address of the next hop +
|
||||
* flags at the 12 LSBs.
|
||||
*/
|
||||
u64 virt_addr = hl_mmu_hr_pte_phys_to_virt(ctx, pgt_info, phys_pte_addr, hop_table_size);
|
||||
|
||||
*((u64 *) (uintptr_t) virt_addr) = val;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_hr_clear_pte() - clear HR PTE
|
||||
* @ctx: pointer to the context structure
|
||||
* @pgt_info: HOP's page table info structure
|
||||
* @phys_pte_addr: phys PTE address
|
||||
* @hop_table_size: HOP table size
|
||||
*/
|
||||
void hl_mmu_hr_clear_pte(struct hl_ctx *ctx, struct pgt_info *pgt_info, u64 phys_pte_addr,
|
||||
u32 hop_table_size)
|
||||
{
|
||||
/* no need to transform the value to physical address */
|
||||
hl_mmu_hr_write_pte(ctx, pgt_info, phys_pte_addr, 0, hop_table_size);
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_hr_put_pte() - put HR PTE and remove it if necessary (no more PTEs)
|
||||
* @ctx: pointer to the context structure
|
||||
* @pgt_info: HOP's page table info structure
|
||||
* @hr_priv: HR MMU private info
|
||||
* @hop_table_size: HOP table size
|
||||
*
|
||||
* @return number of PTEs still in the HOP
|
||||
*/
|
||||
int hl_mmu_hr_put_pte(struct hl_ctx *ctx, struct pgt_info *pgt_info,
|
||||
struct hl_mmu_hr_priv *hr_priv,
|
||||
u32 hop_table_size)
|
||||
{
|
||||
int num_of_ptes_left;
|
||||
|
||||
pgt_info->num_of_ptes--;
|
||||
|
||||
/*
|
||||
* Need to save the number of ptes left because free_hop might free
|
||||
* the pgt_info
|
||||
*/
|
||||
num_of_ptes_left = pgt_info->num_of_ptes;
|
||||
if (!num_of_ptes_left)
|
||||
hl_mmu_hr_free_hop_remove_pgt(pgt_info, hr_priv, hop_table_size);
|
||||
|
||||
return num_of_ptes_left;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_hr_get_pte() - increase PGT PTE count
|
||||
* @ctx: pointer to the context structure
|
||||
* @hr_func: host resident functions
|
||||
* @phys_hop_addr: HOP phys address
|
||||
*/
|
||||
void hl_mmu_hr_get_pte(struct hl_ctx *ctx, struct hl_hr_mmu_funcs *hr_func, u64 phys_hop_addr)
|
||||
{
|
||||
hr_func->get_pgt_info(ctx, phys_hop_addr)->num_of_ptes++;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_hr_get_next_hop_pgt_info() - get pgt_info structure for the next HOP
|
||||
* @ctx: pointer to the context structure.
|
||||
* @hr_func: host resident functions.
|
||||
* @curr_pte: current PTE value.
|
||||
*
|
||||
* @return pgt_info structure on success, otherwise NULL.
|
||||
*/
|
||||
struct pgt_info *hl_mmu_hr_get_next_hop_pgt_info(struct hl_ctx *ctx,
|
||||
struct hl_hr_mmu_funcs *hr_func,
|
||||
u64 curr_pte)
|
||||
{
|
||||
u64 next_hop_phys_addr = hl_mmu_get_next_hop_addr(ctx, curr_pte);
|
||||
|
||||
if (next_hop_phys_addr == ULLONG_MAX)
|
||||
return NULL;
|
||||
|
||||
return hr_func->get_pgt_info(ctx, next_hop_phys_addr);
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_hr_alloc_hop() - allocate HOP
|
||||
* @ctx: pointer to the context structure.
|
||||
* @hr_priv: host resident private info structure.
|
||||
* @hr_func: host resident functions.
|
||||
* @mmu_prop: MMU properties.
|
||||
*
|
||||
* @return pgt_info structure associated with the allocated HOP on success, otherwise NULL.
|
||||
*/
|
||||
struct pgt_info *hl_mmu_hr_alloc_hop(struct hl_ctx *ctx, struct hl_mmu_hr_priv *hr_priv,
|
||||
struct hl_hr_mmu_funcs *hr_func,
|
||||
struct hl_mmu_properties *mmu_prop)
|
||||
{
|
||||
struct hl_device *hdev = ctx->hdev;
|
||||
struct pgt_info *pgt_info;
|
||||
dma_addr_t phys_addr;
|
||||
void *virt_addr;
|
||||
int i, retry = 1;
|
||||
|
||||
pgt_info = kmalloc(sizeof(*pgt_info), GFP_KERNEL);
|
||||
if (!pgt_info)
|
||||
return NULL;
|
||||
|
||||
for (i = 0; i <= retry; i++) {
|
||||
virt_addr = gen_pool_dma_zalloc_align(hr_priv->mmu_pgt_pool,
|
||||
mmu_prop->hop_table_size,
|
||||
&phys_addr,
|
||||
mmu_prop->hop_table_size);
|
||||
if (virt_addr)
|
||||
break;
|
||||
|
||||
/* No memory in pool - get some and try again */
|
||||
virt_addr = hl_asic_dma_alloc_coherent(hdev, SZ_2M, &phys_addr,
|
||||
GFP_KERNEL | __GFP_ZERO);
|
||||
if (ZERO_OR_NULL_PTR(virt_addr))
|
||||
break;
|
||||
|
||||
if (gen_pool_add_virt(hr_priv->mmu_pgt_pool, (unsigned long)virt_addr,
|
||||
phys_addr, SZ_2M, -1)) {
|
||||
hl_asic_dma_free_coherent(hdev, SZ_2M, virt_addr, phys_addr);
|
||||
virt_addr = NULL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (ZERO_OR_NULL_PTR(virt_addr)) {
|
||||
dev_err(hdev->dev, "failed to allocate page\n");
|
||||
goto pool_alloc_err;
|
||||
}
|
||||
|
||||
pgt_info->phys_addr = phys_addr;
|
||||
pgt_info->shadow_addr = (unsigned long) NULL;
|
||||
pgt_info->virt_addr = (unsigned long)virt_addr;
|
||||
pgt_info->ctx = ctx;
|
||||
pgt_info->num_of_ptes = 0;
|
||||
hr_func->add_pgt_info(ctx, pgt_info, phys_addr);
|
||||
|
||||
return pgt_info;
|
||||
|
||||
pool_alloc_err:
|
||||
kfree(pgt_info);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_hr_get_alloc_next_hop() - get the next HOP, allocate it if it does not exist
|
||||
* @ctx: pointer to the context structure.
|
||||
* @hr_priv: host resident private info structure.
|
||||
* @hr_func: host resident functions.
|
||||
* @mmu_prop: MMU properties.
|
||||
* @curr_pte: current PTE value.
|
||||
* @is_new_hop: set to true if HOP is new (caller responsibility to set it to false).
|
||||
*
|
||||
* @return pgt_info structure associated with the allocated HOP on success, otherwise NULL.
|
||||
*/
|
||||
struct pgt_info *hl_mmu_hr_get_alloc_next_hop(struct hl_ctx *ctx,
|
||||
struct hl_mmu_hr_priv *hr_priv,
|
||||
struct hl_hr_mmu_funcs *hr_func,
|
||||
struct hl_mmu_properties *mmu_prop,
|
||||
u64 curr_pte, bool *is_new_hop)
|
||||
{
|
||||
u64 hop_addr = hl_mmu_get_next_hop_addr(ctx, curr_pte);
|
||||
|
||||
if (hop_addr != ULLONG_MAX)
|
||||
return hr_func->get_pgt_info(ctx, hop_addr);
|
||||
|
||||
*is_new_hop = true;
|
||||
return hl_mmu_hr_alloc_hop(ctx, hr_priv, hr_func, mmu_prop);
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_hr_get_tlb_info() - get the TLB info (info for a specific mapping)
|
||||
* @ctx: pointer to the context structure.
|
||||
* @virt_addr: the virt address for which to get info.
|
||||
* @hops: HOPs info structure.
|
||||
* @hr_func: host resident functions.
|
||||
*
|
||||
* @return 0 on success, otherwise non 0 error code..
|
||||
*/
|
||||
int hl_mmu_hr_get_tlb_info(struct hl_ctx *ctx, u64 virt_addr, struct hl_mmu_hop_info *hops,
|
||||
struct hl_hr_mmu_funcs *hr_func)
|
||||
{
|
||||
/* using 6 HOPs as this is the maximum number of HOPs */
|
||||
struct pgt_info *hops_pgt_info[MMU_ARCH_6_HOPS] = { NULL };
|
||||
struct hl_device *hdev = ctx->hdev;
|
||||
struct hl_mmu_properties *mmu_prop;
|
||||
int rc, i, used_hops;
|
||||
bool is_huge;
|
||||
|
||||
rc = hr_func->get_tlb_mapping_params(hdev, &mmu_prop, hops, virt_addr, &is_huge);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
used_hops = mmu_prop->num_hops;
|
||||
|
||||
/* huge pages use one less hop */
|
||||
if (is_huge)
|
||||
used_hops--;
|
||||
|
||||
hops->scrambled_vaddr = hdev->asic_funcs->scramble_addr(hdev, virt_addr);
|
||||
|
||||
for (i = 0 ; i < used_hops ; i++) {
|
||||
if (i == 0)
|
||||
hops_pgt_info[i] = hr_func->get_hop0_pgt_info(ctx);
|
||||
else
|
||||
hops_pgt_info[i] = hl_mmu_hr_get_next_hop_pgt_info(ctx, hr_func,
|
||||
hops->hop_info[i - 1].hop_pte_val);
|
||||
|
||||
if (!hops_pgt_info[i])
|
||||
return -EFAULT;
|
||||
|
||||
hops->hop_info[i].hop_addr = hops_pgt_info[i]->phys_addr;
|
||||
hops->hop_info[i].hop_pte_addr =
|
||||
hl_mmu_get_hop_pte_phys_addr(ctx, mmu_prop, i,
|
||||
hops->hop_info[i].hop_addr,
|
||||
hops->scrambled_vaddr);
|
||||
hops->hop_info[i].hop_pte_val = *(u64 *) (uintptr_t)
|
||||
hl_mmu_hr_pte_phys_to_virt(ctx, hops_pgt_info[i],
|
||||
hops->hop_info[i].hop_pte_addr,
|
||||
mmu_prop->hop_table_size);
|
||||
|
||||
if (!(hops->hop_info[i].hop_pte_val & PAGE_PRESENT_MASK))
|
||||
return -EFAULT;
|
||||
|
||||
if (hops->hop_info[i].hop_pte_val & mmu_prop->last_mask)
|
||||
break;
|
||||
}
|
||||
|
||||
/* if passed over all hops then no last hop was found */
|
||||
if (i == mmu_prop->num_hops)
|
||||
return -EFAULT;
|
||||
|
||||
if (hops->scrambled_vaddr != virt_addr)
|
||||
hops->unscrambled_paddr = hdev->asic_funcs->descramble_addr
|
||||
(hdev, hops->hop_info[i].hop_pte_val);
|
||||
else
|
||||
hops->unscrambled_paddr = hops->hop_info[i].hop_pte_val;
|
||||
|
||||
hops->used_hops = i + 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -393,9 +393,8 @@ static int hl_mmu_v1_init(struct hl_device *hdev)
|
||||
goto err_pool_add;
|
||||
}
|
||||
|
||||
hdev->mmu_priv.dr.mmu_shadow_hop0 = kvmalloc_array(prop->max_asid,
|
||||
prop->mmu_hop_table_size,
|
||||
GFP_KERNEL | __GFP_ZERO);
|
||||
hdev->mmu_priv.dr.mmu_shadow_hop0 = kvcalloc(prop->max_asid, prop->mmu_hop_table_size,
|
||||
GFP_KERNEL);
|
||||
if (ZERO_OR_NULL_PTR(hdev->mmu_priv.dr.mmu_shadow_hop0)) {
|
||||
rc = -ENOMEM;
|
||||
goto err_pool_add;
|
||||
@ -412,7 +411,7 @@ err_pool_add:
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_fini() - release the MMU module.
|
||||
* hl_mmu_v1_fini() - release the MMU module.
|
||||
* @hdev: habanalabs device structure.
|
||||
*
|
||||
* This function does the following:
|
||||
@ -438,7 +437,7 @@ static void hl_mmu_v1_fini(struct hl_device *hdev)
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_ctx_init() - initialize a context for using the MMU module.
|
||||
* hl_mmu_v1_ctx_init() - initialize a context for using the MMU module.
|
||||
* @ctx: pointer to the context structure to initialize.
|
||||
*
|
||||
* Initialize a mutex to protect the concurrent mapping flow, a hash to hold all
|
||||
|
399
drivers/misc/habanalabs/common/mmu/mmu_v2_hr.c
Normal file
399
drivers/misc/habanalabs/common/mmu/mmu_v2_hr.c
Normal file
@ -0,0 +1,399 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/*
|
||||
* Copyright 2020-2022 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "../habanalabs.h"
|
||||
#include "../../include/hw_ip/mmu/mmu_general.h"
|
||||
|
||||
#include <linux/slab.h>
|
||||
|
||||
static struct pgt_info *hl_mmu_v2_hr_get_pgt_info(struct hl_ctx *ctx, u64 phys_hop_addr)
|
||||
{
|
||||
struct pgt_info *pgt_info = NULL;
|
||||
|
||||
hash_for_each_possible(ctx->hr_mmu_phys_hash, pgt_info, node,
|
||||
(unsigned long) phys_hop_addr)
|
||||
if (phys_hop_addr == pgt_info->phys_addr)
|
||||
break;
|
||||
|
||||
return pgt_info;
|
||||
}
|
||||
|
||||
static void hl_mmu_v2_hr_add_pgt_info(struct hl_ctx *ctx, struct pgt_info *pgt_info,
|
||||
dma_addr_t phys_addr)
|
||||
{
|
||||
hash_add(ctx->hr_mmu_phys_hash, &pgt_info->node, phys_addr);
|
||||
}
|
||||
|
||||
static struct pgt_info *hl_mmu_v2_hr_get_hop0_pgt_info(struct hl_ctx *ctx)
|
||||
{
|
||||
return &ctx->hdev->mmu_priv.hr.mmu_asid_hop0[ctx->asid];
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_v2_hr_init() - initialize the MMU module.
|
||||
* @hdev: habanalabs device structure.
|
||||
*
|
||||
* This function does the following:
|
||||
* - Create a pool of pages for pgt_infos.
|
||||
* - Create a shadow table for pgt
|
||||
*
|
||||
* Return: 0 for success, non-zero for failure.
|
||||
*/
|
||||
static inline int hl_mmu_v2_hr_init(struct hl_device *hdev)
|
||||
{
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
|
||||
return hl_mmu_hr_init(hdev, &hdev->mmu_priv.hr, prop->mmu_hop_table_size,
|
||||
prop->mmu_pgt_size);
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_v2_hr_fini() - release the MMU module.
|
||||
* @hdev: habanalabs device structure.
|
||||
*
|
||||
* This function does the following:
|
||||
* - Disable MMU in H/W.
|
||||
* - Free the pgt_infos pool.
|
||||
*
|
||||
* All contexts should be freed before calling this function.
|
||||
*/
|
||||
static inline void hl_mmu_v2_hr_fini(struct hl_device *hdev)
|
||||
{
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
|
||||
hl_mmu_hr_fini(hdev, &hdev->mmu_priv.hr, prop->mmu_hop_table_size);
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_mmu_v2_hr_ctx_init() - initialize a context for using the MMU module.
|
||||
* @ctx: pointer to the context structure to initialize.
|
||||
*
|
||||
* Initialize a mutex to protect the concurrent mapping flow, a hash to hold all
|
||||
* page tables hops related to this context.
|
||||
* Return: 0 on success, non-zero otherwise.
|
||||
*/
|
||||
static int hl_mmu_v2_hr_ctx_init(struct hl_ctx *ctx)
|
||||
{
|
||||
hash_init(ctx->hr_mmu_phys_hash);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* hl_mmu_v2_hr_ctx_fini - disable a ctx from using the mmu module
|
||||
*
|
||||
* @ctx: pointer to the context structure
|
||||
*
|
||||
* This function does the following:
|
||||
* - Free any pgts which were not freed yet
|
||||
* - Free the mutex
|
||||
* - Free DRAM default page mapping hops
|
||||
*/
|
||||
static void hl_mmu_v2_hr_ctx_fini(struct hl_ctx *ctx)
|
||||
{
|
||||
struct hl_device *hdev = ctx->hdev;
|
||||
struct pgt_info *pgt_info;
|
||||
struct hlist_node *tmp;
|
||||
int i;
|
||||
|
||||
if (!hash_empty(ctx->hr_mmu_phys_hash))
|
||||
dev_err(hdev->dev, "ctx %d is freed while it has pgts in use\n",
|
||||
ctx->asid);
|
||||
|
||||
hash_for_each_safe(ctx->hr_mmu_phys_hash, i, tmp, pgt_info, node) {
|
||||
dev_err_ratelimited(hdev->dev,
|
||||
"pgt_info of addr 0x%llx of asid %d was not destroyed, num_ptes: %d\n",
|
||||
pgt_info->phys_addr, ctx->asid, pgt_info->num_of_ptes);
|
||||
hl_mmu_hr_free_hop_remove_pgt(pgt_info, &ctx->hdev->mmu_priv.hr,
|
||||
ctx->hdev->asic_prop.mmu_hop_table_size);
|
||||
}
|
||||
}
|
||||
|
||||
static int _hl_mmu_v2_hr_unmap(struct hl_ctx *ctx,
|
||||
u64 virt_addr, bool is_dram_addr)
|
||||
{
|
||||
u64 curr_pte, scrambled_virt_addr, hop_pte_phys_addr[MMU_ARCH_6_HOPS] = { 0 };
|
||||
struct pgt_info *hops_pgt_info[MMU_ARCH_6_HOPS] = { NULL };
|
||||
struct hl_device *hdev = ctx->hdev;
|
||||
struct asic_fixed_properties *prop;
|
||||
struct hl_mmu_properties *mmu_prop;
|
||||
bool is_huge = false;
|
||||
int i, hop_last;
|
||||
|
||||
prop = &hdev->asic_prop;
|
||||
|
||||
/* shifts and masks are the same in PMMU and HMMU, use one of them */
|
||||
mmu_prop = is_dram_addr ? &prop->dmmu : &prop->pmmu;
|
||||
hop_last = mmu_prop->num_hops - 1;
|
||||
|
||||
scrambled_virt_addr = hdev->asic_funcs->scramble_addr(hdev, virt_addr);
|
||||
curr_pte = 0;
|
||||
|
||||
for (i = 0 ; i < mmu_prop->num_hops ; i++) {
|
||||
/* we get HOP0 differently, it doesn't need curr_pte */
|
||||
if (i == 0)
|
||||
hops_pgt_info[i] = hl_mmu_v2_hr_get_hop0_pgt_info(ctx);
|
||||
else
|
||||
hops_pgt_info[i] = hl_mmu_hr_get_next_hop_pgt_info(ctx,
|
||||
&ctx->hdev->mmu_func[MMU_HR_PGT].hr_funcs, curr_pte);
|
||||
if (!hops_pgt_info[i])
|
||||
goto not_mapped;
|
||||
|
||||
hop_pte_phys_addr[i] = hl_mmu_get_hop_pte_phys_addr(ctx, mmu_prop, i,
|
||||
hops_pgt_info[i]->phys_addr,
|
||||
scrambled_virt_addr);
|
||||
if (hop_pte_phys_addr[i] == U64_MAX)
|
||||
return -EFAULT;
|
||||
|
||||
curr_pte = *(u64 *) (uintptr_t) hl_mmu_hr_pte_phys_to_virt(ctx, hops_pgt_info[i],
|
||||
hop_pte_phys_addr[i],
|
||||
ctx->hdev->asic_prop.mmu_hop_table_size);
|
||||
|
||||
if ((i < hop_last) && (curr_pte & mmu_prop->last_mask)) {
|
||||
hop_last = i;
|
||||
is_huge = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (is_dram_addr && !is_huge) {
|
||||
dev_err(hdev->dev, "DRAM unmapping should use huge pages only\n");
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
if (!(curr_pte & PAGE_PRESENT_MASK))
|
||||
goto not_mapped;
|
||||
|
||||
for (i = hop_last ; i > 0 ; i--) {
|
||||
hl_mmu_hr_clear_pte(ctx, hops_pgt_info[i], hop_pte_phys_addr[i],
|
||||
ctx->hdev->asic_prop.mmu_hop_table_size);
|
||||
|
||||
if (hl_mmu_hr_put_pte(ctx, hops_pgt_info[i], &ctx->hdev->mmu_priv.hr,
|
||||
ctx->hdev->asic_prop.mmu_hop_table_size))
|
||||
goto mapped;
|
||||
}
|
||||
hl_mmu_hr_clear_pte(ctx, hops_pgt_info[0], hop_pte_phys_addr[0],
|
||||
ctx->hdev->asic_prop.mmu_hop_table_size);
|
||||
|
||||
mapped:
|
||||
return 0;
|
||||
|
||||
not_mapped:
|
||||
dev_err(hdev->dev, "virt addr 0x%llx is not mapped to phys addr\n", virt_addr);
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static int hl_mmu_v2_get_last_hop(struct hl_mmu_properties *mmu_prop, u32 page_size)
|
||||
{
|
||||
int hop;
|
||||
|
||||
for (hop = (mmu_prop->num_hops - 1); hop; hop--) {
|
||||
if (mmu_prop->hop_shifts[hop] == 0)
|
||||
continue;
|
||||
|
||||
if (page_size <= (1 << mmu_prop->hop_shifts[hop]))
|
||||
break;
|
||||
}
|
||||
|
||||
return hop;
|
||||
}
|
||||
|
||||
static int _hl_mmu_v2_hr_map(struct hl_ctx *ctx,
|
||||
u64 virt_addr, u64 phys_addr,
|
||||
u32 page_size, bool is_dram_addr)
|
||||
{
|
||||
u64 hop_pte_phys_addr[MMU_ARCH_6_HOPS] = { 0 },
|
||||
curr_pte = 0, scrambled_virt_addr, scrambled_phys_addr;
|
||||
struct pgt_info *hops_pgt_info[MMU_ARCH_6_HOPS] = { NULL };
|
||||
bool hop_new[MMU_ARCH_6_HOPS] = { false };
|
||||
struct hl_device *hdev = ctx->hdev;
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
struct hl_mmu_properties *mmu_prop;
|
||||
int i, hop_last, rc = -ENOMEM;
|
||||
|
||||
/*
|
||||
* This mapping function can map a page or a huge page. For huge page
|
||||
* there are only 4 hops rather than 5. Currently the DRAM allocation
|
||||
* uses huge pages only but user memory could have been allocated with
|
||||
* one of the two page sizes. Since this is a common code for all the
|
||||
* three cases, we need this hugs page check.
|
||||
*/
|
||||
if (is_dram_addr)
|
||||
mmu_prop = &prop->dmmu;
|
||||
else if (page_size == prop->pmmu_huge.page_size)
|
||||
mmu_prop = &prop->pmmu_huge;
|
||||
else
|
||||
mmu_prop = &prop->pmmu;
|
||||
|
||||
hop_last = hl_mmu_v2_get_last_hop(mmu_prop, page_size);
|
||||
if (hop_last <= 0) {
|
||||
dev_err(ctx->hdev->dev, "Invalid last HOP %d\n", hop_last);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
scrambled_virt_addr = hdev->asic_funcs->scramble_addr(hdev, virt_addr);
|
||||
scrambled_phys_addr = hdev->asic_funcs->scramble_addr(hdev, phys_addr);
|
||||
|
||||
for (i = 0 ; i <= hop_last ; i++) {
|
||||
|
||||
if (i == 0)
|
||||
hops_pgt_info[i] = hl_mmu_v2_hr_get_hop0_pgt_info(ctx);
|
||||
else
|
||||
hops_pgt_info[i] = hl_mmu_hr_get_alloc_next_hop(ctx,
|
||||
&ctx->hdev->mmu_priv.hr,
|
||||
&ctx->hdev->mmu_func[MMU_HR_PGT].hr_funcs,
|
||||
mmu_prop, curr_pte, &hop_new[i]);
|
||||
if (!hops_pgt_info[i])
|
||||
goto err;
|
||||
|
||||
hop_pte_phys_addr[i] = hl_mmu_get_hop_pte_phys_addr(ctx, mmu_prop, i,
|
||||
hops_pgt_info[i]->phys_addr,
|
||||
scrambled_virt_addr);
|
||||
curr_pte = *(u64 *) (uintptr_t) hl_mmu_hr_pte_phys_to_virt(ctx, hops_pgt_info[i],
|
||||
hop_pte_phys_addr[i],
|
||||
ctx->hdev->asic_prop.mmu_hop_table_size);
|
||||
}
|
||||
|
||||
if (curr_pte & PAGE_PRESENT_MASK) {
|
||||
dev_err(hdev->dev, "mapping already exists for virt_addr 0x%llx\n",
|
||||
scrambled_virt_addr);
|
||||
|
||||
for (i = 0 ; i <= hop_last ; i++)
|
||||
dev_dbg(hdev->dev, "hop%d pte: 0x%llx (0x%llx)\n",
|
||||
i,
|
||||
*(u64 *) (uintptr_t)
|
||||
hl_mmu_hr_pte_phys_to_virt(ctx, hops_pgt_info[i],
|
||||
hop_pte_phys_addr[i],
|
||||
ctx->hdev->asic_prop.mmu_hop_table_size),
|
||||
hop_pte_phys_addr[i]);
|
||||
rc = -EINVAL;
|
||||
goto err;
|
||||
}
|
||||
|
||||
curr_pte = (scrambled_phys_addr & HOP_PHYS_ADDR_MASK) | mmu_prop->last_mask
|
||||
| PAGE_PRESENT_MASK;
|
||||
|
||||
/* Write the PTEs */
|
||||
hl_mmu_hr_write_pte(ctx, hops_pgt_info[hop_last], hop_pte_phys_addr[hop_last], curr_pte,
|
||||
ctx->hdev->asic_prop.mmu_hop_table_size);
|
||||
|
||||
/* for each new hop, add its address to the table of previous-hop */
|
||||
for (i = 1 ; i <= hop_last ; i++) {
|
||||
if (hop_new[i]) {
|
||||
curr_pte = (hops_pgt_info[i]->phys_addr & HOP_PHYS_ADDR_MASK) |
|
||||
PAGE_PRESENT_MASK;
|
||||
hl_mmu_hr_write_pte(ctx, hops_pgt_info[i - 1], hop_pte_phys_addr[i - 1],
|
||||
curr_pte, ctx->hdev->asic_prop.mmu_hop_table_size);
|
||||
if (i - 1)
|
||||
hl_mmu_hr_get_pte(ctx, &ctx->hdev->mmu_func[MMU_HR_PGT].hr_funcs,
|
||||
hops_pgt_info[i - 1]->phys_addr);
|
||||
}
|
||||
}
|
||||
|
||||
hl_mmu_hr_get_pte(ctx, &ctx->hdev->mmu_func[MMU_HR_PGT].hr_funcs,
|
||||
hops_pgt_info[hop_last]->phys_addr);
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
for (i = 1 ; i <= hop_last ; i++)
|
||||
if (hop_new[i] && hops_pgt_info[i])
|
||||
hl_mmu_hr_free_hop_remove_pgt(hops_pgt_info[i], &ctx->hdev->mmu_priv.hr,
|
||||
ctx->hdev->asic_prop.mmu_hop_table_size);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/*
|
||||
* hl_mmu_v2_swap_out - marks all mapping of the given ctx as swapped out
|
||||
*
|
||||
* @ctx: pointer to the context structure
|
||||
*
|
||||
*/
|
||||
static void hl_mmu_v2_hr_swap_out(struct hl_ctx *ctx)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* hl_mmu_v2_swap_in - marks all mapping of the given ctx as swapped in
|
||||
*
|
||||
* @ctx: pointer to the context structure
|
||||
*
|
||||
*/
|
||||
static void hl_mmu_v2_hr_swap_in(struct hl_ctx *ctx)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static int hl_mmu_v2_hr_get_tlb_mapping_params(struct hl_device *hdev,
|
||||
struct hl_mmu_properties **mmu_prop,
|
||||
struct hl_mmu_hop_info *hops,
|
||||
u64 virt_addr, bool *is_huge)
|
||||
{
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
bool is_dram_addr, is_pmmu_addr, is_pmmu_h_addr;
|
||||
|
||||
is_dram_addr = hl_mem_area_inside_range(virt_addr, prop->dmmu.page_size,
|
||||
prop->dmmu.start_addr,
|
||||
prop->dmmu.end_addr);
|
||||
is_pmmu_addr = hl_mem_area_inside_range(virt_addr, prop->pmmu.page_size,
|
||||
prop->pmmu.start_addr,
|
||||
prop->pmmu.end_addr);
|
||||
is_pmmu_h_addr = hl_mem_area_inside_range(virt_addr,
|
||||
prop->pmmu_huge.page_size,
|
||||
prop->pmmu_huge.start_addr,
|
||||
prop->pmmu_huge.end_addr);
|
||||
if (is_dram_addr) {
|
||||
*mmu_prop = &prop->dmmu;
|
||||
*is_huge = true;
|
||||
hops->range_type = HL_VA_RANGE_TYPE_DRAM;
|
||||
} else if (is_pmmu_addr) {
|
||||
*mmu_prop = &prop->pmmu;
|
||||
*is_huge = false;
|
||||
hops->range_type = HL_VA_RANGE_TYPE_HOST;
|
||||
} else if (is_pmmu_h_addr) {
|
||||
*mmu_prop = &prop->pmmu_huge;
|
||||
*is_huge = true;
|
||||
hops->range_type = HL_VA_RANGE_TYPE_HOST_HUGE;
|
||||
} else {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int hl_mmu_v2_hr_get_tlb_info(struct hl_ctx *ctx, u64 virt_addr,
|
||||
struct hl_mmu_hop_info *hops)
|
||||
{
|
||||
return hl_mmu_hr_get_tlb_info(ctx, virt_addr, hops,
|
||||
&ctx->hdev->mmu_func[MMU_HR_PGT].hr_funcs);
|
||||
}
|
||||
|
||||
/*
|
||||
* hl_mmu_v2_prepare - prepare mmu_if for working with mmu v2
|
||||
*
|
||||
* @hdev: pointer to the device structure
|
||||
* @mmu_if: pointer to the mmu interface structure
|
||||
*/
|
||||
void hl_mmu_v2_hr_set_funcs(struct hl_device *hdev, struct hl_mmu_funcs *mmu)
|
||||
{
|
||||
mmu->init = hl_mmu_v2_hr_init;
|
||||
mmu->fini = hl_mmu_v2_hr_fini;
|
||||
mmu->ctx_init = hl_mmu_v2_hr_ctx_init;
|
||||
mmu->ctx_fini = hl_mmu_v2_hr_ctx_fini;
|
||||
mmu->map = _hl_mmu_v2_hr_map;
|
||||
mmu->unmap = _hl_mmu_v2_hr_unmap;
|
||||
mmu->flush = hl_mmu_hr_flush;
|
||||
mmu->swap_out = hl_mmu_v2_hr_swap_out;
|
||||
mmu->swap_in = hl_mmu_v2_hr_swap_in;
|
||||
mmu->get_tlb_info = hl_mmu_v2_hr_get_tlb_info;
|
||||
mmu->hr_funcs.get_hop0_pgt_info = hl_mmu_v2_hr_get_hop0_pgt_info;
|
||||
mmu->hr_funcs.get_pgt_info = hl_mmu_v2_hr_get_pgt_info;
|
||||
mmu->hr_funcs.add_pgt_info = hl_mmu_v2_hr_add_pgt_info;
|
||||
mmu->hr_funcs.get_tlb_mapping_params = hl_mmu_v2_hr_get_tlb_mapping_params;
|
||||
}
|
@ -224,27 +224,6 @@ int hl_pci_iatu_write(struct hl_device *hdev, u32 addr, u32 data)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_pci_reset_link_through_bridge() - Reset PCI link.
|
||||
* @hdev: Pointer to hl_device structure.
|
||||
*/
|
||||
static void hl_pci_reset_link_through_bridge(struct hl_device *hdev)
|
||||
{
|
||||
struct pci_dev *pdev = hdev->pdev;
|
||||
struct pci_dev *parent_port;
|
||||
u16 val;
|
||||
|
||||
parent_port = pdev->bus->self;
|
||||
pci_read_config_word(parent_port, PCI_BRIDGE_CONTROL, &val);
|
||||
val |= PCI_BRIDGE_CTL_BUS_RESET;
|
||||
pci_write_config_word(parent_port, PCI_BRIDGE_CONTROL, val);
|
||||
ssleep(1);
|
||||
|
||||
val &= ~(PCI_BRIDGE_CTL_BUS_RESET);
|
||||
pci_write_config_word(parent_port, PCI_BRIDGE_CONTROL, val);
|
||||
ssleep(3);
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_pci_set_inbound_region() - Configure inbound region
|
||||
* @hdev: Pointer to hl_device structure.
|
||||
@ -280,21 +259,19 @@ int hl_pci_set_inbound_region(struct hl_device *hdev, u8 region,
|
||||
}
|
||||
|
||||
/* Point to the specified address */
|
||||
rc |= hl_pci_iatu_write(hdev, offset + 0x14,
|
||||
lower_32_bits(pci_region->addr));
|
||||
rc |= hl_pci_iatu_write(hdev, offset + 0x18,
|
||||
upper_32_bits(pci_region->addr));
|
||||
rc |= hl_pci_iatu_write(hdev, offset + 0x14, lower_32_bits(pci_region->addr));
|
||||
rc |= hl_pci_iatu_write(hdev, offset + 0x18, upper_32_bits(pci_region->addr));
|
||||
|
||||
/* Set bar type as memory */
|
||||
rc |= hl_pci_iatu_write(hdev, offset + 0x0, 0);
|
||||
|
||||
/* Enable + bar/address match + match enable + bar number */
|
||||
ctrl_reg_val = FIELD_PREP(IATU_REGION_CTRL_REGION_EN_MASK, 1);
|
||||
ctrl_reg_val |= FIELD_PREP(IATU_REGION_CTRL_MATCH_MODE_MASK,
|
||||
pci_region->mode);
|
||||
ctrl_reg_val |= FIELD_PREP(IATU_REGION_CTRL_MATCH_MODE_MASK, pci_region->mode);
|
||||
ctrl_reg_val |= FIELD_PREP(IATU_REGION_CTRL_NUM_MATCH_EN_MASK, 1);
|
||||
|
||||
if (pci_region->mode == PCI_BAR_MATCH_MODE)
|
||||
ctrl_reg_val |= FIELD_PREP(IATU_REGION_CTRL_BAR_NUM_MASK,
|
||||
pci_region->bar);
|
||||
ctrl_reg_val |= FIELD_PREP(IATU_REGION_CTRL_BAR_NUM_MASK, pci_region->bar);
|
||||
|
||||
rc |= hl_pci_iatu_write(hdev, offset + 0x4, ctrl_reg_val);
|
||||
|
||||
@ -396,9 +373,6 @@ int hl_pci_init(struct hl_device *hdev)
|
||||
struct pci_dev *pdev = hdev->pdev;
|
||||
int rc;
|
||||
|
||||
if (hdev->reset_pcilink)
|
||||
hl_pci_reset_link_through_bridge(hdev);
|
||||
|
||||
rc = pci_enable_device_mem(pdev);
|
||||
if (rc) {
|
||||
dev_err(hdev->dev, "can't enable PCI device\n");
|
||||
@ -445,7 +419,7 @@ disable_device:
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_fw_fini() - PCI finalization code.
|
||||
* hl_pci_fini() - PCI finalization code.
|
||||
* @hdev: Pointer to hl_device structure
|
||||
*
|
||||
* Unmap PCI bars and disable PCI device.
|
||||
|
600
drivers/misc/habanalabs/common/security.c
Normal file
600
drivers/misc/habanalabs/common/security.c
Normal file
@ -0,0 +1,600 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/*
|
||||
* Copyright 2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "habanalabs.h"
|
||||
|
||||
/**
|
||||
* hl_get_pb_block - return the relevant block within the block array
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @mm_reg_addr: register address in the desired block
|
||||
* @pb_blocks: blocks array
|
||||
* @array_size: blocks array size
|
||||
*
|
||||
*/
|
||||
static int hl_get_pb_block(struct hl_device *hdev, u32 mm_reg_addr,
|
||||
const u32 pb_blocks[], int array_size)
|
||||
{
|
||||
int i;
|
||||
u32 start_addr, end_addr;
|
||||
|
||||
for (i = 0 ; i < array_size ; i++) {
|
||||
start_addr = pb_blocks[i];
|
||||
end_addr = start_addr + HL_BLOCK_SIZE;
|
||||
|
||||
if ((mm_reg_addr >= start_addr) && (mm_reg_addr < end_addr))
|
||||
return i;
|
||||
}
|
||||
|
||||
dev_err(hdev->dev, "No protection domain was found for 0x%x\n",
|
||||
mm_reg_addr);
|
||||
return -EDOM;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_unset_pb_in_block - clear a specific protection bit in a block
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @reg_offset: register offset will be converted to bit offset in pb block
|
||||
* @sgs_entry: pb array
|
||||
*
|
||||
*/
|
||||
static int hl_unset_pb_in_block(struct hl_device *hdev, u32 reg_offset,
|
||||
struct hl_block_glbl_sec *sgs_entry)
|
||||
{
|
||||
if ((reg_offset >= HL_BLOCK_SIZE) || (reg_offset & 0x3)) {
|
||||
dev_err(hdev->dev,
|
||||
"Register offset(%d) is out of range(%d) or invalid\n",
|
||||
reg_offset, HL_BLOCK_SIZE);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
UNSET_GLBL_SEC_BIT(sgs_entry->sec_array,
|
||||
(reg_offset & (HL_BLOCK_SIZE - 1)) >> 2);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_unsecure_register - locate the relevant block for this register and
|
||||
* remove corresponding protection bit
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @mm_reg_addr: register address to unsecure
|
||||
* @offset: additional offset to the register address
|
||||
* @pb_blocks: blocks array
|
||||
* @sgs_array: pb array
|
||||
* @array_size: blocks array size
|
||||
*
|
||||
*/
|
||||
int hl_unsecure_register(struct hl_device *hdev, u32 mm_reg_addr, int offset,
|
||||
const u32 pb_blocks[], struct hl_block_glbl_sec sgs_array[],
|
||||
int array_size)
|
||||
{
|
||||
u32 reg_offset;
|
||||
int block_num;
|
||||
|
||||
block_num = hl_get_pb_block(hdev, mm_reg_addr + offset, pb_blocks,
|
||||
array_size);
|
||||
if (block_num < 0)
|
||||
return block_num;
|
||||
|
||||
reg_offset = (mm_reg_addr + offset) - pb_blocks[block_num];
|
||||
|
||||
return hl_unset_pb_in_block(hdev, reg_offset, &sgs_array[block_num]);
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_unsecure_register_range - locate the relevant block for this register
|
||||
* range and remove corresponding protection bit
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @mm_reg_range: register address range to unsecure
|
||||
* @offset: additional offset to the register address
|
||||
* @pb_blocks: blocks array
|
||||
* @sgs_array: pb array
|
||||
* @array_size: blocks array size
|
||||
*
|
||||
*/
|
||||
static int hl_unsecure_register_range(struct hl_device *hdev,
|
||||
struct range mm_reg_range, int offset, const u32 pb_blocks[],
|
||||
struct hl_block_glbl_sec sgs_array[],
|
||||
int array_size)
|
||||
{
|
||||
u32 reg_offset;
|
||||
int i, block_num, rc = 0;
|
||||
|
||||
block_num = hl_get_pb_block(hdev,
|
||||
mm_reg_range.start + offset, pb_blocks,
|
||||
array_size);
|
||||
if (block_num < 0)
|
||||
return block_num;
|
||||
|
||||
for (i = mm_reg_range.start ; i <= mm_reg_range.end ; i += 4) {
|
||||
reg_offset = (i + offset) - pb_blocks[block_num];
|
||||
rc |= hl_unset_pb_in_block(hdev, reg_offset,
|
||||
&sgs_array[block_num]);
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_unsecure_registers - locate the relevant block for all registers and
|
||||
* remove corresponding protection bit
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @mm_reg_array: register address array to unsecure
|
||||
* @mm_array_size: register array size
|
||||
* @offset: additional offset to the register address
|
||||
* @pb_blocks: blocks array
|
||||
* @sgs_array: pb array
|
||||
* @blocks_array_size: blocks array size
|
||||
*
|
||||
*/
|
||||
int hl_unsecure_registers(struct hl_device *hdev, const u32 mm_reg_array[],
|
||||
int mm_array_size, int offset, const u32 pb_blocks[],
|
||||
struct hl_block_glbl_sec sgs_array[], int blocks_array_size)
|
||||
{
|
||||
int i, rc = 0;
|
||||
|
||||
for (i = 0 ; i < mm_array_size ; i++) {
|
||||
rc = hl_unsecure_register(hdev, mm_reg_array[i], offset,
|
||||
pb_blocks, sgs_array, blocks_array_size);
|
||||
|
||||
if (rc)
|
||||
return rc;
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_unsecure_registers_range - locate the relevant block for all register
|
||||
* ranges and remove corresponding protection bit
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @mm_reg_range_array: register address range array to unsecure
|
||||
* @mm_array_size: register array size
|
||||
* @offset: additional offset to the register address
|
||||
* @pb_blocks: blocks array
|
||||
* @sgs_array: pb array
|
||||
* @blocks_array_size: blocks array size
|
||||
*
|
||||
*/
|
||||
static int hl_unsecure_registers_range(struct hl_device *hdev,
|
||||
const struct range mm_reg_range_array[], int mm_array_size,
|
||||
int offset, const u32 pb_blocks[],
|
||||
struct hl_block_glbl_sec sgs_array[], int blocks_array_size)
|
||||
{
|
||||
int i, rc = 0;
|
||||
|
||||
for (i = 0 ; i < mm_array_size ; i++) {
|
||||
rc = hl_unsecure_register_range(hdev, mm_reg_range_array[i],
|
||||
offset, pb_blocks, sgs_array, blocks_array_size);
|
||||
|
||||
if (rc)
|
||||
return rc;
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_ack_pb_security_violations - Ack security violation
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @pb_blocks: blocks array
|
||||
* @block_offset: additional offset to the block
|
||||
* @array_size: blocks array size
|
||||
*
|
||||
*/
|
||||
static void hl_ack_pb_security_violations(struct hl_device *hdev,
|
||||
const u32 pb_blocks[], u32 block_offset, int array_size)
|
||||
{
|
||||
int i;
|
||||
u32 cause, addr, block_base;
|
||||
|
||||
for (i = 0 ; i < array_size ; i++) {
|
||||
block_base = pb_blocks[i] + block_offset;
|
||||
cause = RREG32(block_base + HL_BLOCK_GLBL_ERR_CAUSE);
|
||||
if (cause) {
|
||||
addr = RREG32(block_base + HL_BLOCK_GLBL_ERR_ADDR);
|
||||
hdev->asic_funcs->pb_print_security_errors(hdev,
|
||||
block_base, cause, addr);
|
||||
WREG32(block_base + HL_BLOCK_GLBL_ERR_CAUSE, cause);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_config_glbl_sec - set pb in HW according to given pb array
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @pb_blocks: blocks array
|
||||
* @sgs_array: pb array
|
||||
* @block_offset: additional offset to the block
|
||||
* @array_size: blocks array size
|
||||
*
|
||||
*/
|
||||
void hl_config_glbl_sec(struct hl_device *hdev, const u32 pb_blocks[],
|
||||
struct hl_block_glbl_sec sgs_array[], u32 block_offset,
|
||||
int array_size)
|
||||
{
|
||||
int i, j;
|
||||
u32 sgs_base;
|
||||
|
||||
if (hdev->pldm)
|
||||
usleep_range(100, 1000);
|
||||
|
||||
for (i = 0 ; i < array_size ; i++) {
|
||||
sgs_base = block_offset + pb_blocks[i] +
|
||||
HL_BLOCK_GLBL_SEC_OFFS;
|
||||
|
||||
for (j = 0 ; j < HL_BLOCK_GLBL_SEC_LEN ; j++)
|
||||
WREG32(sgs_base + j * sizeof(u32),
|
||||
sgs_array[i].sec_array[j]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_secure_block - locally memsets a block to 0
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @sgs_array: pb array to clear
|
||||
* @array_size: blocks array size
|
||||
*
|
||||
*/
|
||||
void hl_secure_block(struct hl_device *hdev,
|
||||
struct hl_block_glbl_sec sgs_array[], int array_size)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0 ; i < array_size ; i++)
|
||||
memset((char *)(sgs_array[i].sec_array), 0,
|
||||
HL_BLOCK_GLBL_SEC_SIZE);
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_init_pb_with_mask - set selected pb instances with mask in HW according
|
||||
* to given configuration
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @num_dcores: number of decores to apply configuration to
|
||||
* set to HL_PB_SHARED if need to apply only once
|
||||
* @dcore_offset: offset between dcores
|
||||
* @num_instances: number of instances to apply configuration to
|
||||
* @instance_offset: offset between instances
|
||||
* @pb_blocks: blocks array
|
||||
* @blocks_array_size: blocks array size
|
||||
* @regs_array: register array
|
||||
* @regs_array_size: register array size
|
||||
* @mask: enabled instances mask: 1- enabled, 0- disabled
|
||||
*/
|
||||
int hl_init_pb_with_mask(struct hl_device *hdev, u32 num_dcores,
|
||||
u32 dcore_offset, u32 num_instances, u32 instance_offset,
|
||||
const u32 pb_blocks[], u32 blocks_array_size,
|
||||
const u32 *regs_array, u32 regs_array_size, u64 mask)
|
||||
{
|
||||
int i, j;
|
||||
struct hl_block_glbl_sec *glbl_sec;
|
||||
|
||||
glbl_sec = kcalloc(blocks_array_size,
|
||||
sizeof(struct hl_block_glbl_sec),
|
||||
GFP_KERNEL);
|
||||
if (!glbl_sec)
|
||||
return -ENOMEM;
|
||||
|
||||
hl_secure_block(hdev, glbl_sec, blocks_array_size);
|
||||
hl_unsecure_registers(hdev, regs_array, regs_array_size, 0, pb_blocks,
|
||||
glbl_sec, blocks_array_size);
|
||||
|
||||
/* Fill all blocks with the same configuration */
|
||||
for (i = 0 ; i < num_dcores ; i++) {
|
||||
for (j = 0 ; j < num_instances ; j++) {
|
||||
int seq = i * num_instances + j;
|
||||
|
||||
if (!(mask & BIT_ULL(seq)))
|
||||
continue;
|
||||
|
||||
hl_config_glbl_sec(hdev, pb_blocks, glbl_sec,
|
||||
i * dcore_offset + j * instance_offset,
|
||||
blocks_array_size);
|
||||
}
|
||||
}
|
||||
|
||||
kfree(glbl_sec);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_init_pb - set pb in HW according to given configuration
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @num_dcores: number of decores to apply configuration to
|
||||
* set to HL_PB_SHARED if need to apply only once
|
||||
* @dcore_offset: offset between dcores
|
||||
* @num_instances: number of instances to apply configuration to
|
||||
* @instance_offset: offset between instances
|
||||
* @pb_blocks: blocks array
|
||||
* @blocks_array_size: blocks array size
|
||||
* @regs_array: register array
|
||||
* @regs_array_size: register array size
|
||||
*
|
||||
*/
|
||||
int hl_init_pb(struct hl_device *hdev, u32 num_dcores, u32 dcore_offset,
|
||||
u32 num_instances, u32 instance_offset,
|
||||
const u32 pb_blocks[], u32 blocks_array_size,
|
||||
const u32 *regs_array, u32 regs_array_size)
|
||||
{
|
||||
return hl_init_pb_with_mask(hdev, num_dcores, dcore_offset,
|
||||
num_instances, instance_offset, pb_blocks,
|
||||
blocks_array_size, regs_array, regs_array_size,
|
||||
ULLONG_MAX);
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_init_pb_ranges_with_mask - set pb instances using mask in HW according to
|
||||
* given configuration unsecurring registers
|
||||
* ranges instead of specific registers
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @num_dcores: number of decores to apply configuration to
|
||||
* set to HL_PB_SHARED if need to apply only once
|
||||
* @dcore_offset: offset between dcores
|
||||
* @num_instances: number of instances to apply configuration to
|
||||
* @instance_offset: offset between instances
|
||||
* @pb_blocks: blocks array
|
||||
* @blocks_array_size: blocks array size
|
||||
* @regs_range_array: register range array
|
||||
* @regs_range_array_size: register range array size
|
||||
* @mask: enabled instances mask: 1- enabled, 0- disabled
|
||||
*/
|
||||
int hl_init_pb_ranges_with_mask(struct hl_device *hdev, u32 num_dcores,
|
||||
u32 dcore_offset, u32 num_instances, u32 instance_offset,
|
||||
const u32 pb_blocks[], u32 blocks_array_size,
|
||||
const struct range *regs_range_array, u32 regs_range_array_size,
|
||||
u64 mask)
|
||||
{
|
||||
int i, j, rc = 0;
|
||||
struct hl_block_glbl_sec *glbl_sec;
|
||||
|
||||
glbl_sec = kcalloc(blocks_array_size,
|
||||
sizeof(struct hl_block_glbl_sec),
|
||||
GFP_KERNEL);
|
||||
if (!glbl_sec)
|
||||
return -ENOMEM;
|
||||
|
||||
hl_secure_block(hdev, glbl_sec, blocks_array_size);
|
||||
rc = hl_unsecure_registers_range(hdev, regs_range_array,
|
||||
regs_range_array_size, 0, pb_blocks, glbl_sec,
|
||||
blocks_array_size);
|
||||
if (rc)
|
||||
goto free_glbl_sec;
|
||||
|
||||
/* Fill all blocks with the same configuration */
|
||||
for (i = 0 ; i < num_dcores ; i++) {
|
||||
for (j = 0 ; j < num_instances ; j++) {
|
||||
int seq = i * num_instances + j;
|
||||
|
||||
if (!(mask & BIT_ULL(seq)))
|
||||
continue;
|
||||
|
||||
hl_config_glbl_sec(hdev, pb_blocks, glbl_sec,
|
||||
i * dcore_offset + j * instance_offset,
|
||||
blocks_array_size);
|
||||
}
|
||||
}
|
||||
|
||||
free_glbl_sec:
|
||||
kfree(glbl_sec);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_init_pb_ranges - set pb in HW according to given configuration unsecurring
|
||||
* registers ranges instead of specific registers
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @num_dcores: number of decores to apply configuration to
|
||||
* set to HL_PB_SHARED if need to apply only once
|
||||
* @dcore_offset: offset between dcores
|
||||
* @num_instances: number of instances to apply configuration to
|
||||
* @instance_offset: offset between instances
|
||||
* @pb_blocks: blocks array
|
||||
* @blocks_array_size: blocks array size
|
||||
* @regs_range_array: register range array
|
||||
* @regs_range_array_size: register range array size
|
||||
*
|
||||
*/
|
||||
int hl_init_pb_ranges(struct hl_device *hdev, u32 num_dcores,
|
||||
u32 dcore_offset, u32 num_instances, u32 instance_offset,
|
||||
const u32 pb_blocks[], u32 blocks_array_size,
|
||||
const struct range *regs_range_array, u32 regs_range_array_size)
|
||||
{
|
||||
return hl_init_pb_ranges_with_mask(hdev, num_dcores, dcore_offset,
|
||||
num_instances, instance_offset, pb_blocks,
|
||||
blocks_array_size, regs_range_array,
|
||||
regs_range_array_size, ULLONG_MAX);
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_init_pb_single_dcore - set pb for a single docre in HW
|
||||
* according to given configuration
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @dcore_offset: offset from the dcore0
|
||||
* @num_instances: number of instances to apply configuration to
|
||||
* @instance_offset: offset between instances
|
||||
* @pb_blocks: blocks array
|
||||
* @blocks_array_size: blocks array size
|
||||
* @regs_array: register array
|
||||
* @regs_array_size: register array size
|
||||
*
|
||||
*/
|
||||
int hl_init_pb_single_dcore(struct hl_device *hdev, u32 dcore_offset,
|
||||
u32 num_instances, u32 instance_offset,
|
||||
const u32 pb_blocks[], u32 blocks_array_size,
|
||||
const u32 *regs_array, u32 regs_array_size)
|
||||
{
|
||||
int i, rc = 0;
|
||||
struct hl_block_glbl_sec *glbl_sec;
|
||||
|
||||
glbl_sec = kcalloc(blocks_array_size,
|
||||
sizeof(struct hl_block_glbl_sec),
|
||||
GFP_KERNEL);
|
||||
if (!glbl_sec)
|
||||
return -ENOMEM;
|
||||
|
||||
hl_secure_block(hdev, glbl_sec, blocks_array_size);
|
||||
rc = hl_unsecure_registers(hdev, regs_array, regs_array_size, 0,
|
||||
pb_blocks, glbl_sec, blocks_array_size);
|
||||
if (rc)
|
||||
goto free_glbl_sec;
|
||||
|
||||
/* Fill all blocks with the same configuration */
|
||||
for (i = 0 ; i < num_instances ; i++)
|
||||
hl_config_glbl_sec(hdev, pb_blocks, glbl_sec,
|
||||
dcore_offset + i * instance_offset,
|
||||
blocks_array_size);
|
||||
|
||||
free_glbl_sec:
|
||||
kfree(glbl_sec);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_init_pb_ranges_single_dcore - set pb for a single docre in HW according
|
||||
* to given configuration unsecurring
|
||||
* registers ranges instead of specific
|
||||
* registers
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @dcore_offset: offset from the dcore0
|
||||
* @num_instances: number of instances to apply configuration to
|
||||
* @instance_offset: offset between instances
|
||||
* @pb_blocks: blocks array
|
||||
* @blocks_array_size: blocks array size
|
||||
* @regs_range_array: register range array
|
||||
* @regs_range_array_size: register range array size
|
||||
*
|
||||
*/
|
||||
int hl_init_pb_ranges_single_dcore(struct hl_device *hdev, u32 dcore_offset,
|
||||
u32 num_instances, u32 instance_offset,
|
||||
const u32 pb_blocks[], u32 blocks_array_size,
|
||||
const struct range *regs_range_array, u32 regs_range_array_size)
|
||||
{
|
||||
int i;
|
||||
struct hl_block_glbl_sec *glbl_sec;
|
||||
|
||||
glbl_sec = kcalloc(blocks_array_size,
|
||||
sizeof(struct hl_block_glbl_sec),
|
||||
GFP_KERNEL);
|
||||
if (!glbl_sec)
|
||||
return -ENOMEM;
|
||||
|
||||
hl_secure_block(hdev, glbl_sec, blocks_array_size);
|
||||
hl_unsecure_registers_range(hdev, regs_range_array,
|
||||
regs_range_array_size, 0, pb_blocks, glbl_sec,
|
||||
blocks_array_size);
|
||||
|
||||
/* Fill all blocks with the same configuration */
|
||||
for (i = 0 ; i < num_instances ; i++)
|
||||
hl_config_glbl_sec(hdev, pb_blocks, glbl_sec,
|
||||
dcore_offset + i * instance_offset,
|
||||
blocks_array_size);
|
||||
|
||||
kfree(glbl_sec);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_ack_pb_with_mask - ack pb with mask in HW according to given configuration
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @num_dcores: number of decores to apply configuration to
|
||||
* set to HL_PB_SHARED if need to apply only once
|
||||
* @dcore_offset: offset between dcores
|
||||
* @num_instances: number of instances to apply configuration to
|
||||
* @instance_offset: offset between instances
|
||||
* @pb_blocks: blocks array
|
||||
* @blocks_array_size: blocks array size
|
||||
* @mask: enabled instances mask: 1- enabled, 0- disabled
|
||||
*
|
||||
*/
|
||||
void hl_ack_pb_with_mask(struct hl_device *hdev, u32 num_dcores,
|
||||
u32 dcore_offset, u32 num_instances, u32 instance_offset,
|
||||
const u32 pb_blocks[], u32 blocks_array_size, u64 mask)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
/* ack all blocks */
|
||||
for (i = 0 ; i < num_dcores ; i++) {
|
||||
for (j = 0 ; j < num_instances ; j++) {
|
||||
int seq = i * num_instances + j;
|
||||
|
||||
if (!(mask & BIT_ULL(seq)))
|
||||
continue;
|
||||
|
||||
hl_ack_pb_security_violations(hdev, pb_blocks,
|
||||
i * dcore_offset + j * instance_offset,
|
||||
blocks_array_size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_ack_pb - ack pb in HW according to given configuration
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @num_dcores: number of decores to apply configuration to
|
||||
* set to HL_PB_SHARED if need to apply only once
|
||||
* @dcore_offset: offset between dcores
|
||||
* @num_instances: number of instances to apply configuration to
|
||||
* @instance_offset: offset between instances
|
||||
* @pb_blocks: blocks array
|
||||
* @blocks_array_size: blocks array size
|
||||
*
|
||||
*/
|
||||
void hl_ack_pb(struct hl_device *hdev, u32 num_dcores, u32 dcore_offset,
|
||||
u32 num_instances, u32 instance_offset,
|
||||
const u32 pb_blocks[], u32 blocks_array_size)
|
||||
{
|
||||
hl_ack_pb_with_mask(hdev, num_dcores, dcore_offset, num_instances,
|
||||
instance_offset, pb_blocks, blocks_array_size,
|
||||
ULLONG_MAX);
|
||||
}
|
||||
|
||||
/**
|
||||
* hl_ack_pb_single_dcore - ack pb for single docre in HW
|
||||
* according to given configuration
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @dcore_offset: offset from dcore0
|
||||
* @num_instances: number of instances to apply configuration to
|
||||
* @instance_offset: offset between instances
|
||||
* @pb_blocks: blocks array
|
||||
* @blocks_array_size: blocks array size
|
||||
*
|
||||
*/
|
||||
void hl_ack_pb_single_dcore(struct hl_device *hdev, u32 dcore_offset,
|
||||
u32 num_instances, u32 instance_offset,
|
||||
const u32 pb_blocks[], u32 blocks_array_size)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* ack all blocks */
|
||||
for (i = 0 ; i < num_instances ; i++)
|
||||
hl_ack_pb_security_violations(hdev, pb_blocks,
|
||||
dcore_offset + i * instance_offset,
|
||||
blocks_array_size);
|
||||
|
||||
}
|
@ -73,6 +73,7 @@ static DEVICE_ATTR_RO(clk_cur_freq_mhz);
|
||||
static struct attribute *hl_dev_clk_attrs[] = {
|
||||
&dev_attr_clk_max_freq_mhz.attr,
|
||||
&dev_attr_clk_cur_freq_mhz.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static ssize_t vrm_ver_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
@ -93,6 +94,7 @@ static DEVICE_ATTR_RO(vrm_ver);
|
||||
|
||||
static struct attribute *hl_dev_vrm_attrs[] = {
|
||||
&dev_attr_vrm_ver.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static ssize_t uboot_ver_show(struct device *dev, struct device_attribute *attr,
|
||||
@ -243,6 +245,12 @@ static ssize_t device_type_show(struct device *dev,
|
||||
case ASIC_GAUDI_SEC:
|
||||
str = "GAUDI SEC";
|
||||
break;
|
||||
case ASIC_GAUDI2:
|
||||
str = "GAUDI2";
|
||||
break;
|
||||
case ASIC_GAUDI2_SEC:
|
||||
str = "GAUDI2 SEC";
|
||||
break;
|
||||
default:
|
||||
dev_err(hdev->dev, "Unrecognized ASIC type %d\n",
|
||||
hdev->asic_type);
|
||||
@ -283,7 +291,7 @@ static ssize_t soft_reset_cnt_show(struct device *dev,
|
||||
{
|
||||
struct hl_device *hdev = dev_get_drvdata(dev);
|
||||
|
||||
return sprintf(buf, "%d\n", hdev->reset_info.soft_reset_cnt);
|
||||
return sprintf(buf, "%d\n", hdev->reset_info.compute_reset_cnt);
|
||||
}
|
||||
|
||||
static ssize_t hard_reset_cnt_show(struct device *dev,
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -469,7 +469,7 @@ static u64 gaudi_rr_hbw_mask_high_ar_regs[GAUDI_NUMBER_OF_HBW_RR_REGS] = {
|
||||
};
|
||||
|
||||
/**
|
||||
* gaudi_set_block_as_protected - set the given block as protected
|
||||
* gaudi_pb_set_block - set the given block as protected
|
||||
*
|
||||
* @hdev: pointer to hl_device structure
|
||||
* @base: block base address
|
||||
|
4
drivers/misc/habanalabs/gaudi2/Makefile
Normal file
4
drivers/misc/habanalabs/gaudi2/Makefile
Normal file
@ -0,0 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
HL_GAUDI2_FILES := gaudi2/gaudi2.o gaudi2/gaudi2_security.o \
|
||||
gaudi2/gaudi2_coresight.o
|
9986
drivers/misc/habanalabs/gaudi2/gaudi2.c
Normal file
9986
drivers/misc/habanalabs/gaudi2/gaudi2.c
Normal file
File diff suppressed because it is too large
Load Diff
566
drivers/misc/habanalabs/gaudi2/gaudi2P.h
Normal file
566
drivers/misc/habanalabs/gaudi2/gaudi2P.h
Normal file
@ -0,0 +1,566 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2020-2022 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef GAUDI2P_H_
|
||||
#define GAUDI2P_H_
|
||||
|
||||
#include <uapi/misc/habanalabs.h>
|
||||
#include "../common/habanalabs.h"
|
||||
#include "../include/common/hl_boot_if.h"
|
||||
#include "../include/gaudi2/gaudi2.h"
|
||||
#include "../include/gaudi2/gaudi2_packets.h"
|
||||
#include "../include/gaudi2/gaudi2_fw_if.h"
|
||||
#include "../include/gaudi2/gaudi2_async_events.h"
|
||||
#include "../include/gaudi2/gaudi2_async_virt_events.h"
|
||||
|
||||
#define GAUDI2_LINUX_FW_FILE "habanalabs/gaudi2/gaudi2-fit.itb"
|
||||
#define GAUDI2_BOOT_FIT_FILE "habanalabs/gaudi2/gaudi2-boot-fit.itb"
|
||||
|
||||
#define MMU_PAGE_TABLES_INITIAL_SIZE 0x10000000 /* 256MB */
|
||||
|
||||
#define GAUDI2_CPU_TIMEOUT_USEC 30000000 /* 30s */
|
||||
|
||||
#define GAUDI2_FPGA_CPU_TIMEOUT 100000000 /* 100s */
|
||||
|
||||
#define NUMBER_OF_PDMA_QUEUES 2
|
||||
#define NUMBER_OF_EDMA_QUEUES 8
|
||||
#define NUMBER_OF_MME_QUEUES 4
|
||||
#define NUMBER_OF_TPC_QUEUES 25
|
||||
#define NUMBER_OF_NIC_QUEUES 24
|
||||
#define NUMBER_OF_ROT_QUEUES 2
|
||||
#define NUMBER_OF_CPU_QUEUES 1
|
||||
|
||||
#define NUMBER_OF_HW_QUEUES ((NUMBER_OF_PDMA_QUEUES + \
|
||||
NUMBER_OF_EDMA_QUEUES + \
|
||||
NUMBER_OF_MME_QUEUES + \
|
||||
NUMBER_OF_TPC_QUEUES + \
|
||||
NUMBER_OF_NIC_QUEUES + \
|
||||
NUMBER_OF_ROT_QUEUES + \
|
||||
NUMBER_OF_CPU_QUEUES) * \
|
||||
NUM_OF_PQ_PER_QMAN)
|
||||
|
||||
#define NUMBER_OF_QUEUES (NUMBER_OF_CPU_QUEUES + NUMBER_OF_HW_QUEUES)
|
||||
|
||||
#define DCORE_NUM_OF_SOB \
|
||||
(((mmDCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8191 - \
|
||||
mmDCORE0_SYNC_MNGR_OBJS_SOB_OBJ_0) + 4) >> 2)
|
||||
|
||||
#define DCORE_NUM_OF_MONITORS \
|
||||
(((mmDCORE0_SYNC_MNGR_OBJS_MON_STATUS_2047 - \
|
||||
mmDCORE0_SYNC_MNGR_OBJS_MON_STATUS_0) + 4) >> 2)
|
||||
|
||||
#define NUMBER_OF_DEC ((NUM_OF_DEC_PER_DCORE * NUM_OF_DCORES) + NUMBER_OF_PCIE_DEC)
|
||||
|
||||
/* Map all arcs dccm + arc schedulers acp blocks */
|
||||
#define NUM_OF_USER_ACP_BLOCKS (NUM_OF_SCHEDULER_ARC + 2)
|
||||
#define NUM_OF_USER_NIC_UMR_BLOCKS 15
|
||||
#define NUM_OF_EXPOSED_SM_BLOCKS ((NUM_OF_DCORES - 1) * 2)
|
||||
#define NUM_USER_MAPPED_BLOCKS \
|
||||
(NUM_ARC_CPUS + NUM_OF_USER_ACP_BLOCKS + NUMBER_OF_DEC + \
|
||||
NUM_OF_EXPOSED_SM_BLOCKS + \
|
||||
(NIC_NUMBER_OF_ENGINES * NUM_OF_USER_NIC_UMR_BLOCKS))
|
||||
|
||||
/* Within the user mapped array, decoder entries start post all the ARC related
|
||||
* entries
|
||||
*/
|
||||
#define USR_MAPPED_BLK_DEC_START_IDX \
|
||||
(NUM_ARC_CPUS + NUM_OF_USER_ACP_BLOCKS + \
|
||||
(NIC_NUMBER_OF_ENGINES * NUM_OF_USER_NIC_UMR_BLOCKS))
|
||||
|
||||
#define USR_MAPPED_BLK_SM_START_IDX \
|
||||
(NUM_ARC_CPUS + NUM_OF_USER_ACP_BLOCKS + NUMBER_OF_DEC + \
|
||||
(NIC_NUMBER_OF_ENGINES * NUM_OF_USER_NIC_UMR_BLOCKS))
|
||||
|
||||
#define SM_OBJS_BLOCK_SIZE (mmDCORE0_SYNC_MNGR_OBJS_SM_SEC_0 - \
|
||||
mmDCORE0_SYNC_MNGR_OBJS_SOB_OBJ_0)
|
||||
|
||||
#define GAUDI2_MAX_PENDING_CS 64
|
||||
|
||||
#if !IS_MAX_PENDING_CS_VALID(GAUDI2_MAX_PENDING_CS)
|
||||
#error "GAUDI2_MAX_PENDING_CS must be power of 2 and greater than 1"
|
||||
#endif
|
||||
|
||||
#define CORESIGHT_TIMEOUT_USEC 100000 /* 100 ms */
|
||||
|
||||
#define GAUDI2_PREBOOT_REQ_TIMEOUT_USEC 25000000 /* 25s */
|
||||
|
||||
#define GAUDI2_BOOT_FIT_REQ_TIMEOUT_USEC 10000000 /* 10s */
|
||||
|
||||
#define GAUDI2_NIC_CLK_FREQ 450000000ull /* 450 MHz */
|
||||
|
||||
#define DC_POWER_DEFAULT 60000 /* 60W */
|
||||
|
||||
#define GAUDI2_HBM_NUM 6
|
||||
|
||||
#define DMA_MAX_TRANSFER_SIZE U32_MAX
|
||||
|
||||
#define GAUDI2_DEFAULT_CARD_NAME "HL225"
|
||||
|
||||
#define QMAN_STREAMS 4
|
||||
#define PQ_FETCHER_CACHE_SIZE 8
|
||||
#define NUM_OF_MME_SBTE_PORTS 5
|
||||
#define NUM_OF_MME_WB_PORTS 2
|
||||
|
||||
#define GAUDI2_ENGINE_ID_DCORE_OFFSET \
|
||||
(GAUDI2_DCORE1_ENGINE_ID_EDMA_0 - GAUDI2_DCORE0_ENGINE_ID_EDMA_0)
|
||||
|
||||
/* DRAM Memory Map */
|
||||
|
||||
#define CPU_FW_IMAGE_SIZE 0x10000000 /* 256MB */
|
||||
|
||||
/* This define should be used only when working in a debug mode without dram.
|
||||
* When working with dram, the driver size will be calculated dynamically.
|
||||
*/
|
||||
#define NIC_DEFAULT_DRV_SIZE 0x20000000 /* 512MB */
|
||||
|
||||
#define CPU_FW_IMAGE_ADDR DRAM_PHYS_BASE
|
||||
|
||||
#define NIC_NUMBER_OF_PORTS NIC_NUMBER_OF_ENGINES
|
||||
|
||||
#define NUMBER_OF_PCIE_DEC 2
|
||||
#define PCIE_DEC_SHIFT 8
|
||||
|
||||
#define SRAM_USER_BASE_OFFSET 0
|
||||
|
||||
/* cluster binning */
|
||||
#define MAX_FAULTY_HBMS 1
|
||||
#define GAUDI2_XBAR_EDGE_FULL_MASK 0xF
|
||||
#define GAUDI2_EDMA_FULL_MASK 0xFF
|
||||
#define GAUDI2_DRAM_FULL_MASK 0x3F
|
||||
|
||||
/* Host virtual address space. */
|
||||
|
||||
#define VA_HOST_SPACE_PAGE_START 0xFFF0000000000000ull
|
||||
#define VA_HOST_SPACE_PAGE_END 0xFFF0800000000000ull /* 140TB */
|
||||
|
||||
#define VA_HOST_SPACE_HPAGE_START 0xFFF0800000000000ull
|
||||
#define VA_HOST_SPACE_HPAGE_END 0xFFF1000000000000ull /* 140TB */
|
||||
|
||||
#define VA_HOST_SPACE_USER_MAPPED_CB_START 0xFFF1000000000000ull
|
||||
#define VA_HOST_SPACE_USER_MAPPED_CB_END 0xFFF1000100000000ull /* 4GB */
|
||||
|
||||
/* 140TB */
|
||||
#define VA_HOST_SPACE_PAGE_SIZE (VA_HOST_SPACE_PAGE_END - VA_HOST_SPACE_PAGE_START)
|
||||
|
||||
/* 140TB */
|
||||
#define VA_HOST_SPACE_HPAGE_SIZE (VA_HOST_SPACE_HPAGE_END - VA_HOST_SPACE_HPAGE_START)
|
||||
|
||||
#define VA_HOST_SPACE_SIZE (VA_HOST_SPACE_PAGE_SIZE + VA_HOST_SPACE_HPAGE_SIZE)
|
||||
|
||||
#define HOST_SPACE_INTERNAL_CB_SZ SZ_2M
|
||||
|
||||
/*
|
||||
* HBM virtual address space
|
||||
* Gaudi2 has 6 HBM devices, each supporting 16GB total of 96GB at most.
|
||||
* No core separation is supported so we can have one chunk of virtual address
|
||||
* space just above the physical ones.
|
||||
* The virtual address space starts immediately after the end of the physical
|
||||
* address space which is determined at run-time.
|
||||
*/
|
||||
#define VA_HBM_SPACE_END 0x1002000000000000ull
|
||||
|
||||
#define HW_CAP_PLL BIT_ULL(0)
|
||||
#define HW_CAP_DRAM BIT_ULL(1)
|
||||
#define HW_CAP_PMMU BIT_ULL(2)
|
||||
#define HW_CAP_CPU BIT_ULL(3)
|
||||
#define HW_CAP_MSIX BIT_ULL(4)
|
||||
|
||||
#define HW_CAP_CPU_Q BIT_ULL(5)
|
||||
#define HW_CAP_CPU_Q_SHIFT 5
|
||||
|
||||
#define HW_CAP_CLK_GATE BIT_ULL(6)
|
||||
#define HW_CAP_KDMA BIT_ULL(7)
|
||||
#define HW_CAP_SRAM_SCRAMBLER BIT_ULL(8)
|
||||
|
||||
#define HW_CAP_DCORE0_DMMU0 BIT_ULL(9)
|
||||
#define HW_CAP_DCORE0_DMMU1 BIT_ULL(10)
|
||||
#define HW_CAP_DCORE0_DMMU2 BIT_ULL(11)
|
||||
#define HW_CAP_DCORE0_DMMU3 BIT_ULL(12)
|
||||
#define HW_CAP_DCORE1_DMMU0 BIT_ULL(13)
|
||||
#define HW_CAP_DCORE1_DMMU1 BIT_ULL(14)
|
||||
#define HW_CAP_DCORE1_DMMU2 BIT_ULL(15)
|
||||
#define HW_CAP_DCORE1_DMMU3 BIT_ULL(16)
|
||||
#define HW_CAP_DCORE2_DMMU0 BIT_ULL(17)
|
||||
#define HW_CAP_DCORE2_DMMU1 BIT_ULL(18)
|
||||
#define HW_CAP_DCORE2_DMMU2 BIT_ULL(19)
|
||||
#define HW_CAP_DCORE2_DMMU3 BIT_ULL(20)
|
||||
#define HW_CAP_DCORE3_DMMU0 BIT_ULL(21)
|
||||
#define HW_CAP_DCORE3_DMMU1 BIT_ULL(22)
|
||||
#define HW_CAP_DCORE3_DMMU2 BIT_ULL(23)
|
||||
#define HW_CAP_DCORE3_DMMU3 BIT_ULL(24)
|
||||
#define HW_CAP_DMMU_MASK GENMASK_ULL(24, 9)
|
||||
#define HW_CAP_DMMU_SHIFT 9
|
||||
#define HW_CAP_PDMA_MASK BIT_ULL(26)
|
||||
#define HW_CAP_EDMA_MASK GENMASK_ULL(34, 27)
|
||||
#define HW_CAP_EDMA_SHIFT 27
|
||||
#define HW_CAP_MME_MASK GENMASK_ULL(38, 35)
|
||||
#define HW_CAP_MME_SHIFT 35
|
||||
#define HW_CAP_ROT_MASK GENMASK_ULL(40, 39)
|
||||
#define HW_CAP_ROT_SHIFT 39
|
||||
#define HW_CAP_HBM_SCRAMBLER_HW_RESET BIT_ULL(41)
|
||||
#define HW_CAP_HBM_SCRAMBLER_SW_RESET BIT_ULL(42)
|
||||
#define HW_CAP_HBM_SCRAMBLER_MASK (HW_CAP_HBM_SCRAMBLER_HW_RESET | \
|
||||
HW_CAP_HBM_SCRAMBLER_SW_RESET)
|
||||
#define HW_CAP_HBM_SCRAMBLER_SHIFT 41
|
||||
#define HW_CAP_RESERVED BIT(43)
|
||||
#define HW_CAP_MMU_MASK (HW_CAP_PMMU | HW_CAP_DMMU_MASK)
|
||||
|
||||
/* Range Registers */
|
||||
#define RR_TYPE_SHORT 0
|
||||
#define RR_TYPE_LONG 1
|
||||
#define RR_TYPE_SHORT_PRIV 2
|
||||
#define RR_TYPE_LONG_PRIV 3
|
||||
#define NUM_SHORT_LBW_RR 14
|
||||
#define NUM_LONG_LBW_RR 4
|
||||
#define NUM_SHORT_HBW_RR 6
|
||||
#define NUM_LONG_HBW_RR 4
|
||||
|
||||
/* RAZWI initiator coordinates- X- 5 bits, Y- 4 bits */
|
||||
#define RAZWI_INITIATOR_X_SHIFT 0
|
||||
#define RAZWI_INITIATOR_X_MASK 0x1F
|
||||
#define RAZWI_INITIATOR_Y_SHIFT 5
|
||||
#define RAZWI_INITIATOR_Y_MASK 0xF
|
||||
|
||||
#define RTR_ID_X_Y(x, y) \
|
||||
((((y) & RAZWI_INITIATOR_Y_MASK) << RAZWI_INITIATOR_Y_SHIFT) | \
|
||||
(((x) & RAZWI_INITIATOR_X_MASK) << RAZWI_INITIATOR_X_SHIFT))
|
||||
|
||||
/* decoders have separate mask */
|
||||
#define HW_CAP_DEC_SHIFT 0
|
||||
#define HW_CAP_DEC_MASK GENMASK_ULL(9, 0)
|
||||
|
||||
/* TPCs have separate mask */
|
||||
#define HW_CAP_TPC_SHIFT 0
|
||||
#define HW_CAP_TPC_MASK GENMASK_ULL(24, 0)
|
||||
|
||||
/* nics have separate mask */
|
||||
#define HW_CAP_NIC_SHIFT 0
|
||||
#define HW_CAP_NIC_MASK GENMASK_ULL(NIC_NUMBER_OF_ENGINES - 1, 0)
|
||||
|
||||
#define GAUDI2_ARC_PCI_MSB_ADDR(addr) (((addr) & GENMASK_ULL(49, 28)) >> 28)
|
||||
|
||||
#define GAUDI2_SOB_INCREMENT_BY_ONE (FIELD_PREP(DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_VAL_MASK, 1) | \
|
||||
FIELD_PREP(DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_INC_MASK, 1))
|
||||
|
||||
enum gaudi2_reserved_sob_id {
|
||||
GAUDI2_RESERVED_SOB_CS_COMPLETION_FIRST,
|
||||
GAUDI2_RESERVED_SOB_CS_COMPLETION_LAST =
|
||||
GAUDI2_RESERVED_SOB_CS_COMPLETION_FIRST + GAUDI2_MAX_PENDING_CS - 1,
|
||||
GAUDI2_RESERVED_SOB_KDMA_COMPLETION,
|
||||
GAUDI2_RESERVED_SOB_DEC_NRM_FIRST,
|
||||
GAUDI2_RESERVED_SOB_DEC_NRM_LAST =
|
||||
GAUDI2_RESERVED_SOB_DEC_NRM_FIRST + NUMBER_OF_DEC - 1,
|
||||
GAUDI2_RESERVED_SOB_DEC_ABNRM_FIRST,
|
||||
GAUDI2_RESERVED_SOB_DEC_ABNRM_LAST =
|
||||
GAUDI2_RESERVED_SOB_DEC_ABNRM_FIRST + NUMBER_OF_DEC - 1,
|
||||
GAUDI2_RESERVED_SOB_NUMBER
|
||||
};
|
||||
|
||||
enum gaudi2_reserved_mon_id {
|
||||
GAUDI2_RESERVED_MON_CS_COMPLETION_FIRST,
|
||||
GAUDI2_RESERVED_MON_CS_COMPLETION_LAST =
|
||||
GAUDI2_RESERVED_MON_CS_COMPLETION_FIRST + GAUDI2_MAX_PENDING_CS - 1,
|
||||
GAUDI2_RESERVED_MON_KDMA_COMPLETION,
|
||||
GAUDI2_RESERVED_MON_DEC_NRM_FIRST,
|
||||
GAUDI2_RESERVED_MON_DEC_NRM_LAST =
|
||||
GAUDI2_RESERVED_MON_DEC_NRM_FIRST + 3 * NUMBER_OF_DEC - 1,
|
||||
GAUDI2_RESERVED_MON_DEC_ABNRM_FIRST,
|
||||
GAUDI2_RESERVED_MON_DEC_ABNRM_LAST =
|
||||
GAUDI2_RESERVED_MON_DEC_ABNRM_FIRST + 3 * NUMBER_OF_DEC - 1,
|
||||
GAUDI2_RESERVED_MON_NUMBER
|
||||
};
|
||||
|
||||
enum gaudi2_reserved_cq_id {
|
||||
GAUDI2_RESERVED_CQ_CS_COMPLETION,
|
||||
GAUDI2_RESERVED_CQ_KDMA_COMPLETION,
|
||||
GAUDI2_RESERVED_CQ_NUMBER
|
||||
};
|
||||
|
||||
/*
|
||||
* Gaudi2 subtitute TPCs Numbering
|
||||
* At most- two faulty TPCs are allowed
|
||||
* First replacement to a faulty TPC will be TPC24, second- TPC23
|
||||
*/
|
||||
enum substitude_tpc {
|
||||
FAULTY_TPC_SUBTS_1_TPC_24,
|
||||
FAULTY_TPC_SUBTS_2_TPC_23,
|
||||
MAX_FAULTY_TPCS
|
||||
};
|
||||
|
||||
enum gaudi2_dma_core_id {
|
||||
DMA_CORE_ID_PDMA0, /* Dcore 0 */
|
||||
DMA_CORE_ID_PDMA1, /* Dcore 0 */
|
||||
DMA_CORE_ID_EDMA0, /* Dcore 0 */
|
||||
DMA_CORE_ID_EDMA1, /* Dcore 0 */
|
||||
DMA_CORE_ID_EDMA2, /* Dcore 1 */
|
||||
DMA_CORE_ID_EDMA3, /* Dcore 1 */
|
||||
DMA_CORE_ID_EDMA4, /* Dcore 2 */
|
||||
DMA_CORE_ID_EDMA5, /* Dcore 2 */
|
||||
DMA_CORE_ID_EDMA6, /* Dcore 3 */
|
||||
DMA_CORE_ID_EDMA7, /* Dcore 3 */
|
||||
DMA_CORE_ID_KDMA, /* Dcore 0 */
|
||||
DMA_CORE_ID_SIZE
|
||||
};
|
||||
|
||||
enum gaudi2_rotator_id {
|
||||
ROTATOR_ID_0,
|
||||
ROTATOR_ID_1,
|
||||
ROTATOR_ID_SIZE,
|
||||
};
|
||||
|
||||
enum gaudi2_mme_id {
|
||||
MME_ID_DCORE0,
|
||||
MME_ID_DCORE1,
|
||||
MME_ID_DCORE2,
|
||||
MME_ID_DCORE3,
|
||||
MME_ID_SIZE,
|
||||
};
|
||||
|
||||
enum gaudi2_tpc_id {
|
||||
TPC_ID_DCORE0_TPC0,
|
||||
TPC_ID_DCORE0_TPC1,
|
||||
TPC_ID_DCORE0_TPC2,
|
||||
TPC_ID_DCORE0_TPC3,
|
||||
TPC_ID_DCORE0_TPC4,
|
||||
TPC_ID_DCORE0_TPC5,
|
||||
TPC_ID_DCORE1_TPC0,
|
||||
TPC_ID_DCORE1_TPC1,
|
||||
TPC_ID_DCORE1_TPC2,
|
||||
TPC_ID_DCORE1_TPC3,
|
||||
TPC_ID_DCORE1_TPC4,
|
||||
TPC_ID_DCORE1_TPC5,
|
||||
TPC_ID_DCORE2_TPC0,
|
||||
TPC_ID_DCORE2_TPC1,
|
||||
TPC_ID_DCORE2_TPC2,
|
||||
TPC_ID_DCORE2_TPC3,
|
||||
TPC_ID_DCORE2_TPC4,
|
||||
TPC_ID_DCORE2_TPC5,
|
||||
TPC_ID_DCORE3_TPC0,
|
||||
TPC_ID_DCORE3_TPC1,
|
||||
TPC_ID_DCORE3_TPC2,
|
||||
TPC_ID_DCORE3_TPC3,
|
||||
TPC_ID_DCORE3_TPC4,
|
||||
TPC_ID_DCORE3_TPC5,
|
||||
/* the PCI TPC is placed last (mapped liked HW) */
|
||||
TPC_ID_DCORE0_TPC6,
|
||||
TPC_ID_SIZE,
|
||||
};
|
||||
|
||||
enum gaudi2_dec_id {
|
||||
DEC_ID_DCORE0_DEC0,
|
||||
DEC_ID_DCORE0_DEC1,
|
||||
DEC_ID_DCORE1_DEC0,
|
||||
DEC_ID_DCORE1_DEC1,
|
||||
DEC_ID_DCORE2_DEC0,
|
||||
DEC_ID_DCORE2_DEC1,
|
||||
DEC_ID_DCORE3_DEC0,
|
||||
DEC_ID_DCORE3_DEC1,
|
||||
DEC_ID_PCIE_VDEC0,
|
||||
DEC_ID_PCIE_VDEC1,
|
||||
DEC_ID_SIZE,
|
||||
};
|
||||
|
||||
enum gaudi2_hbm_id {
|
||||
HBM_ID0,
|
||||
HBM_ID1,
|
||||
HBM_ID2,
|
||||
HBM_ID3,
|
||||
HBM_ID4,
|
||||
HBM_ID5,
|
||||
HBM_ID_SIZE,
|
||||
};
|
||||
|
||||
/* specific EDMA enumeration */
|
||||
enum gaudi2_edma_id {
|
||||
EDMA_ID_DCORE0_INSTANCE0,
|
||||
EDMA_ID_DCORE0_INSTANCE1,
|
||||
EDMA_ID_DCORE1_INSTANCE0,
|
||||
EDMA_ID_DCORE1_INSTANCE1,
|
||||
EDMA_ID_DCORE2_INSTANCE0,
|
||||
EDMA_ID_DCORE2_INSTANCE1,
|
||||
EDMA_ID_DCORE3_INSTANCE0,
|
||||
EDMA_ID_DCORE3_INSTANCE1,
|
||||
EDMA_ID_SIZE,
|
||||
};
|
||||
|
||||
/* User interrupt count is aligned with HW CQ count.
|
||||
* We have 64 CQ's per dcore, CQ0 in dcore 0 is reserved for legacy mode
|
||||
*/
|
||||
#define GAUDI2_NUM_USER_INTERRUPTS 255
|
||||
|
||||
enum gaudi2_irq_num {
|
||||
GAUDI2_IRQ_NUM_EVENT_QUEUE = GAUDI2_EVENT_QUEUE_MSIX_IDX,
|
||||
GAUDI2_IRQ_NUM_DCORE0_DEC0_NRM,
|
||||
GAUDI2_IRQ_NUM_DCORE0_DEC0_ABNRM,
|
||||
GAUDI2_IRQ_NUM_DCORE0_DEC1_NRM,
|
||||
GAUDI2_IRQ_NUM_DCORE0_DEC1_ABNRM,
|
||||
GAUDI2_IRQ_NUM_DCORE1_DEC0_NRM,
|
||||
GAUDI2_IRQ_NUM_DCORE1_DEC0_ABNRM,
|
||||
GAUDI2_IRQ_NUM_DCORE1_DEC1_NRM,
|
||||
GAUDI2_IRQ_NUM_DCORE1_DEC1_ABNRM,
|
||||
GAUDI2_IRQ_NUM_DCORE2_DEC0_NRM,
|
||||
GAUDI2_IRQ_NUM_DCORE2_DEC0_ABNRM,
|
||||
GAUDI2_IRQ_NUM_DCORE2_DEC1_NRM,
|
||||
GAUDI2_IRQ_NUM_DCORE2_DEC1_ABNRM,
|
||||
GAUDI2_IRQ_NUM_DCORE3_DEC0_NRM,
|
||||
GAUDI2_IRQ_NUM_DCORE3_DEC0_ABNRM,
|
||||
GAUDI2_IRQ_NUM_DCORE3_DEC1_NRM,
|
||||
GAUDI2_IRQ_NUM_DCORE3_DEC1_ABNRM,
|
||||
GAUDI2_IRQ_NUM_SHARED_DEC0_NRM,
|
||||
GAUDI2_IRQ_NUM_SHARED_DEC0_ABNRM,
|
||||
GAUDI2_IRQ_NUM_SHARED_DEC1_NRM,
|
||||
GAUDI2_IRQ_NUM_SHARED_DEC1_ABNRM,
|
||||
GAUDI2_IRQ_NUM_COMPLETION,
|
||||
GAUDI2_IRQ_NUM_NIC_PORT_FIRST,
|
||||
GAUDI2_IRQ_NUM_NIC_PORT_LAST = (GAUDI2_IRQ_NUM_NIC_PORT_FIRST + NIC_NUMBER_OF_PORTS - 1),
|
||||
GAUDI2_IRQ_NUM_RESERVED_FIRST,
|
||||
GAUDI2_IRQ_NUM_RESERVED_LAST = (GAUDI2_MSIX_ENTRIES - GAUDI2_NUM_USER_INTERRUPTS - 1),
|
||||
GAUDI2_IRQ_NUM_USER_FIRST,
|
||||
GAUDI2_IRQ_NUM_USER_LAST = (GAUDI2_IRQ_NUM_USER_FIRST + GAUDI2_NUM_USER_INTERRUPTS - 1),
|
||||
GAUDI2_IRQ_NUM_LAST = (GAUDI2_MSIX_ENTRIES - 1)
|
||||
};
|
||||
|
||||
static_assert(GAUDI2_IRQ_NUM_USER_FIRST > GAUDI2_IRQ_NUM_SHARED_DEC1_ABNRM);
|
||||
|
||||
/**
|
||||
* struct dup_block_ctx - context to initialize unit instances across multiple
|
||||
* blocks where block can be either a dcore of duplicated
|
||||
* common module. this code relies on constant offsets
|
||||
* of blocks and unit instances in a block.
|
||||
* @instance_cfg_fn: instance specific configuration function.
|
||||
* @data: private configuration data.
|
||||
* @base: base address of the first instance in the first block.
|
||||
* @block_off: subsequent blocks address spacing.
|
||||
* @instance_off: subsequent block's instances address spacing.
|
||||
* @enabled_mask: mask of enabled instances (1- enabled, 0- disabled).
|
||||
* @blocks: number of blocks.
|
||||
* @instances: unit instances per block.
|
||||
*/
|
||||
struct dup_block_ctx {
|
||||
void (*instance_cfg_fn)(struct hl_device *hdev, u64 base, void *data);
|
||||
void *data;
|
||||
u64 base;
|
||||
u64 block_off;
|
||||
u64 instance_off;
|
||||
u64 enabled_mask;
|
||||
unsigned int blocks;
|
||||
unsigned int instances;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct gaudi2_device - ASIC specific manage structure.
|
||||
* @cpucp_info_get: get information on device from CPU-CP
|
||||
* @mapped_blocks: array that holds the base address and size of all blocks
|
||||
* the user can map.
|
||||
* @lfsr_rand_seeds: array of MME ACC random seeds to set.
|
||||
* @hw_queues_lock: protects the H/W queues from concurrent access.
|
||||
* @kdma_lock: protects the KDMA engine from concurrent access.
|
||||
* @scratchpad_kernel_address: general purpose PAGE_SIZE contiguous memory,
|
||||
* this memory region should be write-only.
|
||||
* currently used for HBW QMAN writes which is
|
||||
* redundant.
|
||||
* @scratchpad_bus_address: scratchpad bus address
|
||||
* @virt_msix_db_cpu_addr: host memory page for the virtual MSI-X doorbell.
|
||||
* @virt_msix_db_dma_addr: bus address of the page for the virtual MSI-X doorbell.
|
||||
* @dram_bar_cur_addr: current address of DRAM PCI bar.
|
||||
* @hw_cap_initialized: This field contains a bit per H/W engine. When that
|
||||
* engine is initialized, that bit is set by the driver to
|
||||
* signal we can use this engine in later code paths.
|
||||
* Each bit is cleared upon reset of its corresponding H/W
|
||||
* engine.
|
||||
* @active_hw_arc: This field contains a bit per ARC of an H/W engine with
|
||||
* exception of TPC and NIC engines. Once an engine arc is
|
||||
* initialized, its respective bit is set. Driver can uniquely
|
||||
* identify each initialized ARC and use this information in
|
||||
* later code paths. Each respective bit is cleared upon reset
|
||||
* of its corresponding ARC of the H/W engine.
|
||||
* @dec_hw_cap_initialized: This field contains a bit per decoder H/W engine.
|
||||
* When that engine is initialized, that bit is set by
|
||||
* the driver to signal we can use this engine in later
|
||||
* code paths.
|
||||
* Each bit is cleared upon reset of its corresponding H/W
|
||||
* engine.
|
||||
* @tpc_hw_cap_initialized: This field contains a bit per TPC H/W engine.
|
||||
* When that engine is initialized, that bit is set by
|
||||
* the driver to signal we can use this engine in later
|
||||
* code paths.
|
||||
* Each bit is cleared upon reset of its corresponding H/W
|
||||
* engine.
|
||||
* @active_tpc_arc: This field contains a bit per ARC of the TPC engines.
|
||||
* Once an engine arc is initialized, its respective bit is
|
||||
* set. Each respective bit is cleared upon reset of its
|
||||
* corresponding ARC of the TPC engine.
|
||||
* @nic_hw_cap_initialized: This field contains a bit per nic H/W engine.
|
||||
* @active_nic_arc: This field contains a bit per ARC of the NIC engines.
|
||||
* Once an engine arc is initialized, its respective bit is
|
||||
* set. Each respective bit is cleared upon reset of its
|
||||
* corresponding ARC of the NIC engine.
|
||||
* @hw_events: array that holds all H/W events that are defined valid.
|
||||
* @events_stat: array that holds histogram of all received events.
|
||||
* @events_stat_aggregate: same as events_stat but doesn't get cleared on reset.
|
||||
* @num_of_valid_hw_events: used to hold the number of valid H/W events.
|
||||
* @nic_ports: array that holds all NIC ports manage structures.
|
||||
* @nic_macros: array that holds all NIC macro manage structures.
|
||||
* @core_info: core info to be used by the Ethernet driver.
|
||||
* @aux_ops: functions for core <-> aux drivers communication.
|
||||
* @flush_db_fifo: flag to force flush DB FIFO after a write.
|
||||
* @hbm_cfg: HBM subsystem settings
|
||||
* @hw_queues_lock_mutex: used by simulator instead of hw_queues_lock.
|
||||
* @kdma_lock_mutex: used by simulator instead of kdma_lock.
|
||||
* @use_deprecated_event_mappings: use old event mappings which are about to be
|
||||
* deprecated
|
||||
*/
|
||||
struct gaudi2_device {
|
||||
int (*cpucp_info_get)(struct hl_device *hdev);
|
||||
|
||||
struct user_mapped_block mapped_blocks[NUM_USER_MAPPED_BLOCKS];
|
||||
int lfsr_rand_seeds[MME_NUM_OF_LFSR_SEEDS];
|
||||
|
||||
spinlock_t hw_queues_lock;
|
||||
spinlock_t kdma_lock;
|
||||
|
||||
void *scratchpad_kernel_address;
|
||||
dma_addr_t scratchpad_bus_address;
|
||||
|
||||
void *virt_msix_db_cpu_addr;
|
||||
dma_addr_t virt_msix_db_dma_addr;
|
||||
|
||||
u64 dram_bar_cur_addr;
|
||||
u64 hw_cap_initialized;
|
||||
u64 active_hw_arc;
|
||||
u64 dec_hw_cap_initialized;
|
||||
u64 tpc_hw_cap_initialized;
|
||||
u64 active_tpc_arc;
|
||||
u64 nic_hw_cap_initialized;
|
||||
u64 active_nic_arc;
|
||||
u32 hw_events[GAUDI2_EVENT_SIZE];
|
||||
u32 events_stat[GAUDI2_EVENT_SIZE];
|
||||
u32 events_stat_aggregate[GAUDI2_EVENT_SIZE];
|
||||
u32 num_of_valid_hw_events;
|
||||
};
|
||||
|
||||
extern const u32 gaudi2_dma_core_blocks_bases[DMA_CORE_ID_SIZE];
|
||||
extern const u32 gaudi2_qm_blocks_bases[GAUDI2_QUEUE_ID_SIZE];
|
||||
extern const u32 gaudi2_mme_acc_blocks_bases[MME_ID_SIZE];
|
||||
extern const u32 gaudi2_mme_ctrl_lo_blocks_bases[MME_ID_SIZE];
|
||||
extern const u32 edma_stream_base[NUM_OF_EDMA_PER_DCORE * NUM_OF_DCORES];
|
||||
extern const u32 gaudi2_rot_blocks_bases[ROTATOR_ID_SIZE];
|
||||
|
||||
void gaudi2_iterate_tpcs(struct hl_device *hdev, struct iterate_module_ctx *ctx);
|
||||
int gaudi2_coresight_init(struct hl_device *hdev);
|
||||
int gaudi2_debug_coresight(struct hl_device *hdev, struct hl_ctx *ctx, void *data);
|
||||
void gaudi2_halt_coresight(struct hl_device *hdev, struct hl_ctx *ctx);
|
||||
void gaudi2_init_blocks(struct hl_device *hdev, struct dup_block_ctx *cfg_ctx);
|
||||
bool gaudi2_is_hmmu_enabled(struct hl_device *hdev, int dcore_id, int hmmu_id);
|
||||
void gaudi2_write_rr_to_all_lbw_rtrs(struct hl_device *hdev, u8 rr_type, u32 rr_index, u64 min_val,
|
||||
u64 max_val);
|
||||
void gaudi2_pb_print_security_errors(struct hl_device *hdev, u32 block_addr, u32 cause,
|
||||
u32 offended_addr);
|
||||
int gaudi2_init_security(struct hl_device *hdev);
|
||||
void gaudi2_ack_protection_bits_errors(struct hl_device *hdev);
|
||||
|
||||
#endif /* GAUDI2P_H_ */
|
2720
drivers/misc/habanalabs/gaudi2/gaudi2_coresight.c
Normal file
2720
drivers/misc/habanalabs/gaudi2/gaudi2_coresight.c
Normal file
File diff suppressed because it is too large
Load Diff
1063
drivers/misc/habanalabs/gaudi2/gaudi2_coresight_regs.h
Normal file
1063
drivers/misc/habanalabs/gaudi2/gaudi2_coresight_regs.h
Normal file
File diff suppressed because it is too large
Load Diff
141
drivers/misc/habanalabs/gaudi2/gaudi2_masks.h
Normal file
141
drivers/misc/habanalabs/gaudi2/gaudi2_masks.h
Normal file
@ -0,0 +1,141 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2020-2022 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef GAUDI2_MASKS_H_
|
||||
#define GAUDI2_MASKS_H_
|
||||
|
||||
#include "../include/gaudi2/asic_reg/gaudi2_regs.h"
|
||||
|
||||
/* Useful masks for bits in various registers */
|
||||
#define QMAN_GLBL_ERR_CFG_MSG_EN_MASK \
|
||||
((0xF << PDMA0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
|
||||
(0x1F << PDMA0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
|
||||
(0x1F << PDMA0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT))
|
||||
|
||||
#define QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK \
|
||||
((0xF << PDMA0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
|
||||
(0x1F << PDMA0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
|
||||
(0x1F << PDMA0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT) | \
|
||||
(0x1 << PDMA0_QM_GLBL_ERR_CFG_ARB_STOP_ON_ERR_SHIFT))
|
||||
|
||||
#define QMAN_GLBL_ERR_CFG1_MSG_EN_MASK \
|
||||
(0x1 << PDMA0_QM_GLBL_ERR_CFG1_CQF_ERR_MSG_EN_SHIFT)
|
||||
|
||||
#define QMAN_GLBL_ERR_CFG1_STOP_ON_ERR_EN_MASK \
|
||||
((0x1 << PDMA0_QM_GLBL_ERR_CFG1_CQF_STOP_ON_ERR_SHIFT) | \
|
||||
(0x1 << PDMA0_QM_GLBL_ERR_CFG1_ARC_STOP_ON_ERR_SHIFT))
|
||||
|
||||
#define QM_PQC_LBW_WDATA \
|
||||
((1 << DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_VAL_SHIFT) | \
|
||||
(1 << DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_INC_SHIFT))
|
||||
|
||||
#define QMAN_MAKE_TRUSTED \
|
||||
((0xF << PDMA0_QM_GLBL_PROT_PQF_SHIFT) | \
|
||||
(0x1 << PDMA0_QM_GLBL_PROT_ERR_SHIFT) | \
|
||||
(0x1 << PDMA0_QM_GLBL_PROT_PQC_SHIFT))
|
||||
|
||||
#define QMAN_MAKE_TRUSTED_TEST_MODE \
|
||||
((0xF << PDMA0_QM_GLBL_PROT_PQF_SHIFT) | \
|
||||
(0xF << PDMA0_QM_GLBL_PROT_CQF_SHIFT) | \
|
||||
(0xF << PDMA0_QM_GLBL_PROT_CP_SHIFT) | \
|
||||
(0x1 << PDMA0_QM_GLBL_PROT_ERR_SHIFT) | \
|
||||
(0x1 << PDMA0_QM_GLBL_PROT_PQC_SHIFT))
|
||||
|
||||
#define QMAN_ENABLE \
|
||||
((0xF << PDMA0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
|
||||
(0x1F << PDMA0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
|
||||
(0x1F << PDMA0_QM_GLBL_CFG0_CP_EN_SHIFT) | \
|
||||
(0x1 << PDMA0_QM_GLBL_CFG0_ARC_CQF_EN_SHIFT))
|
||||
|
||||
#define PDMA1_QMAN_ENABLE \
|
||||
((0x3 << PDMA0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
|
||||
(0x1F << PDMA0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
|
||||
(0x1F << PDMA0_QM_GLBL_CFG0_CP_EN_SHIFT) | \
|
||||
(0x1 << PDMA0_QM_GLBL_CFG0_ARC_CQF_EN_SHIFT))
|
||||
|
||||
/* QM_IDLE_MASK is valid for all engines QM idle check */
|
||||
#define QM_IDLE_MASK (DCORE0_EDMA0_QM_GLBL_STS0_PQF_IDLE_MASK | \
|
||||
DCORE0_EDMA0_QM_GLBL_STS0_CQF_IDLE_MASK | \
|
||||
DCORE0_EDMA0_QM_GLBL_STS0_CP_IDLE_MASK)
|
||||
|
||||
#define QM_ARC_IDLE_MASK DCORE0_EDMA0_QM_GLBL_STS1_ARC_CQF_IDLE_MASK
|
||||
|
||||
#define MME_ARCH_IDLE_MASK \
|
||||
(DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_EMPTY_MASK | \
|
||||
DCORE0_MME_CTRL_LO_ARCH_STATUS_AGU_COUT_SM_IDLE_MASK | \
|
||||
DCORE0_MME_CTRL_LO_ARCH_STATUS_WBC_AXI_IDLE_MASK | \
|
||||
DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_AXI_IDLE_MASK | \
|
||||
DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_IDLE_MASK | \
|
||||
DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_RDY_MASK)
|
||||
|
||||
#define TPC_IDLE_MASK (DCORE0_TPC0_CFG_STATUS_SCALAR_PIPE_EMPTY_MASK | \
|
||||
DCORE0_TPC0_CFG_STATUS_VECTOR_PIPE_EMPTY_MASK | \
|
||||
DCORE0_TPC0_CFG_STATUS_IQ_EMPTY_MASK | \
|
||||
DCORE0_TPC0_CFG_STATUS_SB_EMPTY_MASK | \
|
||||
DCORE0_TPC0_CFG_STATUS_QM_IDLE_MASK | \
|
||||
DCORE0_TPC0_CFG_STATUS_QM_RDY_MASK)
|
||||
|
||||
#define DCORE0_TPC0_QM_CGM_STS_AGENT_IDLE_MASK 0x100
|
||||
|
||||
/* CGM_IDLE_MASK is valid for all engines CGM idle check */
|
||||
#define CGM_IDLE_MASK DCORE0_TPC0_QM_CGM_STS_AGENT_IDLE_MASK
|
||||
|
||||
#define QM_GLBL_CFG1_PQF_STOP PDMA0_QM_GLBL_CFG1_PQF_STOP_MASK
|
||||
#define QM_GLBL_CFG1_CQF_STOP PDMA0_QM_GLBL_CFG1_CQF_STOP_MASK
|
||||
#define QM_GLBL_CFG1_CP_STOP PDMA0_QM_GLBL_CFG1_CP_STOP_MASK
|
||||
#define QM_GLBL_CFG1_PQF_FLUSH PDMA0_QM_GLBL_CFG1_PQF_FLUSH_MASK
|
||||
#define QM_GLBL_CFG1_CQF_FLUSH PDMA0_QM_GLBL_CFG1_CQF_FLUSH_MASK
|
||||
#define QM_GLBL_CFG1_CP_FLUSH PDMA0_QM_GLBL_CFG1_CP_FLUSH_MASK
|
||||
|
||||
#define QM_GLBL_CFG2_ARC_CQF_STOP PDMA0_QM_GLBL_CFG2_ARC_CQF_STOP_MASK
|
||||
#define QM_GLBL_CFG2_ARC_CQF_FLUSH PDMA0_QM_GLBL_CFG2_ARC_CQF_FLUSH_MASK
|
||||
|
||||
#define QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK 0x1
|
||||
#define QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK 0x2
|
||||
#define QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK 0x4
|
||||
|
||||
#define QM_ARB_ERR_MSG_EN_MASK (\
|
||||
QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK |\
|
||||
QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK |\
|
||||
QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK)
|
||||
|
||||
#define PCIE_AUX_FLR_CTRL_HW_CTRL_MASK 0x1
|
||||
#define PCIE_AUX_FLR_CTRL_INT_MASK_MASK 0x2
|
||||
|
||||
#define MME_ACC_INTR_MASK_WBC_ERR_RESP_MASK GENMASK(1, 0)
|
||||
#define MME_ACC_INTR_MASK_AP_SRC_POS_INF_MASK BIT(2)
|
||||
#define MME_ACC_INTR_MASK_AP_SRC_NEG_INF_MASK BIT(3)
|
||||
#define MME_ACC_INTR_MASK_AP_SRC_NAN_MASK BIT(4)
|
||||
#define MME_ACC_INTR_MASK_AP_RESULT_POS_INF_MASK BIT(5)
|
||||
#define MME_ACC_INTR_MASK_AP_RESULT_NEG_INF_MASK BIT(6)
|
||||
|
||||
#define SM_CQ_L2H_MASK_VAL 0xFFFFFFFFFC000000ull
|
||||
#define SM_CQ_L2H_CMPR_VAL 0x1000007FFC000000ull
|
||||
#define SM_CQ_L2H_LOW_MASK GENMASK(31, 20)
|
||||
#define SM_CQ_L2H_LOW_SHIFT 20
|
||||
|
||||
#define MMU_STATIC_MULTI_PAGE_SIZE_HOP4_PAGE_SIZE_MASK \
|
||||
REG_FIELD_MASK(DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE, HOP4_PAGE_SIZE)
|
||||
#define STLB_HOP_CONFIGURATION_ONLY_LARGE_PAGE_MASK \
|
||||
REG_FIELD_MASK(DCORE0_HMMU0_STLB_HOP_CONFIGURATION, ONLY_LARGE_PAGE)
|
||||
|
||||
#define AXUSER_HB_SEC_ASID_MASK 0x3FF
|
||||
#define AXUSER_HB_SEC_MMBP_MASK 0x400
|
||||
|
||||
#define MMUBP_ASID_MASK (AXUSER_HB_SEC_ASID_MASK | AXUSER_HB_SEC_MMBP_MASK)
|
||||
|
||||
#define ROT_MSS_HALT_WBC_MASK BIT(0)
|
||||
#define ROT_MSS_HALT_RSB_MASK BIT(1)
|
||||
#define ROT_MSS_HALT_MRSB_MASK BIT(2)
|
||||
|
||||
#define PCIE_DBI_MSIX_ADDRESS_MATCH_LOW_OFF_MSIX_ADDRESS_MATCH_EN_SHIFT 0
|
||||
#define PCIE_DBI_MSIX_ADDRESS_MATCH_LOW_OFF_MSIX_ADDRESS_MATCH_EN_MASK 0x1
|
||||
|
||||
#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_SIGN_SHIFT 15
|
||||
#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_SIGN_MASK 0x8000
|
||||
|
||||
#endif /* GAUDI2_MASKS_H_ */
|
3849
drivers/misc/habanalabs/gaudi2/gaudi2_security.c
Normal file
3849
drivers/misc/habanalabs/gaudi2/gaudi2_security.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -389,11 +389,12 @@ int goya_set_fixed_properties(struct hl_device *hdev)
|
||||
prop->hw_queues_props[i].cb_alloc_flags = CB_ALLOC_USER;
|
||||
}
|
||||
|
||||
prop->cfg_base_address = CFG_BASE;
|
||||
prop->device_dma_offset_for_host_access = HOST_PHYS_BASE;
|
||||
prop->host_base_address = HOST_PHYS_BASE;
|
||||
prop->host_end_address = prop->host_base_address + HOST_PHYS_SIZE;
|
||||
prop->completion_queues_count = NUMBER_OF_CMPLT_QUEUES;
|
||||
|
||||
prop->completion_mode = HL_COMPLETION_MODE_JOB;
|
||||
prop->dram_base_address = DRAM_PHYS_BASE;
|
||||
prop->dram_size = DRAM_PHYS_DEFAULT_SIZE;
|
||||
prop->dram_end_address = prop->dram_base_address + prop->dram_size;
|
||||
@ -470,7 +471,7 @@ int goya_set_fixed_properties(struct hl_device *hdev)
|
||||
|
||||
prop->max_pending_cs = GOYA_MAX_PENDING_CS;
|
||||
|
||||
prop->first_available_user_msix_interrupt = USHRT_MAX;
|
||||
prop->first_available_user_interrupt = USHRT_MAX;
|
||||
|
||||
for (i = 0 ; i < HL_MAX_DCORES ; i++)
|
||||
prop->first_available_cq[i] = USHRT_MAX;
|
||||
@ -608,6 +609,7 @@ static int goya_early_init(struct hl_device *hdev)
|
||||
{
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
struct pci_dev *pdev = hdev->pdev;
|
||||
resource_size_t pci_bar_size;
|
||||
u32 fw_boot_status, val;
|
||||
int rc;
|
||||
|
||||
@ -618,24 +620,20 @@ static int goya_early_init(struct hl_device *hdev)
|
||||
}
|
||||
|
||||
/* Check BAR sizes */
|
||||
if (pci_resource_len(pdev, SRAM_CFG_BAR_ID) != CFG_BAR_SIZE) {
|
||||
dev_err(hdev->dev,
|
||||
"Not " HL_NAME "? BAR %d size %llu, expecting %llu\n",
|
||||
SRAM_CFG_BAR_ID,
|
||||
(unsigned long long) pci_resource_len(pdev,
|
||||
SRAM_CFG_BAR_ID),
|
||||
CFG_BAR_SIZE);
|
||||
pci_bar_size = pci_resource_len(pdev, SRAM_CFG_BAR_ID);
|
||||
|
||||
if (pci_bar_size != CFG_BAR_SIZE) {
|
||||
dev_err(hdev->dev, "Not " HL_NAME "? BAR %d size %pa, expecting %llu\n",
|
||||
SRAM_CFG_BAR_ID, &pci_bar_size, CFG_BAR_SIZE);
|
||||
rc = -ENODEV;
|
||||
goto free_queue_props;
|
||||
}
|
||||
|
||||
if (pci_resource_len(pdev, MSIX_BAR_ID) != MSIX_BAR_SIZE) {
|
||||
dev_err(hdev->dev,
|
||||
"Not " HL_NAME "? BAR %d size %llu, expecting %llu\n",
|
||||
MSIX_BAR_ID,
|
||||
(unsigned long long) pci_resource_len(pdev,
|
||||
MSIX_BAR_ID),
|
||||
MSIX_BAR_SIZE);
|
||||
pci_bar_size = pci_resource_len(pdev, MSIX_BAR_ID);
|
||||
|
||||
if (pci_bar_size != MSIX_BAR_SIZE) {
|
||||
dev_err(hdev->dev, "Not " HL_NAME "? BAR %d size %pa, expecting %llu\n",
|
||||
MSIX_BAR_ID, &pci_bar_size, MSIX_BAR_SIZE);
|
||||
rc = -ENODEV;
|
||||
goto free_queue_props;
|
||||
}
|
||||
@ -667,11 +665,7 @@ pci_init:
|
||||
/* Before continuing in the initialization, we need to read the preboot
|
||||
* version to determine whether we run with a security-enabled firmware
|
||||
*/
|
||||
rc = hl_fw_read_preboot_status(hdev, mmPSOC_GLOBAL_CONF_CPU_BOOT_STATUS,
|
||||
mmCPU_BOOT_DEV_STS0,
|
||||
mmCPU_BOOT_DEV_STS1, mmCPU_BOOT_ERR0,
|
||||
mmCPU_BOOT_ERR1,
|
||||
GOYA_BOOT_FIT_REQ_TIMEOUT_USEC);
|
||||
rc = hl_fw_read_preboot_status(hdev);
|
||||
if (rc) {
|
||||
if (hdev->reset_on_preboot_fail)
|
||||
hdev->asic_funcs->hw_fini(hdev, true, false);
|
||||
@ -679,8 +673,7 @@ pci_init:
|
||||
}
|
||||
|
||||
if (goya_get_hw_state(hdev) == HL_DEVICE_HW_STATE_DIRTY) {
|
||||
dev_info(hdev->dev,
|
||||
"H/W state is dirty, must reset before initializing\n");
|
||||
dev_dbg(hdev->dev, "H/W state is dirty, must reset before initializing\n");
|
||||
hdev->asic_funcs->hw_fini(hdev, true, false);
|
||||
}
|
||||
|
||||
@ -894,7 +887,7 @@ int goya_late_init(struct hl_device *hdev)
|
||||
*/
|
||||
WREG32(mmMMU_LOG2_DDR_SIZE, ilog2(prop->dram_size));
|
||||
|
||||
rc = hl_fw_send_pci_access_msg(hdev, CPUCP_PACKET_ENABLE_PCI_ACCESS);
|
||||
rc = hl_fw_send_pci_access_msg(hdev, CPUCP_PACKET_ENABLE_PCI_ACCESS, 0x0);
|
||||
if (rc) {
|
||||
dev_err(hdev->dev,
|
||||
"Failed to enable PCI access from CPU %d\n", rc);
|
||||
@ -1012,11 +1005,9 @@ static int goya_sw_init(struct hl_device *hdev)
|
||||
goto free_goya_device;
|
||||
}
|
||||
|
||||
hdev->cpu_accessible_dma_mem =
|
||||
hdev->asic_funcs->asic_dma_alloc_coherent(hdev,
|
||||
HL_CPU_ACCESSIBLE_MEM_SIZE,
|
||||
&hdev->cpu_accessible_dma_address,
|
||||
GFP_KERNEL | __GFP_ZERO);
|
||||
hdev->cpu_accessible_dma_mem = hl_asic_dma_alloc_coherent(hdev, HL_CPU_ACCESSIBLE_MEM_SIZE,
|
||||
&hdev->cpu_accessible_dma_address,
|
||||
GFP_KERNEL | __GFP_ZERO);
|
||||
|
||||
if (!hdev->cpu_accessible_dma_mem) {
|
||||
rc = -ENOMEM;
|
||||
@ -1046,7 +1037,7 @@ static int goya_sw_init(struct hl_device *hdev)
|
||||
|
||||
spin_lock_init(&goya->hw_queues_lock);
|
||||
hdev->supports_coresight = true;
|
||||
hdev->asic_prop.supports_soft_reset = true;
|
||||
hdev->asic_prop.supports_compute_reset = true;
|
||||
hdev->asic_prop.allow_inference_soft_reset = true;
|
||||
hdev->supports_wait_for_multi_cs = false;
|
||||
|
||||
@ -1066,10 +1057,8 @@ static int goya_sw_init(struct hl_device *hdev)
|
||||
free_cpu_accessible_dma_pool:
|
||||
gen_pool_destroy(hdev->cpu_accessible_dma_pool);
|
||||
free_cpu_dma_mem:
|
||||
hdev->asic_funcs->asic_dma_free_coherent(hdev,
|
||||
HL_CPU_ACCESSIBLE_MEM_SIZE,
|
||||
hdev->cpu_accessible_dma_mem,
|
||||
hdev->cpu_accessible_dma_address);
|
||||
hl_asic_dma_free_coherent(hdev, HL_CPU_ACCESSIBLE_MEM_SIZE, hdev->cpu_accessible_dma_mem,
|
||||
hdev->cpu_accessible_dma_address);
|
||||
free_dma_pool:
|
||||
dma_pool_destroy(hdev->dma_pool);
|
||||
free_goya_device:
|
||||
@ -1090,10 +1079,8 @@ static int goya_sw_fini(struct hl_device *hdev)
|
||||
|
||||
gen_pool_destroy(hdev->cpu_accessible_dma_pool);
|
||||
|
||||
hdev->asic_funcs->asic_dma_free_coherent(hdev,
|
||||
HL_CPU_ACCESSIBLE_MEM_SIZE,
|
||||
hdev->cpu_accessible_dma_mem,
|
||||
hdev->cpu_accessible_dma_address);
|
||||
hl_asic_dma_free_coherent(hdev, HL_CPU_ACCESSIBLE_MEM_SIZE, hdev->cpu_accessible_dma_mem,
|
||||
hdev->cpu_accessible_dma_address);
|
||||
|
||||
dma_pool_destroy(hdev->dma_pool);
|
||||
|
||||
@ -2588,6 +2575,18 @@ static void goya_init_static_firmware_loader(struct hl_device *hdev)
|
||||
static_loader->sram_offset_mask = ~(lower_32_bits(SRAM_BASE_ADDR));
|
||||
}
|
||||
|
||||
static void goya_init_firmware_preload_params(struct hl_device *hdev)
|
||||
{
|
||||
struct pre_fw_load_props *pre_fw_load = &hdev->fw_loader.pre_fw_load;
|
||||
|
||||
pre_fw_load->cpu_boot_status_reg = mmPSOC_GLOBAL_CONF_CPU_BOOT_STATUS;
|
||||
pre_fw_load->sts_boot_dev_sts0_reg = mmCPU_BOOT_DEV_STS0;
|
||||
pre_fw_load->sts_boot_dev_sts1_reg = mmCPU_BOOT_DEV_STS1;
|
||||
pre_fw_load->boot_err0_reg = mmCPU_BOOT_ERR0;
|
||||
pre_fw_load->boot_err1_reg = mmCPU_BOOT_ERR1;
|
||||
pre_fw_load->wait_for_preboot_timeout = GOYA_BOOT_FIT_REQ_TIMEOUT_USEC;
|
||||
}
|
||||
|
||||
static void goya_init_firmware_loader(struct hl_device *hdev)
|
||||
{
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
@ -2878,7 +2877,7 @@ int goya_suspend(struct hl_device *hdev)
|
||||
{
|
||||
int rc;
|
||||
|
||||
rc = hl_fw_send_pci_access_msg(hdev, CPUCP_PACKET_DISABLE_PCI_ACCESS);
|
||||
rc = hl_fw_send_pci_access_msg(hdev, CPUCP_PACKET_DISABLE_PCI_ACCESS, 0x0);
|
||||
if (rc)
|
||||
dev_err(hdev->dev, "Failed to disable PCI access from CPU\n");
|
||||
|
||||
@ -3019,7 +3018,7 @@ static void goya_dma_free_coherent(struct hl_device *hdev, size_t size,
|
||||
dma_free_coherent(&hdev->pdev->dev, size, cpu_addr, fixed_dma_handle);
|
||||
}
|
||||
|
||||
int goya_scrub_device_mem(struct hl_device *hdev, u64 addr, u64 size)
|
||||
int goya_scrub_device_mem(struct hl_device *hdev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -3102,8 +3101,7 @@ static int goya_send_job_on_qman0(struct hl_device *hdev, struct hl_cs_job *job)
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
fence_ptr = hdev->asic_funcs->asic_dma_pool_zalloc(hdev, 4, GFP_KERNEL,
|
||||
&fence_dma_addr);
|
||||
fence_ptr = hl_asic_dma_pool_zalloc(hdev, 4, GFP_KERNEL, &fence_dma_addr);
|
||||
if (!fence_ptr) {
|
||||
dev_err(hdev->dev,
|
||||
"Failed to allocate fence memory for QMAN0\n");
|
||||
@ -3143,8 +3141,7 @@ static int goya_send_job_on_qman0(struct hl_device *hdev, struct hl_cs_job *job)
|
||||
}
|
||||
|
||||
free_fence_ptr:
|
||||
hdev->asic_funcs->asic_dma_pool_free(hdev, (void *) fence_ptr,
|
||||
fence_dma_addr);
|
||||
hl_asic_dma_pool_free(hdev, (void *) fence_ptr, fence_dma_addr);
|
||||
|
||||
goya_qman0_set_security(hdev, false);
|
||||
|
||||
@ -3180,8 +3177,7 @@ int goya_test_queue(struct hl_device *hdev, u32 hw_queue_id)
|
||||
|
||||
fence_val = GOYA_QMAN0_FENCE_VAL;
|
||||
|
||||
fence_ptr = hdev->asic_funcs->asic_dma_pool_zalloc(hdev, 4, GFP_KERNEL,
|
||||
&fence_dma_addr);
|
||||
fence_ptr = hl_asic_dma_pool_zalloc(hdev, 4, GFP_KERNEL, &fence_dma_addr);
|
||||
if (!fence_ptr) {
|
||||
dev_err(hdev->dev,
|
||||
"Failed to allocate memory for H/W queue %d testing\n",
|
||||
@ -3191,9 +3187,8 @@ int goya_test_queue(struct hl_device *hdev, u32 hw_queue_id)
|
||||
|
||||
*fence_ptr = 0;
|
||||
|
||||
fence_pkt = hdev->asic_funcs->asic_dma_pool_zalloc(hdev,
|
||||
sizeof(struct packet_msg_prot),
|
||||
GFP_KERNEL, &pkt_dma_addr);
|
||||
fence_pkt = hl_asic_dma_pool_zalloc(hdev, sizeof(struct packet_msg_prot), GFP_KERNEL,
|
||||
&pkt_dma_addr);
|
||||
if (!fence_pkt) {
|
||||
dev_err(hdev->dev,
|
||||
"Failed to allocate packet for H/W queue %d testing\n",
|
||||
@ -3232,11 +3227,9 @@ int goya_test_queue(struct hl_device *hdev, u32 hw_queue_id)
|
||||
}
|
||||
|
||||
free_pkt:
|
||||
hdev->asic_funcs->asic_dma_pool_free(hdev, (void *) fence_pkt,
|
||||
pkt_dma_addr);
|
||||
hl_asic_dma_pool_free(hdev, (void *) fence_pkt, pkt_dma_addr);
|
||||
free_fence_ptr:
|
||||
hdev->asic_funcs->asic_dma_pool_free(hdev, (void *) fence_ptr,
|
||||
fence_dma_addr);
|
||||
hl_asic_dma_pool_free(hdev, (void *) fence_ptr, fence_dma_addr);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -3403,7 +3396,7 @@ static int goya_validate_dma_pkt_host(struct hl_device *hdev,
|
||||
{
|
||||
u64 device_memory_addr, addr;
|
||||
enum dma_data_direction dir;
|
||||
enum goya_dma_direction user_dir;
|
||||
enum hl_goya_dma_direction user_dir;
|
||||
bool sram_addr = true;
|
||||
bool skip_host_mem_pin = false;
|
||||
bool user_memset;
|
||||
@ -3419,7 +3412,7 @@ static int goya_validate_dma_pkt_host(struct hl_device *hdev,
|
||||
GOYA_PKT_LIN_DMA_CTL_MEMSET_SHIFT;
|
||||
|
||||
switch (user_dir) {
|
||||
case DMA_HOST_TO_DRAM:
|
||||
case HL_DMA_HOST_TO_DRAM:
|
||||
dev_dbg(hdev->dev, "DMA direction is HOST --> DRAM\n");
|
||||
dir = DMA_TO_DEVICE;
|
||||
sram_addr = false;
|
||||
@ -3429,7 +3422,7 @@ static int goya_validate_dma_pkt_host(struct hl_device *hdev,
|
||||
skip_host_mem_pin = true;
|
||||
break;
|
||||
|
||||
case DMA_DRAM_TO_HOST:
|
||||
case HL_DMA_DRAM_TO_HOST:
|
||||
dev_dbg(hdev->dev, "DMA direction is DRAM --> HOST\n");
|
||||
dir = DMA_FROM_DEVICE;
|
||||
sram_addr = false;
|
||||
@ -3437,7 +3430,7 @@ static int goya_validate_dma_pkt_host(struct hl_device *hdev,
|
||||
device_memory_addr = le64_to_cpu(user_dma_pkt->src_addr);
|
||||
break;
|
||||
|
||||
case DMA_HOST_TO_SRAM:
|
||||
case HL_DMA_HOST_TO_SRAM:
|
||||
dev_dbg(hdev->dev, "DMA direction is HOST --> SRAM\n");
|
||||
dir = DMA_TO_DEVICE;
|
||||
addr = le64_to_cpu(user_dma_pkt->src_addr);
|
||||
@ -3446,14 +3439,14 @@ static int goya_validate_dma_pkt_host(struct hl_device *hdev,
|
||||
skip_host_mem_pin = true;
|
||||
break;
|
||||
|
||||
case DMA_SRAM_TO_HOST:
|
||||
case HL_DMA_SRAM_TO_HOST:
|
||||
dev_dbg(hdev->dev, "DMA direction is SRAM --> HOST\n");
|
||||
dir = DMA_FROM_DEVICE;
|
||||
addr = le64_to_cpu(user_dma_pkt->dst_addr);
|
||||
device_memory_addr = le64_to_cpu(user_dma_pkt->src_addr);
|
||||
break;
|
||||
default:
|
||||
dev_err(hdev->dev, "DMA direction is undefined\n");
|
||||
dev_err(hdev->dev, "DMA direction %d is unsupported/undefined\n", user_dir);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
@ -3505,14 +3498,14 @@ static int goya_validate_dma_pkt_no_host(struct hl_device *hdev,
|
||||
struct packet_lin_dma *user_dma_pkt)
|
||||
{
|
||||
u64 sram_memory_addr, dram_memory_addr;
|
||||
enum goya_dma_direction user_dir;
|
||||
enum hl_goya_dma_direction user_dir;
|
||||
u32 ctl;
|
||||
|
||||
ctl = le32_to_cpu(user_dma_pkt->ctl);
|
||||
user_dir = (ctl & GOYA_PKT_LIN_DMA_CTL_DMA_DIR_MASK) >>
|
||||
GOYA_PKT_LIN_DMA_CTL_DMA_DIR_SHIFT;
|
||||
|
||||
if (user_dir == DMA_DRAM_TO_SRAM) {
|
||||
if (user_dir == HL_DMA_DRAM_TO_SRAM) {
|
||||
dev_dbg(hdev->dev, "DMA direction is DRAM --> SRAM\n");
|
||||
dram_memory_addr = le64_to_cpu(user_dma_pkt->src_addr);
|
||||
sram_memory_addr = le64_to_cpu(user_dma_pkt->dst_addr);
|
||||
@ -3549,7 +3542,7 @@ static int goya_validate_dma_pkt_no_mmu(struct hl_device *hdev,
|
||||
struct hl_cs_parser *parser,
|
||||
struct packet_lin_dma *user_dma_pkt)
|
||||
{
|
||||
enum goya_dma_direction user_dir;
|
||||
enum hl_goya_dma_direction user_dir;
|
||||
u32 ctl;
|
||||
int rc;
|
||||
|
||||
@ -3574,7 +3567,7 @@ static int goya_validate_dma_pkt_no_mmu(struct hl_device *hdev,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if ((user_dir == DMA_DRAM_TO_SRAM) || (user_dir == DMA_SRAM_TO_DRAM))
|
||||
if ((user_dir == HL_DMA_DRAM_TO_SRAM) || (user_dir == HL_DMA_SRAM_TO_DRAM))
|
||||
rc = goya_validate_dma_pkt_no_host(hdev, parser, user_dma_pkt);
|
||||
else
|
||||
rc = goya_validate_dma_pkt_host(hdev, parser, user_dma_pkt);
|
||||
@ -3781,7 +3774,7 @@ static int goya_patch_dma_packet(struct hl_device *hdev,
|
||||
u32 count, dma_desc_cnt;
|
||||
u64 len, len_next;
|
||||
dma_addr_t dma_addr, dma_addr_next;
|
||||
enum goya_dma_direction user_dir;
|
||||
enum hl_goya_dma_direction user_dir;
|
||||
u64 device_memory_addr, addr;
|
||||
enum dma_data_direction dir;
|
||||
struct sg_table *sgt;
|
||||
@ -3797,14 +3790,14 @@ static int goya_patch_dma_packet(struct hl_device *hdev,
|
||||
user_memset = (ctl & GOYA_PKT_LIN_DMA_CTL_MEMSET_MASK) >>
|
||||
GOYA_PKT_LIN_DMA_CTL_MEMSET_SHIFT;
|
||||
|
||||
if ((user_dir == DMA_DRAM_TO_SRAM) || (user_dir == DMA_SRAM_TO_DRAM) ||
|
||||
if ((user_dir == HL_DMA_DRAM_TO_SRAM) || (user_dir == HL_DMA_SRAM_TO_DRAM) ||
|
||||
(user_dma_pkt->tsize == 0)) {
|
||||
memcpy(new_dma_pkt, user_dma_pkt, sizeof(*new_dma_pkt));
|
||||
*new_dma_pkt_size = sizeof(*new_dma_pkt);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((user_dir == DMA_HOST_TO_DRAM) || (user_dir == DMA_HOST_TO_SRAM)) {
|
||||
if ((user_dir == HL_DMA_HOST_TO_DRAM) || (user_dir == HL_DMA_HOST_TO_SRAM)) {
|
||||
addr = le64_to_cpu(user_dma_pkt->src_addr);
|
||||
device_memory_addr = le64_to_cpu(user_dma_pkt->dst_addr);
|
||||
dir = DMA_TO_DEVICE;
|
||||
@ -4166,8 +4159,8 @@ int goya_cs_parser(struct hl_device *hdev, struct hl_cs_parser *parser)
|
||||
}
|
||||
|
||||
void goya_add_end_of_cb_packets(struct hl_device *hdev, void *kernel_address,
|
||||
u32 len, u64 cq_addr, u32 cq_val, u32 msix_vec,
|
||||
bool eb)
|
||||
u32 len, u32 original_len, u64 cq_addr, u32 cq_val,
|
||||
u32 msix_vec, bool eb)
|
||||
{
|
||||
struct packet_msg_prot *cq_pkt;
|
||||
u32 tmp;
|
||||
@ -4804,7 +4797,7 @@ static int goya_memset_device_memory(struct hl_device *hdev, u64 addr, u64 size,
|
||||
(1 << GOYA_PKT_LIN_DMA_CTL_WO_SHIFT) |
|
||||
(1 << GOYA_PKT_CTL_RB_SHIFT) |
|
||||
(1 << GOYA_PKT_CTL_MB_SHIFT));
|
||||
ctl |= (is_dram ? DMA_HOST_TO_DRAM : DMA_HOST_TO_SRAM) <<
|
||||
ctl |= (is_dram ? HL_DMA_HOST_TO_DRAM : HL_DMA_HOST_TO_SRAM) <<
|
||||
GOYA_PKT_LIN_DMA_CTL_DMA_DIR_SHIFT;
|
||||
lin_dma_pkt->ctl = cpu_to_le32(ctl);
|
||||
|
||||
@ -5268,6 +5261,11 @@ static int goya_ctx_init(struct hl_ctx *ctx)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int goya_pre_schedule_cs(struct hl_cs *cs)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 goya_get_queue_id_for_cq(struct hl_device *hdev, u32 cq_idx)
|
||||
{
|
||||
return cq_idx;
|
||||
@ -5347,6 +5345,11 @@ static void goya_enable_events_from_fw(struct hl_device *hdev)
|
||||
GOYA_ASYNC_EVENT_ID_INTS_REGISTER);
|
||||
}
|
||||
|
||||
static int goya_ack_mmu_page_fault_or_access_error(struct hl_device *hdev, u64 mmu_cap_mask)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static int goya_map_pll_idx_to_fw_idx(u32 pll_idx)
|
||||
{
|
||||
switch (pll_idx) {
|
||||
@ -5417,17 +5420,15 @@ static u32 *goya_get_stream_master_qid_arr(void)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void goya_get_valid_dram_page_orders(struct hl_info_dev_memalloc_page_sizes *info)
|
||||
{
|
||||
/* set 0 since multiple pages are not supported */
|
||||
info->page_order_bitmask = 0;
|
||||
}
|
||||
|
||||
static int goya_get_monitor_dump(struct hl_device *hdev, void *data)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static void goya_check_if_razwi_happened(struct hl_device *hdev)
|
||||
{
|
||||
}
|
||||
|
||||
static int goya_scrub_device_dram(struct hl_device *hdev, u64 val)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
@ -5461,7 +5462,6 @@ static const struct hl_asic_funcs goya_funcs = {
|
||||
.hl_dma_unmap_sgtable = hl_dma_unmap_sgtable,
|
||||
.cs_parser = goya_cs_parser,
|
||||
.asic_dma_map_sgtable = hl_dma_map_sgtable,
|
||||
.get_dma_desc_list_size = goya_get_dma_desc_list_size,
|
||||
.add_end_of_cb_packets = goya_add_end_of_cb_packets,
|
||||
.update_eq_ci = goya_update_eq_ci,
|
||||
.context_switch = goya_context_switch,
|
||||
@ -5481,6 +5481,8 @@ static const struct hl_asic_funcs goya_funcs = {
|
||||
.non_hard_reset_late_init = goya_non_hard_reset_late_init,
|
||||
.hw_queues_lock = goya_hw_queues_lock,
|
||||
.hw_queues_unlock = goya_hw_queues_unlock,
|
||||
.kdma_lock = NULL,
|
||||
.kdma_unlock = NULL,
|
||||
.get_pci_id = goya_get_pci_id,
|
||||
.get_eeprom_data = goya_get_eeprom_data,
|
||||
.get_monitor_dump = goya_get_monitor_dump,
|
||||
@ -5492,6 +5494,7 @@ static const struct hl_asic_funcs goya_funcs = {
|
||||
.halt_coresight = goya_halt_coresight,
|
||||
.ctx_init = goya_ctx_init,
|
||||
.ctx_fini = goya_ctx_fini,
|
||||
.pre_schedule_cs = goya_pre_schedule_cs,
|
||||
.get_queue_id_for_cq = goya_get_queue_id_for_cq,
|
||||
.load_firmware_to_device = goya_load_firmware_to_device,
|
||||
.load_boot_fit_to_device = goya_load_boot_fit_to_device,
|
||||
@ -5502,24 +5505,27 @@ static const struct hl_asic_funcs goya_funcs = {
|
||||
.reset_sob = goya_reset_sob,
|
||||
.reset_sob_group = goya_reset_sob_group,
|
||||
.get_device_time = goya_get_device_time,
|
||||
.pb_print_security_errors = NULL,
|
||||
.collective_wait_init_cs = goya_collective_wait_init_cs,
|
||||
.collective_wait_create_jobs = goya_collective_wait_create_jobs,
|
||||
.get_dec_base_addr = NULL,
|
||||
.scramble_addr = hl_mmu_scramble_addr,
|
||||
.descramble_addr = hl_mmu_descramble_addr,
|
||||
.ack_protection_bits_errors = goya_ack_protection_bits_errors,
|
||||
.get_hw_block_id = goya_get_hw_block_id,
|
||||
.hw_block_mmap = goya_block_mmap,
|
||||
.enable_events_from_fw = goya_enable_events_from_fw,
|
||||
.ack_mmu_errors = goya_ack_mmu_page_fault_or_access_error,
|
||||
.map_pll_idx_to_fw_idx = goya_map_pll_idx_to_fw_idx,
|
||||
.init_firmware_preload_params = goya_init_firmware_preload_params,
|
||||
.init_firmware_loader = goya_init_firmware_loader,
|
||||
.init_cpu_scrambler_dram = goya_cpu_init_scrambler_dram,
|
||||
.state_dump_init = goya_state_dump_init,
|
||||
.get_sob_addr = &goya_get_sob_addr,
|
||||
.set_pci_memory_regions = goya_set_pci_memory_regions,
|
||||
.get_stream_master_qid_arr = goya_get_stream_master_qid_arr,
|
||||
.is_valid_dram_page_size = NULL,
|
||||
.check_if_razwi_happened = goya_check_if_razwi_happened,
|
||||
.mmu_get_real_page_size = hl_mmu_get_real_page_size,
|
||||
.get_valid_dram_page_orders = goya_get_valid_dram_page_orders,
|
||||
.access_dev_mem = hl_access_dev_mem,
|
||||
.set_dram_bar_base = goya_set_ddr_bar_base,
|
||||
};
|
||||
|
@ -230,10 +230,10 @@ void goya_handle_eqe(struct hl_device *hdev, struct hl_eq_entry *eq_entry);
|
||||
void *goya_get_events_stat(struct hl_device *hdev, bool aggregate, u32 *size);
|
||||
|
||||
void goya_add_end_of_cb_packets(struct hl_device *hdev, void *kernel_address,
|
||||
u32 len, u64 cq_addr, u32 cq_val, u32 msix_vec,
|
||||
bool eb);
|
||||
u32 len, u32 original_len, u64 cq_addr, u32 cq_val,
|
||||
u32 msix_vec, bool eb);
|
||||
int goya_cs_parser(struct hl_device *hdev, struct hl_cs_parser *parser);
|
||||
int goya_scrub_device_mem(struct hl_device *hdev, u64 addr, u64 size);
|
||||
int goya_scrub_device_mem(struct hl_device *hdev);
|
||||
void *goya_get_int_queue_base(struct hl_device *hdev, u32 queue_id,
|
||||
dma_addr_t *dma_handle, u16 *queue_len);
|
||||
u32 goya_get_dma_desc_list_size(struct hl_device *hdev, struct sg_table *sgt);
|
||||
|
@ -359,6 +359,7 @@ static struct attribute *goya_clk_dev_attrs[] = {
|
||||
&dev_attr_pm_mng_profile.attr,
|
||||
&dev_attr_tpc_clk.attr,
|
||||
&dev_attr_tpc_clk_curr.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static ssize_t infineon_ver_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
@ -375,6 +376,7 @@ static DEVICE_ATTR_RO(infineon_ver);
|
||||
|
||||
static struct attribute *goya_vrm_dev_attrs[] = {
|
||||
&dev_attr_infineon_ver.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
void goya_add_device_attr(struct hl_device *hdev, struct attribute_group *dev_clk_attr_grp,
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2020-2021 HabanaLabs, Ltd.
|
||||
* Copyright 2020-2022 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
@ -68,7 +68,8 @@ struct hl_eq_ecc_data {
|
||||
__le64 ecc_address;
|
||||
__le64 ecc_syndrom;
|
||||
__u8 memory_wrapper_idx;
|
||||
__u8 pad[7];
|
||||
__u8 is_critical;
|
||||
__u8 pad[6];
|
||||
};
|
||||
|
||||
enum hl_sm_sei_cause {
|
||||
@ -98,27 +99,265 @@ struct hl_eq_fw_alive {
|
||||
__u8 pad[7];
|
||||
};
|
||||
|
||||
enum hl_pcie_addr_dec_cause {
|
||||
PCIE_ADDR_DEC_HBW_ERR_RESP,
|
||||
PCIE_ADDR_DEC_LBW_ERR_RESP,
|
||||
PCIE_ADDR_DEC_TLP_BLOCKED_BY_RR
|
||||
struct hl_eq_intr_cause {
|
||||
__le64 intr_cause_data;
|
||||
};
|
||||
|
||||
struct hl_eq_pcie_addr_dec_data {
|
||||
/* enum hl_pcie_addr_dec_cause */
|
||||
__u8 addr_dec_cause;
|
||||
__u8 pad[7];
|
||||
struct hl_eq_pcie_drain_ind_data {
|
||||
struct hl_eq_intr_cause intr_cause;
|
||||
__le64 drain_wr_addr_lbw;
|
||||
__le64 drain_rd_addr_lbw;
|
||||
__le64 drain_wr_addr_hbw;
|
||||
__le64 drain_rd_addr_hbw;
|
||||
};
|
||||
|
||||
struct hl_eq_razwi_lbw_info_regs {
|
||||
__le32 rr_aw_razwi_reg;
|
||||
__le32 rr_aw_razwi_id_reg;
|
||||
__le32 rr_ar_razwi_reg;
|
||||
__le32 rr_ar_razwi_id_reg;
|
||||
};
|
||||
|
||||
struct hl_eq_razwi_hbw_info_regs {
|
||||
__le32 rr_aw_razwi_hi_reg;
|
||||
__le32 rr_aw_razwi_lo_reg;
|
||||
__le32 rr_aw_razwi_id_reg;
|
||||
__le32 rr_ar_razwi_hi_reg;
|
||||
__le32 rr_ar_razwi_lo_reg;
|
||||
__le32 rr_ar_razwi_id_reg;
|
||||
};
|
||||
|
||||
/* razwi_happened masks */
|
||||
#define RAZWI_HAPPENED_HBW 0x1
|
||||
#define RAZWI_HAPPENED_LBW 0x2
|
||||
#define RAZWI_HAPPENED_AW 0x4
|
||||
#define RAZWI_HAPPENED_AR 0x8
|
||||
|
||||
struct hl_eq_razwi_info {
|
||||
__le32 razwi_happened_mask;
|
||||
union {
|
||||
struct hl_eq_razwi_lbw_info_regs lbw;
|
||||
struct hl_eq_razwi_hbw_info_regs hbw;
|
||||
};
|
||||
__le32 pad;
|
||||
};
|
||||
|
||||
struct hl_eq_razwi_with_intr_cause {
|
||||
struct hl_eq_razwi_info razwi_info;
|
||||
struct hl_eq_intr_cause intr_cause;
|
||||
};
|
||||
|
||||
#define HBM_CA_ERR_CMD_LIFO_LEN 8
|
||||
#define HBM_RD_ERR_DATA_LIFO_LEN 8
|
||||
#define HBM_WR_PAR_CMD_LIFO_LEN 11
|
||||
|
||||
enum hl_hbm_sei_cause {
|
||||
/* Command/address parity error event is split into 2 events due to
|
||||
* size limitation: ODD suffix for odd HBM CK_t cycles and EVEN suffix
|
||||
* for even HBM CK_t cycles
|
||||
*/
|
||||
HBM_SEI_CMD_PARITY_EVEN,
|
||||
HBM_SEI_CMD_PARITY_ODD,
|
||||
/* Read errors can be reflected as a combination of SERR/DERR/parity
|
||||
* errors. Therefore, we define one event for all read error types.
|
||||
* LKD will perform further proccessing.
|
||||
*/
|
||||
HBM_SEI_READ_ERR,
|
||||
HBM_SEI_WRITE_DATA_PARITY_ERR,
|
||||
HBM_SEI_CATTRIP,
|
||||
HBM_SEI_MEM_BIST_FAIL,
|
||||
HBM_SEI_DFI,
|
||||
HBM_SEI_INV_TEMP_READ_OUT,
|
||||
HBM_SEI_BIST_FAIL,
|
||||
};
|
||||
|
||||
/* Masks for parsing hl_hbm_sei_headr fields */
|
||||
#define HBM_ECC_SERR_CNTR_MASK 0xFF
|
||||
#define HBM_ECC_DERR_CNTR_MASK 0xFF00
|
||||
#define HBM_RD_PARITY_CNTR_MASK 0xFF0000
|
||||
|
||||
/* HBM index and MC index are known by the event_id */
|
||||
struct hl_hbm_sei_header {
|
||||
union {
|
||||
/* relevant only in case of HBM read error */
|
||||
struct {
|
||||
__u8 ecc_serr_cnt;
|
||||
__u8 ecc_derr_cnt;
|
||||
__u8 read_par_cnt;
|
||||
__u8 reserved;
|
||||
};
|
||||
/* All other cases */
|
||||
__le32 cnt;
|
||||
};
|
||||
__u8 sei_cause; /* enum hl_hbm_sei_cause */
|
||||
__u8 mc_channel; /* range: 0-3 */
|
||||
__u8 mc_pseudo_channel; /* range: 0-7 */
|
||||
__u8 is_critical;
|
||||
};
|
||||
|
||||
#define HBM_RD_ADDR_SID_SHIFT 0
|
||||
#define HBM_RD_ADDR_SID_MASK 0x1
|
||||
#define HBM_RD_ADDR_BG_SHIFT 1
|
||||
#define HBM_RD_ADDR_BG_MASK 0x6
|
||||
#define HBM_RD_ADDR_BA_SHIFT 3
|
||||
#define HBM_RD_ADDR_BA_MASK 0x18
|
||||
#define HBM_RD_ADDR_COL_SHIFT 5
|
||||
#define HBM_RD_ADDR_COL_MASK 0x7E0
|
||||
#define HBM_RD_ADDR_ROW_SHIFT 11
|
||||
#define HBM_RD_ADDR_ROW_MASK 0x3FFF800
|
||||
|
||||
struct hbm_rd_addr {
|
||||
union {
|
||||
/* bit fields are only for FW use */
|
||||
struct {
|
||||
u32 dbg_rd_err_addr_sid:1;
|
||||
u32 dbg_rd_err_addr_bg:2;
|
||||
u32 dbg_rd_err_addr_ba:2;
|
||||
u32 dbg_rd_err_addr_col:6;
|
||||
u32 dbg_rd_err_addr_row:15;
|
||||
u32 reserved:6;
|
||||
};
|
||||
__le32 rd_addr_val;
|
||||
};
|
||||
};
|
||||
|
||||
#define HBM_RD_ERR_BEAT_SHIFT 2
|
||||
/* dbg_rd_err_misc fields: */
|
||||
/* Read parity is calculated per DW on every beat */
|
||||
#define HBM_RD_ERR_PAR_ERR_BEAT0_SHIFT 0
|
||||
#define HBM_RD_ERR_PAR_ERR_BEAT0_MASK 0x3
|
||||
#define HBM_RD_ERR_PAR_DATA_BEAT0_SHIFT 8
|
||||
#define HBM_RD_ERR_PAR_DATA_BEAT0_MASK 0x300
|
||||
/* ECC is calculated per PC on every beat */
|
||||
#define HBM_RD_ERR_SERR_BEAT0_SHIFT 16
|
||||
#define HBM_RD_ERR_SERR_BEAT0_MASK 0x10000
|
||||
#define HBM_RD_ERR_DERR_BEAT0_SHIFT 24
|
||||
#define HBM_RD_ERR_DERR_BEAT0_MASK 0x100000
|
||||
|
||||
struct hl_eq_hbm_sei_read_err_intr_info {
|
||||
/* DFI_RD_ERR_REP_ADDR */
|
||||
struct hbm_rd_addr dbg_rd_err_addr;
|
||||
/* DFI_RD_ERR_REP_ERR */
|
||||
union {
|
||||
struct {
|
||||
/* bit fields are only for FW use */
|
||||
u32 dbg_rd_err_par:8;
|
||||
u32 dbg_rd_err_par_data:8;
|
||||
u32 dbg_rd_err_serr:4;
|
||||
u32 dbg_rd_err_derr:4;
|
||||
u32 reserved:8;
|
||||
};
|
||||
__le32 dbg_rd_err_misc;
|
||||
};
|
||||
/* DFI_RD_ERR_REP_DM */
|
||||
__le32 dbg_rd_err_dm;
|
||||
/* DFI_RD_ERR_REP_SYNDROME */
|
||||
__le32 dbg_rd_err_syndrome;
|
||||
/* DFI_RD_ERR_REP_DATA */
|
||||
__le32 dbg_rd_err_data[HBM_RD_ERR_DATA_LIFO_LEN];
|
||||
};
|
||||
|
||||
struct hl_eq_hbm_sei_ca_par_intr_info {
|
||||
/* 14 LSBs */
|
||||
__le16 dbg_row[HBM_CA_ERR_CMD_LIFO_LEN];
|
||||
/* 18 LSBs */
|
||||
__le32 dbg_col[HBM_CA_ERR_CMD_LIFO_LEN];
|
||||
};
|
||||
|
||||
#define WR_PAR_LAST_CMD_COL_SHIFT 0
|
||||
#define WR_PAR_LAST_CMD_COL_MASK 0x3F
|
||||
#define WR_PAR_LAST_CMD_BG_SHIFT 6
|
||||
#define WR_PAR_LAST_CMD_BG_MASK 0xC0
|
||||
#define WR_PAR_LAST_CMD_BA_SHIFT 8
|
||||
#define WR_PAR_LAST_CMD_BA_MASK 0x300
|
||||
#define WR_PAR_LAST_CMD_SID_SHIFT 10
|
||||
#define WR_PAR_LAST_CMD_SID_MASK 0x400
|
||||
|
||||
/* Row address isn't latched */
|
||||
struct hbm_sei_wr_cmd_address {
|
||||
/* DFI_DERR_LAST_CMD */
|
||||
union {
|
||||
struct {
|
||||
/* bit fields are only for FW use */
|
||||
u32 col:6;
|
||||
u32 bg:2;
|
||||
u32 ba:2;
|
||||
u32 sid:1;
|
||||
u32 reserved:21;
|
||||
};
|
||||
__le32 dbg_wr_cmd_addr;
|
||||
};
|
||||
};
|
||||
|
||||
struct hl_eq_hbm_sei_wr_par_intr_info {
|
||||
/* entry 0: WR command address from the 1st cycle prior to the error
|
||||
* entry 1: WR command address from the 2nd cycle prior to the error
|
||||
* and so on...
|
||||
*/
|
||||
struct hbm_sei_wr_cmd_address dbg_last_wr_cmds[HBM_WR_PAR_CMD_LIFO_LEN];
|
||||
/* derr[0:1] - 1st HBM cycle DERR output
|
||||
* derr[2:3] - 2nd HBM cycle DERR output
|
||||
*/
|
||||
__u8 dbg_derr;
|
||||
/* extend to reach 8B */
|
||||
__u8 pad[3];
|
||||
};
|
||||
|
||||
/*
|
||||
* this struct represents the following sei causes:
|
||||
* command parity, ECC double error, ECC single error, dfi error, cattrip,
|
||||
* temperature read-out, read parity error and write parity error.
|
||||
* some only use the header while some have extra data.
|
||||
*/
|
||||
struct hl_eq_hbm_sei_data {
|
||||
struct hl_hbm_sei_header hdr;
|
||||
union {
|
||||
struct hl_eq_hbm_sei_ca_par_intr_info ca_parity_even_info;
|
||||
struct hl_eq_hbm_sei_ca_par_intr_info ca_parity_odd_info;
|
||||
struct hl_eq_hbm_sei_read_err_intr_info read_err_info;
|
||||
struct hl_eq_hbm_sei_wr_par_intr_info wr_parity_info;
|
||||
};
|
||||
};
|
||||
|
||||
/* Engine/farm arc interrupt type */
|
||||
enum hl_engine_arc_interrupt_type {
|
||||
/* Qman/farm ARC DCCM QUEUE FULL interrupt type */
|
||||
ENGINE_ARC_DCCM_QUEUE_FULL_IRQ = 1
|
||||
};
|
||||
|
||||
/* Data structure specifies details of payload of DCCM QUEUE FULL interrupt */
|
||||
struct hl_engine_arc_dccm_queue_full_irq {
|
||||
/* Queue index value which caused DCCM QUEUE FULL */
|
||||
__le32 queue_index;
|
||||
__le32 pad;
|
||||
};
|
||||
|
||||
/* Data structure specifies details of QM/FARM ARC interrupt */
|
||||
struct hl_eq_engine_arc_intr_data {
|
||||
/* ARC engine id e.g. DCORE0_TPC0_QM_ARC, DCORE0_TCP1_QM_ARC */
|
||||
__le32 engine_id;
|
||||
__le32 intr_type; /* enum hl_engine_arc_interrupt_type */
|
||||
/* More info related to the interrupt e.g. queue index
|
||||
* incase of DCCM_QUEUE_FULL interrupt.
|
||||
*/
|
||||
__le64 payload;
|
||||
__le64 pad[5];
|
||||
};
|
||||
|
||||
struct hl_eq_entry {
|
||||
struct hl_eq_header hdr;
|
||||
union {
|
||||
struct hl_eq_ecc_data ecc_data;
|
||||
struct hl_eq_hbm_ecc_data hbm_ecc_data;
|
||||
struct hl_eq_hbm_ecc_data hbm_ecc_data; /* Gaudi1 HBM */
|
||||
struct hl_eq_sm_sei_data sm_sei_data;
|
||||
struct cpucp_pkt_sync_err pkt_sync_err;
|
||||
struct hl_eq_fw_alive fw_alive;
|
||||
struct hl_eq_pcie_addr_dec_data pcie_addr_dec_data;
|
||||
struct hl_eq_intr_cause intr_cause;
|
||||
struct hl_eq_pcie_drain_ind_data pcie_drain_ind_data;
|
||||
struct hl_eq_razwi_info razwi_info;
|
||||
struct hl_eq_razwi_with_intr_cause razwi_with_intr_cause;
|
||||
struct hl_eq_hbm_sei_data sei_data; /* Gaudi2 HBM */
|
||||
struct hl_eq_engine_arc_intr_data arc_data;
|
||||
__le64 data[7];
|
||||
};
|
||||
};
|
||||
@ -792,10 +1031,23 @@ struct cpucp_security_info {
|
||||
* @infineon_second_stage_version: Infineon 2nd stage DC-DC version.
|
||||
* @dram_size: available DRAM size.
|
||||
* @card_name: card name that will be displayed in HWMON subsystem on the host
|
||||
* @tpc_binning_mask: TPC binning mask, 1 bit per TPC instance
|
||||
* (0 = functional, 1 = binned)
|
||||
* @decoder_binning_mask: Decoder binning mask, 1 bit per decoder instance
|
||||
* (0 = functional, 1 = binned), maximum 1 per dcore
|
||||
* @sram_binning: Categorize SRAM functionality
|
||||
* (0 = fully functional, 1 = lower-half is not functional,
|
||||
* 2 = upper-half is not functional)
|
||||
* @sec_info: security information
|
||||
* @pll_map: Bit map of supported PLLs for current ASIC version.
|
||||
* @mme_binning_mask: MME binning mask,
|
||||
* (0 = functional, 1 = binned)
|
||||
* bits [0:6] <==> dcore0 mme fma
|
||||
* bits [7:13] <==> dcore1 mme fma
|
||||
* bits [14:20] <==> dcore0 mme ima
|
||||
* bits [21:27] <==> dcore1 mme ima
|
||||
* For each group, if the 6th bit is set then first 5 bits
|
||||
* represent the col's idx [0-31], otherwise these bits are
|
||||
* ignored, and col idx 32 is binned. 7th bit is don't care.
|
||||
* @dram_binning_mask: DRAM binning mask, 1 bit per dram instance
|
||||
* (0 = functional 1 = binned)
|
||||
* @memory_repair_flag: eFuse flag indicating memory repair
|
||||
@ -803,6 +1055,8 @@ struct cpucp_security_info {
|
||||
* (0 = functional 1 = binned)
|
||||
* @xbar_binning_mask: Xbar binning mask, 1 bit per Xbar instance
|
||||
* (0 = functional 1 = binned)
|
||||
* @interposer_version: Interposer version programmed in eFuse
|
||||
* @substrate_version: Substrate version programmed in eFuse
|
||||
* @fw_os_version: Firmware OS Version
|
||||
*/
|
||||
struct cpucp_info {
|
||||
@ -819,16 +1073,18 @@ struct cpucp_info {
|
||||
__le32 infineon_second_stage_version;
|
||||
__le64 dram_size;
|
||||
char card_name[CARD_NAME_MAX_LEN];
|
||||
__le64 reserved3;
|
||||
__le64 reserved4;
|
||||
__u8 reserved5;
|
||||
__le64 tpc_binning_mask;
|
||||
__le64 decoder_binning_mask;
|
||||
__u8 sram_binning;
|
||||
__u8 dram_binning_mask;
|
||||
__u8 memory_repair_flag;
|
||||
__u8 edma_binning_mask;
|
||||
__u8 xbar_binning_mask;
|
||||
__u8 pad[3];
|
||||
__u8 interposer_version;
|
||||
__u8 substrate_version;
|
||||
__u8 reserved2;
|
||||
struct cpucp_security_info sec_info;
|
||||
__le32 reserved6;
|
||||
__le32 reserved3;
|
||||
__u8 pll_map[PLL_MAP_LEN];
|
||||
__le64 mme_binning_mask;
|
||||
__u8 fw_os_version[VERSION_MAX_LEN];
|
||||
@ -932,6 +1188,11 @@ struct cpucp_hbm_row_replaced_rows_info {
|
||||
struct cpucp_hbm_row_info replaced_rows[CPUCP_HBM_ROW_REPLACE_MAX];
|
||||
};
|
||||
|
||||
enum cpu_reset_status {
|
||||
CPU_RST_STATUS_NA = 0,
|
||||
CPU_RST_STATUS_SOFT_RST_DONE = 1,
|
||||
};
|
||||
|
||||
/*
|
||||
* struct dcore_monitor_regs_data - DCORE monitor regs data.
|
||||
* the structure follows sync manager block layout. relevant only to Gaudi.
|
||||
|
@ -525,6 +525,13 @@ struct lkd_fw_comms_msg {
|
||||
struct {
|
||||
__u8 fw_cfg_skip; /* 1 - skip, 0 - don't skip */
|
||||
};
|
||||
struct {
|
||||
__le64 tpc_binning_conf;
|
||||
__le32 dec_binning_conf;
|
||||
__le32 hbm_binning_conf;
|
||||
__le32 edma_binning_conf;
|
||||
__le32 mme_redundancy_conf; /* use MME_REDUNDANT_COLUMN */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -444,6 +444,7 @@ enum axi_id {
|
||||
|
||||
#define QM_ARB_ERR_MSG_EN_MASK (\
|
||||
QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK |\
|
||||
QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK |\
|
||||
QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK)
|
||||
|
||||
#define PCIE_AUX_FLR_CTRL_HW_CTRL_MASK 0x1
|
||||
|
@ -0,0 +1,213 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright (C) 2020 HabanaLabs Ltd.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
#ifndef __GAUDI2_ARC_COMMON_PACKETS_H__
|
||||
#define __GAUDI2_ARC_COMMON_PACKETS_H__
|
||||
|
||||
/*
|
||||
* CPU IDs for each ARC CPUs
|
||||
*/
|
||||
|
||||
#define CPU_ID_SCHED_ARC0 0 /* FARM_ARC0 */
|
||||
#define CPU_ID_SCHED_ARC1 1 /* FARM_ARC1 */
|
||||
#define CPU_ID_SCHED_ARC2 2 /* FARM_ARC2 */
|
||||
#define CPU_ID_SCHED_ARC3 3 /* FARM_ARC3 */
|
||||
/* Dcore1 MME Engine ARC instance used as scheduler */
|
||||
#define CPU_ID_SCHED_ARC4 4 /* DCORE1_MME0 */
|
||||
/* Dcore3 MME Engine ARC instance used as scheduler */
|
||||
#define CPU_ID_SCHED_ARC5 5 /* DCORE3_MME0 */
|
||||
|
||||
#define CPU_ID_TPC_QMAN_ARC0 6 /* DCORE0_TPC0 */
|
||||
#define CPU_ID_TPC_QMAN_ARC1 7 /* DCORE0_TPC1 */
|
||||
#define CPU_ID_TPC_QMAN_ARC2 8 /* DCORE0_TPC2 */
|
||||
#define CPU_ID_TPC_QMAN_ARC3 9 /* DCORE0_TPC3 */
|
||||
#define CPU_ID_TPC_QMAN_ARC4 10 /* DCORE0_TPC4 */
|
||||
#define CPU_ID_TPC_QMAN_ARC5 11 /* DCORE0_TPC5 */
|
||||
#define CPU_ID_TPC_QMAN_ARC6 12 /* DCORE1_TPC0 */
|
||||
#define CPU_ID_TPC_QMAN_ARC7 13 /* DCORE1_TPC1 */
|
||||
#define CPU_ID_TPC_QMAN_ARC8 14 /* DCORE1_TPC2 */
|
||||
#define CPU_ID_TPC_QMAN_ARC9 15 /* DCORE1_TPC3 */
|
||||
#define CPU_ID_TPC_QMAN_ARC10 16 /* DCORE1_TPC4 */
|
||||
#define CPU_ID_TPC_QMAN_ARC11 17 /* DCORE1_TPC5 */
|
||||
#define CPU_ID_TPC_QMAN_ARC12 18 /* DCORE2_TPC0 */
|
||||
#define CPU_ID_TPC_QMAN_ARC13 19 /* DCORE2_TPC1 */
|
||||
#define CPU_ID_TPC_QMAN_ARC14 20 /* DCORE2_TPC2 */
|
||||
#define CPU_ID_TPC_QMAN_ARC15 21 /* DCORE2_TPC3 */
|
||||
#define CPU_ID_TPC_QMAN_ARC16 22 /* DCORE2_TPC4 */
|
||||
#define CPU_ID_TPC_QMAN_ARC17 23 /* DCORE2_TPC5 */
|
||||
#define CPU_ID_TPC_QMAN_ARC18 24 /* DCORE3_TPC0 */
|
||||
#define CPU_ID_TPC_QMAN_ARC19 25 /* DCORE3_TPC1 */
|
||||
#define CPU_ID_TPC_QMAN_ARC20 26 /* DCORE3_TPC2 */
|
||||
#define CPU_ID_TPC_QMAN_ARC21 27 /* DCORE3_TPC3 */
|
||||
#define CPU_ID_TPC_QMAN_ARC22 28 /* DCORE3_TPC4 */
|
||||
#define CPU_ID_TPC_QMAN_ARC23 29 /* DCORE3_TPC5 */
|
||||
#define CPU_ID_TPC_QMAN_ARC24 30 /* DCORE0_TPC6 - Never present */
|
||||
|
||||
#define CPU_ID_MME_QMAN_ARC0 31 /* DCORE0_MME0 */
|
||||
#define CPU_ID_MME_QMAN_ARC1 32 /* DCORE2_MME0 */
|
||||
|
||||
#define CPU_ID_EDMA_QMAN_ARC0 33 /* DCORE0_EDMA0 */
|
||||
#define CPU_ID_EDMA_QMAN_ARC1 34 /* DCORE0_EDMA1 */
|
||||
#define CPU_ID_EDMA_QMAN_ARC2 35 /* DCORE1_EDMA0 */
|
||||
#define CPU_ID_EDMA_QMAN_ARC3 36 /* DCORE1_EDMA1 */
|
||||
#define CPU_ID_EDMA_QMAN_ARC4 37 /* DCORE2_EDMA0 */
|
||||
#define CPU_ID_EDMA_QMAN_ARC5 38 /* DCORE2_EDMA1 */
|
||||
#define CPU_ID_EDMA_QMAN_ARC6 39 /* DCORE3_EDMA0 */
|
||||
#define CPU_ID_EDMA_QMAN_ARC7 40 /* DCORE3_EDMA1 */
|
||||
|
||||
#define CPU_ID_PDMA_QMAN_ARC0 41 /* DCORE0_PDMA0 */
|
||||
#define CPU_ID_PDMA_QMAN_ARC1 42 /* DCORE0_PDMA1 */
|
||||
|
||||
#define CPU_ID_ROT_QMAN_ARC0 43 /* ROT0 */
|
||||
#define CPU_ID_ROT_QMAN_ARC1 44 /* ROT1 */
|
||||
|
||||
#define CPU_ID_NIC_QMAN_ARC0 45 /* NIC0_0 */
|
||||
#define CPU_ID_NIC_QMAN_ARC1 46 /* NIC0_1 */
|
||||
#define CPU_ID_NIC_QMAN_ARC2 47 /* NIC1_0 */
|
||||
#define CPU_ID_NIC_QMAN_ARC3 48 /* NIC1_1 */
|
||||
#define CPU_ID_NIC_QMAN_ARC4 49 /* NIC2_0 */
|
||||
#define CPU_ID_NIC_QMAN_ARC5 50 /* NIC2_1 */
|
||||
#define CPU_ID_NIC_QMAN_ARC6 51 /* NIC3_0 */
|
||||
#define CPU_ID_NIC_QMAN_ARC7 52 /* NIC3_1 */
|
||||
#define CPU_ID_NIC_QMAN_ARC8 53 /* NIC4_0 */
|
||||
#define CPU_ID_NIC_QMAN_ARC9 54 /* NIC4_1 */
|
||||
#define CPU_ID_NIC_QMAN_ARC10 55 /* NIC5_0 */
|
||||
#define CPU_ID_NIC_QMAN_ARC11 56 /* NIC5_1 */
|
||||
#define CPU_ID_NIC_QMAN_ARC12 57 /* NIC6_0 */
|
||||
#define CPU_ID_NIC_QMAN_ARC13 58 /* NIC6_1 */
|
||||
#define CPU_ID_NIC_QMAN_ARC14 59 /* NIC7_0 */
|
||||
#define CPU_ID_NIC_QMAN_ARC15 60 /* NIC7_1 */
|
||||
#define CPU_ID_NIC_QMAN_ARC16 61 /* NIC8_0 */
|
||||
#define CPU_ID_NIC_QMAN_ARC17 62 /* NIC8_1 */
|
||||
#define CPU_ID_NIC_QMAN_ARC18 63 /* NIC9_0 */
|
||||
#define CPU_ID_NIC_QMAN_ARC19 64 /* NIC9_1 */
|
||||
#define CPU_ID_NIC_QMAN_ARC20 65 /* NIC10_0 */
|
||||
#define CPU_ID_NIC_QMAN_ARC21 66 /* NIC10_1 */
|
||||
#define CPU_ID_NIC_QMAN_ARC22 67 /* NIC11_0 */
|
||||
#define CPU_ID_NIC_QMAN_ARC23 68 /* NIC11_1 */
|
||||
|
||||
#define CPU_ID_MAX 69
|
||||
#define CPU_ID_SCHED_MAX 6
|
||||
|
||||
#define CPU_ID_ALL 0xFE
|
||||
#define CPU_ID_INVALID 0xFF
|
||||
|
||||
enum arc_regions_t {
|
||||
ARC_REGION0_UNSED = 0,
|
||||
/*
|
||||
* Extension registers
|
||||
* None
|
||||
*/
|
||||
ARC_REGION1_SRAM = 1,
|
||||
/*
|
||||
* Extension registers
|
||||
* AUX_SRAM_LSB_ADDR
|
||||
* AUX_SRAM_MSB_ADDR
|
||||
* ARC Address: 0x1000_0000
|
||||
*/
|
||||
ARC_REGION2_CFG = 2,
|
||||
/*
|
||||
* Extension registers
|
||||
* AUX_CFG_LSB_ADDR
|
||||
* AUX_CFG_MSB_ADDR
|
||||
* ARC Address: 0x2000_0000
|
||||
*/
|
||||
ARC_REGION3_GENERAL = 3,
|
||||
/*
|
||||
* Extension registers
|
||||
* AUX_GENERAL_PURPOSE_LSB_ADDR_0
|
||||
* AUX_GENERAL_PURPOSE_MSB_ADDR_0
|
||||
* ARC Address: 0x3000_0000
|
||||
*/
|
||||
ARC_REGION4_HBM0_FW = 4,
|
||||
/*
|
||||
* Extension registers
|
||||
* AUX_HBM0_LSB_ADDR
|
||||
* AUX_HBM0_MSB_ADDR
|
||||
* AUX_HBM0_OFFSET
|
||||
* ARC Address: 0x4000_0000
|
||||
*/
|
||||
ARC_REGION5_HBM1_GC_DATA = 5,
|
||||
/*
|
||||
* Extension registers
|
||||
* AUX_HBM1_LSB_ADDR
|
||||
* AUX_HBM1_MSB_ADDR
|
||||
* AUX_HBM1_OFFSET
|
||||
* ARC Address: 0x5000_0000
|
||||
*/
|
||||
ARC_REGION6_HBM2_GC_DATA = 6,
|
||||
/*
|
||||
* Extension registers
|
||||
* AUX_HBM2_LSB_ADDR
|
||||
* AUX_HBM2_MSB_ADDR
|
||||
* AUX_HBM2_OFFSET
|
||||
* ARC Address: 0x6000_0000
|
||||
*/
|
||||
ARC_REGION7_HBM3_GC_DATA = 7,
|
||||
/*
|
||||
* Extension registers
|
||||
* AUX_HBM3_LSB_ADDR
|
||||
* AUX_HBM3_MSB_ADDR
|
||||
* AUX_HBM3_OFFSET
|
||||
* ARC Address: 0x7000_0000
|
||||
*/
|
||||
ARC_REGION8_DCCM = 8,
|
||||
/*
|
||||
* Extension registers
|
||||
* None
|
||||
* ARC Address: 0x8000_0000
|
||||
*/
|
||||
ARC_REGION9_PCIE = 9,
|
||||
/*
|
||||
* Extension registers
|
||||
* AUX_PCIE_LSB_ADDR
|
||||
* AUX_PCIE_MSB_ADDR
|
||||
* ARC Address: 0x9000_0000
|
||||
*/
|
||||
ARC_REGION10_GENERAL = 10,
|
||||
/*
|
||||
* Extension registers
|
||||
* AUX_GENERAL_PURPOSE_LSB_ADDR_1
|
||||
* AUX_GENERAL_PURPOSE_MSB_ADDR_1
|
||||
* ARC Address: 0xA000_0000
|
||||
*/
|
||||
ARC_REGION11_GENERAL = 11,
|
||||
/*
|
||||
* Extension registers
|
||||
* AUX_GENERAL_PURPOSE_LSB_ADDR_2
|
||||
* AUX_GENERAL_PURPOSE_MSB_ADDR_2
|
||||
* ARC Address: 0xB000_0000
|
||||
*/
|
||||
ARC_REGION12_GENERAL = 12,
|
||||
/*
|
||||
* Extension registers
|
||||
* AUX_GENERAL_PURPOSE_LSB_ADDR_3
|
||||
* AUX_GENERAL_PURPOSE_MSB_ADDR_3
|
||||
* ARC Address: 0xC000_0000
|
||||
*/
|
||||
ARC_REGION13_GENERAL = 13,
|
||||
/*
|
||||
* Extension registers
|
||||
* AUX_GENERAL_PURPOSE_LSB_ADDR_4
|
||||
* AUX_GENERAL_PURPOSE_MSB_ADDR_4
|
||||
* ARC Address: 0xD000_0000
|
||||
*/
|
||||
ARC_REGION14_GENERAL = 14,
|
||||
/*
|
||||
* Extension registers
|
||||
* AUX_GENERAL_PURPOSE_LSB_ADDR_5
|
||||
* AUX_GENERAL_PURPOSE_MSB_ADDR_5
|
||||
* ARC Address: 0xE000_0000
|
||||
*/
|
||||
ARC_REGION15_LBU = 15
|
||||
/*
|
||||
* Extension registers
|
||||
* None
|
||||
* ARC Address: 0xF000_0000
|
||||
*/
|
||||
};
|
||||
|
||||
#endif /* __GAUDI2_ARC_COMMON_PACKETS_H__ */
|
@ -0,0 +1,567 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_ARC_FARM_ARC0_ACP_ENG_REGS_H_
|
||||
#define ASIC_REG_ARC_FARM_ARC0_ACP_ENG_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* ARC_FARM_ARC0_ACP_ENG
|
||||
* (Prototype: ARC_ACP_ENG)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_0 0x4E8F000
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_1 0x4E8F004
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_2 0x4E8F008
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_3 0x4E8F00C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_4 0x4E8F010
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_5 0x4E8F014
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_6 0x4E8F018
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_7 0x4E8F01C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_8 0x4E8F020
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_9 0x4E8F024
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_10 0x4E8F028
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_11 0x4E8F02C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_12 0x4E8F030
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_13 0x4E8F034
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_14 0x4E8F038
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_15 0x4E8F03C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_16 0x4E8F040
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_17 0x4E8F044
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_18 0x4E8F048
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_19 0x4E8F04C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_20 0x4E8F050
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_21 0x4E8F054
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_22 0x4E8F058
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_23 0x4E8F05C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_24 0x4E8F060
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_25 0x4E8F064
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_26 0x4E8F068
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_27 0x4E8F06C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_28 0x4E8F070
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_29 0x4E8F074
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_30 0x4E8F078
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_31 0x4E8F07C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_32 0x4E8F080
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_33 0x4E8F084
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_34 0x4E8F088
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_35 0x4E8F08C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_36 0x4E8F090
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_37 0x4E8F094
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_38 0x4E8F098
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_39 0x4E8F09C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_40 0x4E8F0A0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_41 0x4E8F0A4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_42 0x4E8F0A8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_43 0x4E8F0AC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_44 0x4E8F0B0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_45 0x4E8F0B4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_46 0x4E8F0B8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_47 0x4E8F0BC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_48 0x4E8F0C0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_49 0x4E8F0C4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_50 0x4E8F0C8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_51 0x4E8F0CC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_52 0x4E8F0D0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_53 0x4E8F0D4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_54 0x4E8F0D8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_55 0x4E8F0DC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_56 0x4E8F0E0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_57 0x4E8F0E4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_58 0x4E8F0E8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_59 0x4E8F0EC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_60 0x4E8F0F0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_61 0x4E8F0F4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_62 0x4E8F0F8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PI_REG_63 0x4E8F0FC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_0 0x4E8F100
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_1 0x4E8F104
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_2 0x4E8F108
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_3 0x4E8F10C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_4 0x4E8F110
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_5 0x4E8F114
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_6 0x4E8F118
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_7 0x4E8F11C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_8 0x4E8F120
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_9 0x4E8F124
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_10 0x4E8F128
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_11 0x4E8F12C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_12 0x4E8F130
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_13 0x4E8F134
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_14 0x4E8F138
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_15 0x4E8F13C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_16 0x4E8F140
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_17 0x4E8F144
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_18 0x4E8F148
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_19 0x4E8F14C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_20 0x4E8F150
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_21 0x4E8F154
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_22 0x4E8F158
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_23 0x4E8F15C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_24 0x4E8F160
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_25 0x4E8F164
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_26 0x4E8F168
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_27 0x4E8F16C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_28 0x4E8F170
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_29 0x4E8F174
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_30 0x4E8F178
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_31 0x4E8F17C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_32 0x4E8F180
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_33 0x4E8F184
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_34 0x4E8F188
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_35 0x4E8F18C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_36 0x4E8F190
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_37 0x4E8F194
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_38 0x4E8F198
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_39 0x4E8F19C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_40 0x4E8F1A0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_41 0x4E8F1A4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_42 0x4E8F1A8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_43 0x4E8F1AC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_44 0x4E8F1B0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_45 0x4E8F1B4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_46 0x4E8F1B8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_47 0x4E8F1BC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_48 0x4E8F1C0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_49 0x4E8F1C4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_50 0x4E8F1C8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_51 0x4E8F1CC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_52 0x4E8F1D0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_53 0x4E8F1D4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_54 0x4E8F1D8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_55 0x4E8F1DC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_56 0x4E8F1E0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_57 0x4E8F1E4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_58 0x4E8F1E8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_59 0x4E8F1EC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_60 0x4E8F1F0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_61 0x4E8F1F4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_62 0x4E8F1F8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_CI_REG_63 0x4E8F1FC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_0 0x4E8F200
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_1 0x4E8F204
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_2 0x4E8F208
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_3 0x4E8F20C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_4 0x4E8F210
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_5 0x4E8F214
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_6 0x4E8F218
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_7 0x4E8F21C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_8 0x4E8F220
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_9 0x4E8F224
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_10 0x4E8F228
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_11 0x4E8F22C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_12 0x4E8F230
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_13 0x4E8F234
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_14 0x4E8F238
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_15 0x4E8F23C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_16 0x4E8F240
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_17 0x4E8F244
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_18 0x4E8F248
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_19 0x4E8F24C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_20 0x4E8F250
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_21 0x4E8F254
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_22 0x4E8F258
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_23 0x4E8F25C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_24 0x4E8F260
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_25 0x4E8F264
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_26 0x4E8F268
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_27 0x4E8F26C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_28 0x4E8F270
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_29 0x4E8F274
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_30 0x4E8F278
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_31 0x4E8F27C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_32 0x4E8F280
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_33 0x4E8F284
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_34 0x4E8F288
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_35 0x4E8F28C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_36 0x4E8F290
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_37 0x4E8F294
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_38 0x4E8F298
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_39 0x4E8F29C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_40 0x4E8F2A0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_41 0x4E8F2A4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_42 0x4E8F2A8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_43 0x4E8F2AC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_44 0x4E8F2B0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_45 0x4E8F2B4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_46 0x4E8F2B8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_47 0x4E8F2BC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_48 0x4E8F2C0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_49 0x4E8F2C4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_50 0x4E8F2C8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_51 0x4E8F2CC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_52 0x4E8F2D0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_53 0x4E8F2D4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_54 0x4E8F2D8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_55 0x4E8F2DC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_56 0x4E8F2E0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_57 0x4E8F2E4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_58 0x4E8F2E8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_59 0x4E8F2EC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_60 0x4E8F2F0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_61 0x4E8F2F4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_62 0x4E8F2F8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_PR_REG_63 0x4E8F2FC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_0 0x4E8F300
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_1 0x4E8F304
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_2 0x4E8F308
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_3 0x4E8F30C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_4 0x4E8F310
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_5 0x4E8F314
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_6 0x4E8F318
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_7 0x4E8F31C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_8 0x4E8F320
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_9 0x4E8F324
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_10 0x4E8F328
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_11 0x4E8F32C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_12 0x4E8F330
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_13 0x4E8F334
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_14 0x4E8F338
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_15 0x4E8F33C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_16 0x4E8F340
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_17 0x4E8F344
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_18 0x4E8F348
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_19 0x4E8F34C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_20 0x4E8F350
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_21 0x4E8F354
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_22 0x4E8F358
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_23 0x4E8F35C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_24 0x4E8F360
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_25 0x4E8F364
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_26 0x4E8F368
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_27 0x4E8F36C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_28 0x4E8F370
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_29 0x4E8F374
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_30 0x4E8F378
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_31 0x4E8F37C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_32 0x4E8F380
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_33 0x4E8F384
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_34 0x4E8F388
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_35 0x4E8F38C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_36 0x4E8F390
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_37 0x4E8F394
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_38 0x4E8F398
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_39 0x4E8F39C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_40 0x4E8F3A0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_41 0x4E8F3A4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_42 0x4E8F3A8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_43 0x4E8F3AC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_44 0x4E8F3B0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_45 0x4E8F3B4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_46 0x4E8F3B8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_47 0x4E8F3BC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_48 0x4E8F3C0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_49 0x4E8F3C4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_50 0x4E8F3C8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_51 0x4E8F3CC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_52 0x4E8F3D0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_53 0x4E8F3D4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_54 0x4E8F3D8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_55 0x4E8F3DC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_56 0x4E8F3E0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_57 0x4E8F3E4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_58 0x4E8F3E8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_59 0x4E8F3EC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_60 0x4E8F3F0
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_61 0x4E8F3F4
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_62 0x4E8F3F8
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_MK_REG_63 0x4E8F3FC
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_SELECTED_QUEUE_ID 0x4E8F400
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_GRANTS_WEIGHT_PRIO_0 0x4E8F404
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_GRANTS_WEIGHT_PRIO_1 0x4E8F408
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_GRANTS_WEIGHT_PRIO_2 0x4E8F40C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_GRANTS_COUNTER_PRIO_0 0x4E8F410
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_GRANTS_COUNTER_PRIO_1 0x4E8F414
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_GRANTS_COUNTER_PRIO_2 0x4E8F418
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_DBG_PRIO_OUT_CNT_0 0x4E8F41C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_DBG_PRIO_OUT_CNT_1 0x4E8F420
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_DBG_PRIO_OUT_CNT_2 0x4E8F424
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_DBG_PRIO_OUT_CNT_3 0x4E8F428
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_DBG_PRIO_RD_CNT_0 0x4E8F42C
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_DBG_PRIO_RD_CNT_1 0x4E8F430
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_DBG_PRIO_RD_CNT_2 0x4E8F434
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_DBG_PRIO_RD_CNT_3 0x4E8F438
|
||||
|
||||
#define mmARC_FARM_ARC0_ACP_ENG_ACP_DBG_REG 0x4E8F43C
|
||||
|
||||
#endif /* ASIC_REG_ARC_FARM_ARC0_ACP_ENG_REGS_H_ */
|
@ -0,0 +1,819 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_ARC_FARM_ARC0_AUX_MASKS_H_
|
||||
#define ASIC_REG_ARC_FARM_ARC0_AUX_MASKS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* ARC_FARM_ARC0_AUX
|
||||
* (Prototype: QMAN_ARC_AUX)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_RUN_HALT_REQ */
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_REQ_RUN_REQ_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_REQ_RUN_REQ_MASK 0x1
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_REQ_HALT_REQ_SHIFT 1
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_REQ_HALT_REQ_MASK 0x2
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_RUN_HALT_ACK */
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_RUN_ACK_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_RUN_ACK_MASK 0x1
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_HALT_ACK_SHIFT 4
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_HALT_ACK_MASK 0x10
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_SYS_HALT_R_SHIFT 8
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_SYS_HALT_R_MASK 0x100
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_SYS_TF_HALT_R_SHIFT 12
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_SYS_TF_HALT_R_MASK 0x1000
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_SYS_SLEEP_R_SHIFT 16
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_SYS_SLEEP_R_MASK 0x10000
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_SYS_SLEEP_MODE_R_SHIFT 17
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_SYS_SLEEP_MODE_R_MASK 0xE0000
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_WATCHDOG_RESET_SHIFT 20
|
||||
#define ARC_FARM_ARC0_AUX_RUN_HALT_ACK_WATCHDOG_RESET_MASK 0x100000
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_RST_VEC_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_RST_VEC_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_RST_VEC_ADDR_VAL_MASK 0x3FFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DBG_MODE */
|
||||
#define ARC_FARM_ARC0_AUX_DBG_MODE_DBG_PROT_SEL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DBG_MODE_DBG_PROT_SEL_MASK 0x1
|
||||
#define ARC_FARM_ARC0_AUX_DBG_MODE_DBGEN_SHIFT 4
|
||||
#define ARC_FARM_ARC0_AUX_DBG_MODE_DBGEN_MASK 0x10
|
||||
#define ARC_FARM_ARC0_AUX_DBG_MODE_NIDEN_SHIFT 8
|
||||
#define ARC_FARM_ARC0_AUX_DBG_MODE_NIDEN_MASK 0x100
|
||||
#define ARC_FARM_ARC0_AUX_DBG_MODE_CASHE_RST_DISABLE_SHIFT 12
|
||||
#define ARC_FARM_ARC0_AUX_DBG_MODE_CASHE_RST_DISABLE_MASK 0x1000
|
||||
#define ARC_FARM_ARC0_AUX_DBG_MODE_DDCM_DMI_PRIORITY_SHIFT 16
|
||||
#define ARC_FARM_ARC0_AUX_DBG_MODE_DDCM_DMI_PRIORITY_MASK 0x10000
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CLUSTER_NUM */
|
||||
#define ARC_FARM_ARC0_AUX_CLUSTER_NUM_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CLUSTER_NUM_VAL_MASK 0xFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_NUM */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_NUM_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_NUM_VAL_MASK 0xFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_WAKE_UP_EVENT */
|
||||
#define ARC_FARM_ARC0_AUX_WAKE_UP_EVENT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_WAKE_UP_EVENT_VAL_MASK 0x1
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_SYS_ADDR_BASE */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_SYS_ADDR_BASE_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_SYS_ADDR_BASE_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CTI_AP_STS */
|
||||
#define ARC_FARM_ARC0_AUX_CTI_AP_STS_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CTI_AP_STS_VAL_MASK 0xFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CTI_CFG_MUX_SEL */
|
||||
#define ARC_FARM_ARC0_AUX_CTI_CFG_MUX_SEL_RUN_HALT_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CTI_CFG_MUX_SEL_RUN_HALT_MASK 0x1
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_RST */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_RST_CORE_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_RST_CORE_MASK 0x1
|
||||
#define ARC_FARM_ARC0_AUX_ARC_RST_PRESETDBGN_SHIFT 4
|
||||
#define ARC_FARM_ARC0_AUX_ARC_RST_PRESETDBGN_MASK 0x10
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_RST_REQ */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_RST_REQ_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_RST_REQ_VAL_MASK 0x1
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_SRAM_LSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_SRAM_LSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_SRAM_LSB_ADDR_VAL_MASK 0x3F
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_SRAM_MSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_SRAM_MSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_SRAM_MSB_ADDR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_PCIE_LSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_PCIE_LSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_PCIE_LSB_ADDR_VAL_MASK 0xF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_PCIE_MSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_PCIE_MSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_PCIE_MSB_ADDR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CFG_LSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_CFG_LSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CFG_LSB_ADDR_VAL_MASK 0xF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CFG_MSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_CFG_MSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CFG_MSB_ADDR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_HBM0_LSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_HBM0_LSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_HBM0_LSB_ADDR_VAL_MASK 0xF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_HBM0_MSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_HBM0_MSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_HBM0_MSB_ADDR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_HBM1_LSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_HBM1_LSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_HBM1_LSB_ADDR_VAL_MASK 0xF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_HBM1_MSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_HBM1_MSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_HBM1_MSB_ADDR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_HBM2_LSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_HBM2_LSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_HBM2_LSB_ADDR_VAL_MASK 0xF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_HBM2_MSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_HBM2_MSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_HBM2_MSB_ADDR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_HBM3_LSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_HBM3_LSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_HBM3_LSB_ADDR_VAL_MASK 0xF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_HBM3_MSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_HBM3_MSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_HBM3_MSB_ADDR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_HBM0_OFFSET */
|
||||
#define ARC_FARM_ARC0_AUX_HBM0_OFFSET_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_HBM0_OFFSET_VAL_MASK 0xFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_HBM1_OFFSET */
|
||||
#define ARC_FARM_ARC0_AUX_HBM1_OFFSET_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_HBM1_OFFSET_VAL_MASK 0xFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_HBM2_OFFSET */
|
||||
#define ARC_FARM_ARC0_AUX_HBM2_OFFSET_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_HBM2_OFFSET_VAL_MASK 0xFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_HBM3_OFFSET */
|
||||
#define ARC_FARM_ARC0_AUX_HBM3_OFFSET_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_HBM3_OFFSET_VAL_MASK 0xFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_GENERAL_PURPOSE_LSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_GENERAL_PURPOSE_LSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_GENERAL_PURPOSE_LSB_ADDR_VAL_MASK 0xF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_GENERAL_PURPOSE_MSB_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_GENERAL_PURPOSE_MSB_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_GENERAL_PURPOSE_MSB_ADDR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_CBU_AWCACHE_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_CBU_AWCACHE_OVR_AXI_WRITE_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_CBU_AWCACHE_OVR_AXI_WRITE_MASK 0xF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_CBU_AWCACHE_OVR_AXI_WRITE_EN_SHIFT 4
|
||||
#define ARC_FARM_ARC0_AUX_ARC_CBU_AWCACHE_OVR_AXI_WRITE_EN_MASK 0xF0
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_LBU_AWCACHE_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_LBU_AWCACHE_OVR_AXI_WRITE_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_LBU_AWCACHE_OVR_AXI_WRITE_MASK 0xF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_LBU_AWCACHE_OVR_AXI_WRITE_EN_SHIFT 4
|
||||
#define ARC_FARM_ARC0_AUX_ARC_LBU_AWCACHE_OVR_AXI_WRITE_EN_MASK 0xF0
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CONTEXT_ID */
|
||||
#define ARC_FARM_ARC0_AUX_CONTEXT_ID_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CONTEXT_ID_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CID_OFFSET */
|
||||
#define ARC_FARM_ARC0_AUX_CID_OFFSET_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CID_OFFSET_VAL_MASK 0xFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_SW_INTR */
|
||||
#define ARC_FARM_ARC0_AUX_SW_INTR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_SW_INTR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_IRQ_INTR_MASK */
|
||||
#define ARC_FARM_ARC0_AUX_IRQ_INTR_MASK_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_IRQ_INTR_MASK_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_SEI_INTR_STS */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_SEI_INTR_STS_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_SEI_INTR_STS_VAL_MASK 0x3FFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_SEI_INTR_CLR */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_SEI_INTR_CLR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_SEI_INTR_CLR_VAL_MASK 0x3FFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_SEI_INTR_MASK */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_SEI_INTR_MASK_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_SEI_INTR_MASK_VAL_MASK 0x3FFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_EXCPTN_CAUSE */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_EXCPTN_CAUSE_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_EXCPTN_CAUSE_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_SEI_INTR_HALT_EN */
|
||||
#define ARC_FARM_ARC0_AUX_SEI_INTR_HALT_EN_INTR_EN_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_SEI_INTR_HALT_EN_INTR_EN_MASK 0x1
|
||||
#define ARC_FARM_ARC0_AUX_SEI_INTR_HALT_EN_HALT_EN_SHIFT 1
|
||||
#define ARC_FARM_ARC0_AUX_SEI_INTR_HALT_EN_HALT_EN_MASK 0x2
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_SEI_INTR_HALT_MASK */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_SEI_INTR_HALT_MASK_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_SEI_INTR_HALT_MASK_VAL_MASK 0x3FFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_QMAN_SEI_INTR_HALT_MASK */
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_SEI_INTR_HALT_MASK_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_SEI_INTR_HALT_MASK_VAL_MASK 0x3FFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_REI_INTR_STS */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REI_INTR_STS_SERR_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REI_INTR_STS_SERR_MASK 0x1
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REI_INTR_STS_DERR_SHIFT 1
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REI_INTR_STS_DERR_MASK 0x2
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_REI_INTR_CLR */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REI_INTR_CLR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REI_INTR_CLR_VAL_MASK 0x3
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_REI_INTR_MASK */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REI_INTR_MASK_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REI_INTR_MASK_VAL_MASK 0x3
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_ECC_ERR_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_ECC_ERR_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_ECC_ERR_ADDR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_ECC_SYNDROME */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_ECC_SYNDROME_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_ECC_SYNDROME_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_I_CACHE_ECC_ERR_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_I_CACHE_ECC_ERR_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_I_CACHE_ECC_ERR_ADDR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_I_CACHE_ECC_SYNDROME */
|
||||
#define ARC_FARM_ARC0_AUX_I_CACHE_ECC_SYNDROME_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_I_CACHE_ECC_SYNDROME_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_D_CACHE_ECC_ERR_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_D_CACHE_ECC_ERR_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_D_CACHE_ECC_ERR_ADDR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_D_CACHE_ECC_SYNDROME */
|
||||
#define ARC_FARM_ARC0_AUX_D_CACHE_ECC_SYNDROME_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_D_CACHE_ECC_SYNDROME_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBW_TRMINATE_AWADDR_ERR */
|
||||
#define ARC_FARM_ARC0_AUX_LBW_TRMINATE_AWADDR_ERR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBW_TRMINATE_AWADDR_ERR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBW_TRMINATE_ARADDR_ERR */
|
||||
#define ARC_FARM_ARC0_AUX_LBW_TRMINATE_ARADDR_ERR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBW_TRMINATE_ARADDR_ERR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_BRESP */
|
||||
#define ARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_BRESP_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_BRESP_VAL_MASK 0x3
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_RRESP */
|
||||
#define ARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_RRESP_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_RRESP_VAL_MASK 0x3
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_AXLEN */
|
||||
#define ARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_AXLEN_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_AXLEN_VAL_MASK 0xFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_AXSIZE */
|
||||
#define ARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_AXSIZE_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_AXSIZE_VAL_MASK 0x7
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_SCRATCHPAD */
|
||||
#define ARC_FARM_ARC0_AUX_SCRATCHPAD_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_SCRATCHPAD_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_TOTAL_CBU_WR_CNT */
|
||||
#define ARC_FARM_ARC0_AUX_TOTAL_CBU_WR_CNT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_TOTAL_CBU_WR_CNT_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_INFLIGHT_CBU_WR_CNT */
|
||||
#define ARC_FARM_ARC0_AUX_INFLIGHT_CBU_WR_CNT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_INFLIGHT_CBU_WR_CNT_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_TOTAL_CBU_RD_CNT */
|
||||
#define ARC_FARM_ARC0_AUX_TOTAL_CBU_RD_CNT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_TOTAL_CBU_RD_CNT_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_INFLIGHT_CBU_RD_CNT */
|
||||
#define ARC_FARM_ARC0_AUX_INFLIGHT_CBU_RD_CNT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_INFLIGHT_CBU_RD_CNT_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_TOTAL_LBU_WR_CNT */
|
||||
#define ARC_FARM_ARC0_AUX_TOTAL_LBU_WR_CNT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_TOTAL_LBU_WR_CNT_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_INFLIGHT_LBU_WR_CNT */
|
||||
#define ARC_FARM_ARC0_AUX_INFLIGHT_LBU_WR_CNT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_INFLIGHT_LBU_WR_CNT_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_TOTAL_LBU_RD_CNT */
|
||||
#define ARC_FARM_ARC0_AUX_TOTAL_LBU_RD_CNT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_TOTAL_LBU_RD_CNT_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_INFLIGHT_LBU_RD_CNT */
|
||||
#define ARC_FARM_ARC0_AUX_INFLIGHT_LBU_RD_CNT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_INFLIGHT_LBU_RD_CNT_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_ARUSER_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_ARUSER_OVR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_ARUSER_OVR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_ARUSER_OVR_EN */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_ARUSER_OVR_EN_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_ARUSER_OVR_EN_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_AWUSER_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AWUSER_OVR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AWUSER_OVR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_AWUSER_OVR_EN */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AWUSER_OVR_EN_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AWUSER_OVR_EN_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_ARUSER_MSB_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_ARUSER_MSB_OVR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_ARUSER_MSB_OVR_VAL_MASK 0x3FF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_ARUSER_MSB_OVR_EN */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_ARUSER_MSB_OVR_EN_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_ARUSER_MSB_OVR_EN_VAL_MASK 0x3FF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_AWUSER_MSB_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AWUSER_MSB_OVR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AWUSER_MSB_OVR_VAL_MASK 0x3FF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_AWUSER_MSB_OVR_EN */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AWUSER_MSB_OVR_EN_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AWUSER_MSB_OVR_EN_VAL_MASK 0x3FF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_AXCACHE_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AXCACHE_OVR_CBU_READ_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AXCACHE_OVR_CBU_READ_MASK 0xF
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AXCACHE_OVR_CBU_WRITE_SHIFT 4
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AXCACHE_OVR_CBU_WRITE_MASK 0xF0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AXCACHE_OVR_CBU_RD_EN_SHIFT 8
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AXCACHE_OVR_CBU_RD_EN_MASK 0xF00
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AXCACHE_OVR_CBU_WR_EN_SHIFT 12
|
||||
#define ARC_FARM_ARC0_AUX_CBU_AXCACHE_OVR_CBU_WR_EN_MASK 0xF000
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_LOCK_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_LOCK_OVR_CBU_READ_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_LOCK_OVR_CBU_READ_MASK 0x3
|
||||
#define ARC_FARM_ARC0_AUX_CBU_LOCK_OVR_CBU_WRITE_SHIFT 4
|
||||
#define ARC_FARM_ARC0_AUX_CBU_LOCK_OVR_CBU_WRITE_MASK 0x30
|
||||
#define ARC_FARM_ARC0_AUX_CBU_LOCK_OVR_CBU_RD_EN_SHIFT 8
|
||||
#define ARC_FARM_ARC0_AUX_CBU_LOCK_OVR_CBU_RD_EN_MASK 0x300
|
||||
#define ARC_FARM_ARC0_AUX_CBU_LOCK_OVR_CBU_WR_EN_SHIFT 12
|
||||
#define ARC_FARM_ARC0_AUX_CBU_LOCK_OVR_CBU_WR_EN_MASK 0x3000
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_PROT_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_PROT_OVR_CBU_READ_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_PROT_OVR_CBU_READ_MASK 0x7
|
||||
#define ARC_FARM_ARC0_AUX_CBU_PROT_OVR_CBU_WRITE_SHIFT 4
|
||||
#define ARC_FARM_ARC0_AUX_CBU_PROT_OVR_CBU_WRITE_MASK 0x70
|
||||
#define ARC_FARM_ARC0_AUX_CBU_PROT_OVR_CBU_RD_EN_SHIFT 8
|
||||
#define ARC_FARM_ARC0_AUX_CBU_PROT_OVR_CBU_RD_EN_MASK 0x700
|
||||
#define ARC_FARM_ARC0_AUX_CBU_PROT_OVR_CBU_WR_EN_SHIFT 12
|
||||
#define ARC_FARM_ARC0_AUX_CBU_PROT_OVR_CBU_WR_EN_MASK 0x7000
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_MAX_OUTSTANDING */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_MAX_OUTSTANDING_CBU_READ_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_MAX_OUTSTANDING_CBU_READ_MASK 0xFF
|
||||
#define ARC_FARM_ARC0_AUX_CBU_MAX_OUTSTANDING_CBU_WRITE_SHIFT 8
|
||||
#define ARC_FARM_ARC0_AUX_CBU_MAX_OUTSTANDING_CBU_WRITE_MASK 0xFF00
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_EARLY_BRESP_EN */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_EARLY_BRESP_EN_CBU_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_EARLY_BRESP_EN_CBU_VAL_MASK 0x1
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORCE_RSP_OK */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORCE_RSP_OK_CBU_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORCE_RSP_OK_CBU_VAL_MASK 0x1
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_NO_WR_INFLIGHT */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_NO_WR_INFLIGHT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_NO_WR_INFLIGHT_VAL_MASK 0x1
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_SEI_INTR_ID */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_SEI_INTR_ID_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_SEI_INTR_ID_VAL_MASK 0x7F
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBU_ARUSER_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_LBU_ARUSER_OVR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBU_ARUSER_OVR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBU_ARUSER_OVR_EN */
|
||||
#define ARC_FARM_ARC0_AUX_LBU_ARUSER_OVR_EN_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBU_ARUSER_OVR_EN_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBU_AWUSER_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_LBU_AWUSER_OVR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBU_AWUSER_OVR_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBU_AWUSER_OVR_EN */
|
||||
#define ARC_FARM_ARC0_AUX_LBU_AWUSER_OVR_EN_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBU_AWUSER_OVR_EN_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBU_AXCACHE_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_LBU_AXCACHE_OVR_LBU_READ_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBU_AXCACHE_OVR_LBU_READ_MASK 0xF
|
||||
#define ARC_FARM_ARC0_AUX_LBU_AXCACHE_OVR_LBU_WRITE_SHIFT 4
|
||||
#define ARC_FARM_ARC0_AUX_LBU_AXCACHE_OVR_LBU_WRITE_MASK 0xF0
|
||||
#define ARC_FARM_ARC0_AUX_LBU_AXCACHE_OVR_LBU_RD_EN_SHIFT 8
|
||||
#define ARC_FARM_ARC0_AUX_LBU_AXCACHE_OVR_LBU_RD_EN_MASK 0xF00
|
||||
#define ARC_FARM_ARC0_AUX_LBU_AXCACHE_OVR_LBU_WR_EN_SHIFT 12
|
||||
#define ARC_FARM_ARC0_AUX_LBU_AXCACHE_OVR_LBU_WR_EN_MASK 0xF000
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBU_LOCK_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_LBU_LOCK_OVR_LBU_READ_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBU_LOCK_OVR_LBU_READ_MASK 0x3
|
||||
#define ARC_FARM_ARC0_AUX_LBU_LOCK_OVR_LBU_WRITE_SHIFT 4
|
||||
#define ARC_FARM_ARC0_AUX_LBU_LOCK_OVR_LBU_WRITE_MASK 0x30
|
||||
#define ARC_FARM_ARC0_AUX_LBU_LOCK_OVR_LBU_RD_EN_SHIFT 8
|
||||
#define ARC_FARM_ARC0_AUX_LBU_LOCK_OVR_LBU_RD_EN_MASK 0x300
|
||||
#define ARC_FARM_ARC0_AUX_LBU_LOCK_OVR_LBU_WR_EN_SHIFT 12
|
||||
#define ARC_FARM_ARC0_AUX_LBU_LOCK_OVR_LBU_WR_EN_MASK 0x3000
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBU_PROT_OVR */
|
||||
#define ARC_FARM_ARC0_AUX_LBU_PROT_OVR_LBU_READ_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBU_PROT_OVR_LBU_READ_MASK 0x7
|
||||
#define ARC_FARM_ARC0_AUX_LBU_PROT_OVR_LBU_WRITE_SHIFT 4
|
||||
#define ARC_FARM_ARC0_AUX_LBU_PROT_OVR_LBU_WRITE_MASK 0x70
|
||||
#define ARC_FARM_ARC0_AUX_LBU_PROT_OVR_LBU_RD_EN_SHIFT 8
|
||||
#define ARC_FARM_ARC0_AUX_LBU_PROT_OVR_LBU_RD_EN_MASK 0x700
|
||||
#define ARC_FARM_ARC0_AUX_LBU_PROT_OVR_LBU_WR_EN_SHIFT 12
|
||||
#define ARC_FARM_ARC0_AUX_LBU_PROT_OVR_LBU_WR_EN_MASK 0x7000
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBU_MAX_OUTSTANDING */
|
||||
#define ARC_FARM_ARC0_AUX_LBU_MAX_OUTSTANDING_LBU_READ_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBU_MAX_OUTSTANDING_LBU_READ_MASK 0xFF
|
||||
#define ARC_FARM_ARC0_AUX_LBU_MAX_OUTSTANDING_LBU_WRITE_SHIFT 8
|
||||
#define ARC_FARM_ARC0_AUX_LBU_MAX_OUTSTANDING_LBU_WRITE_MASK 0xFF00
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBU_EARLY_BRESP_EN */
|
||||
#define ARC_FARM_ARC0_AUX_LBU_EARLY_BRESP_EN_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBU_EARLY_BRESP_EN_VAL_MASK 0x1
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBU_FORCE_RSP_OK */
|
||||
#define ARC_FARM_ARC0_AUX_LBU_FORCE_RSP_OK_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBU_FORCE_RSP_OK_VAL_MASK 0x1
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBU_NO_WR_INFLIGHT */
|
||||
#define ARC_FARM_ARC0_AUX_LBU_NO_WR_INFLIGHT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBU_NO_WR_INFLIGHT_VAL_MASK 0x1
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBU_SEI_INTR_ID */
|
||||
#define ARC_FARM_ARC0_AUX_LBU_SEI_INTR_ID_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBU_SEI_INTR_ID_VAL_MASK 0x3FF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_QUEUE_BASE_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_BASE_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_BASE_ADDR_VAL_MASK 0xFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_QUEUE_SIZE */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_SIZE_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_SIZE_VAL_MASK 0xFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_QUEUE_PI */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_PI_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_PI_VAL_MASK 0xFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_QUEUE_CI */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_CI_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_CI_VAL_MASK 0xFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_QUEUE_PUSH_REG */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_PUSH_REG_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_PUSH_REG_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_QUEUE_MAX_OCCUPANCY */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_MAX_OCCUPANCY_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_MAX_OCCUPANCY_VAL_MASK 0xFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_QUEUE_VALID_ENTRIES */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_VALID_ENTRIES_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_VALID_ENTRIES_VAL_MASK 0xFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_GENERAL_Q_VLD_ENTRY_MASK */
|
||||
#define ARC_FARM_ARC0_AUX_GENERAL_Q_VLD_ENTRY_MASK_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_GENERAL_Q_VLD_ENTRY_MASK_VAL_MASK 0xFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_NIC_Q_VLD_ENTRY_MASK */
|
||||
#define ARC_FARM_ARC0_AUX_NIC_Q_VLD_ENTRY_MASK_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_NIC_Q_VLD_ENTRY_MASK_VAL_MASK 0xFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_QUEUE_DROP_EN */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_DROP_EN_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_DROP_EN_VAL_MASK 0x1
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_QUEUE_WARN_MSG */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_WARN_MSG_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_WARN_MSG_VAL_MASK 0xFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_QUEUE_ALERT_MSG */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_ALERT_MSG_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_QUEUE_ALERT_MSG_VAL_MASK 0xFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWPROT */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWPROT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWPROT_VAL_MASK 0x7
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWUSER */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWUSER_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWUSER_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWBURST */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWBURST_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWBURST_VAL_MASK 0x3
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWLOCK */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWLOCK_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWLOCK_VAL_MASK 0x1
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWCACHE */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWCACHE_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWCACHE_VAL_MASK 0xF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_WRR_ARB_WEIGHT */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_WRR_ARB_WEIGHT_LBW_SLV_AXI_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_WRR_ARB_WEIGHT_LBW_SLV_AXI_MASK 0xF
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_WRR_ARB_WEIGHT_GEN_AXI_SHIFT 4
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_WRR_ARB_WEIGHT_GEN_AXI_MASK 0xF0
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_Q_PUSH_FIFO_FULL_CFG */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_Q_PUSH_FIFO_FULL_CFG_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_Q_PUSH_FIFO_FULL_CFG_VAL_MASK 0x1F
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_Q_PUSH_FIFO_CNT */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_Q_PUSH_FIFO_CNT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_Q_PUSH_FIFO_CNT_VAL_MASK 0x1F
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_QMAN_CQ_IFIFO_SHADOW_CI */
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_CQ_IFIFO_SHADOW_CI_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_CQ_IFIFO_SHADOW_CI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_QMAN_ARC_CQ_IFIFO_SHADOW_CI */
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_ARC_CQ_IFIFO_SHADOW_CI_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_ARC_CQ_IFIFO_SHADOW_CI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_QMAN_CQ_SHADOW_CI */
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_CQ_SHADOW_CI_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_CQ_SHADOW_CI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_QMAN_ARC_CQ_SHADOW_CI */
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_ARC_CQ_SHADOW_CI_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_ARC_CQ_SHADOW_CI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_AUX2APB_PROT */
|
||||
#define ARC_FARM_ARC0_AUX_AUX2APB_PROT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_AUX2APB_PROT_VAL_MASK 0x7
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBW_FORK_WIN_EN */
|
||||
#define ARC_FARM_ARC0_AUX_LBW_FORK_WIN_EN_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBW_FORK_WIN_EN_VAL_MASK 0x3
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_QMAN_LBW_FORK_BASE_ADDR0 */
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_LBW_FORK_BASE_ADDR0_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_LBW_FORK_BASE_ADDR0_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_QMAN_LBW_FORK_ADDR_MASK0 */
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_LBW_FORK_ADDR_MASK0_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_LBW_FORK_ADDR_MASK0_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_QMAN_LBW_FORK_BASE_ADDR1 */
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_LBW_FORK_BASE_ADDR1_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_LBW_FORK_BASE_ADDR1_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_QMAN_LBW_FORK_ADDR_MASK1 */
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_LBW_FORK_ADDR_MASK1_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_QMAN_LBW_FORK_ADDR_MASK1_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_FARM_LBW_FORK_BASE_ADDR0 */
|
||||
#define ARC_FARM_ARC0_AUX_FARM_LBW_FORK_BASE_ADDR0_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_FARM_LBW_FORK_BASE_ADDR0_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_FARM_LBW_FORK_ADDR_MASK0 */
|
||||
#define ARC_FARM_ARC0_AUX_FARM_LBW_FORK_ADDR_MASK0_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_FARM_LBW_FORK_ADDR_MASK0_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_FARM_LBW_FORK_BASE_ADDR1 */
|
||||
#define ARC_FARM_ARC0_AUX_FARM_LBW_FORK_BASE_ADDR1_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_FARM_LBW_FORK_BASE_ADDR1_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_FARM_LBW_FORK_ADDR_MASK1 */
|
||||
#define ARC_FARM_ARC0_AUX_FARM_LBW_FORK_ADDR_MASK1_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_FARM_LBW_FORK_ADDR_MASK1_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBW_APB_FORK_MAX_ADDR0 */
|
||||
#define ARC_FARM_ARC0_AUX_LBW_APB_FORK_MAX_ADDR0_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBW_APB_FORK_MAX_ADDR0_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_LBW_APB_FORK_MAX_ADDR1 */
|
||||
#define ARC_FARM_ARC0_AUX_LBW_APB_FORK_MAX_ADDR1_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_LBW_APB_FORK_MAX_ADDR1_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_ACC_ENGS_LBW_FORK_MASK */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_ACC_ENGS_LBW_FORK_MASK_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_ACC_ENGS_LBW_FORK_MASK_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_DUP_ENG_LBW_FORK_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_DUP_ENG_LBW_FORK_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_DUP_ENG_LBW_FORK_ADDR_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_ACP_ENG_LBW_FORK_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_ACP_ENG_LBW_FORK_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_ACP_ENG_LBW_FORK_ADDR_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_ACC_ENGS_VIRTUAL_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_ACC_ENGS_VIRTUAL_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_ACC_ENGS_VIRTUAL_ADDR_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_WIN_EN */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_WIN_EN_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_WIN_EN_VAL_MASK 0xF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR0_LSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR0_LSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR0_LSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR0_MSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR0_MSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR0_MSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK0_LSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK0_LSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK0_LSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK0_MSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK0_MSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK0_MSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR1_LSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR1_LSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR1_LSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR1_MSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR1_MSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR1_MSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK1_LSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK1_LSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK1_LSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK1_MSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK1_MSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK1_MSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR2_LSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR2_LSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR2_LSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR2_MSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR2_MSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR2_MSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK2_LSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK2_LSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK2_LSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK2_MSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK2_MSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK2_MSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR3_LSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR3_LSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR3_LSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR3_MSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR3_MSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR3_MSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK3_LSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK3_LSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK3_LSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK3_MSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK3_MSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK3_MSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_TRMINATE_ARADDR_LSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_TRMINATE_ARADDR_LSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_TRMINATE_ARADDR_LSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CBU_TRMINATE_ARADDR_MSB */
|
||||
#define ARC_FARM_ARC0_AUX_CBU_TRMINATE_ARADDR_MSB_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CBU_TRMINATE_ARADDR_MSB_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CFG_CBU_TERMINATE_BRESP */
|
||||
#define ARC_FARM_ARC0_AUX_CFG_CBU_TERMINATE_BRESP_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CFG_CBU_TERMINATE_BRESP_VAL_MASK 0x3
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CFG_CBU_TERMINATE_RRESP */
|
||||
#define ARC_FARM_ARC0_AUX_CFG_CBU_TERMINATE_RRESP_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CFG_CBU_TERMINATE_RRESP_VAL_MASK 0x3
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_REGION_CFG */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_0_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_0_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_1_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_1_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_2_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_2_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_3_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_3_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_4_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_4_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_5_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_5_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_6_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_6_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_7_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_7_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_8_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_8_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_9_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_9_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_10_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_10_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_11_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_11_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_12_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_12_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_13_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_13_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_14_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_14_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_15_ASID_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_15_ASID_MASK 0x3FF
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_MMU_BP_SHIFT 12
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_MMU_BP_MASK 0x1000
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_PROT_VAL_SHIFT 16
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_PROT_VAL_MASK 0x70000
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_PROT_VAL_EN_SHIFT 20
|
||||
#define ARC_FARM_ARC0_AUX_ARC_REGION_CFG_PROT_VAL_EN_MASK 0x700000
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_TRMINATE_AWADDR_ERR */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_TRMINATE_AWADDR_ERR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_TRMINATE_AWADDR_ERR_VAL_MASK 0xFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_DCCM_TRMINATE_ARADDR_ERR */
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_TRMINATE_ARADDR_ERR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_DCCM_TRMINATE_ARADDR_ERR_VAL_MASK 0xFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CFG_DCCM_TERMINATE_BRESP */
|
||||
#define ARC_FARM_ARC0_AUX_CFG_DCCM_TERMINATE_BRESP_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CFG_DCCM_TERMINATE_BRESP_VAL_MASK 0x3
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CFG_DCCM_TERMINATE_RRESP */
|
||||
#define ARC_FARM_ARC0_AUX_CFG_DCCM_TERMINATE_RRESP_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CFG_DCCM_TERMINATE_RRESP_VAL_MASK 0x3
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CFG_DCCM_TERMINATE_EN */
|
||||
#define ARC_FARM_ARC0_AUX_CFG_DCCM_TERMINATE_EN_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CFG_DCCM_TERMINATE_EN_VAL_MASK 0x1
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_CFG_DCCM_SECURE_REGION */
|
||||
#define ARC_FARM_ARC0_AUX_CFG_DCCM_SECURE_REGION_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_CFG_DCCM_SECURE_REGION_VAL_MASK 0xFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_WR_IF_CNT */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_WR_IF_CNT_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_WR_IF_CNT_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_CTL */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_CTL_ENABLE_BP_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_CTL_ENABLE_BP_MASK 0x1
|
||||
#define ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_CTL_RD_DELAY_CC_SHIFT 1
|
||||
#define ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_CTL_RD_DELAY_CC_MASK 0x3E
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_ADDR_MSK */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_ADDR_MSK_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_ADDR_MSK_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_ADDR */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_ADDR_VAL_MASK 0x7FFFFFF
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_ARC_ACC_ENGS_BUSER */
|
||||
#define ARC_FARM_ARC0_AUX_ARC_ACC_ENGS_BUSER_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_ARC_ACC_ENGS_BUSER_VAL_MASK 0x3
|
||||
|
||||
/* ARC_FARM_ARC0_AUX_MME_ARC_UPPER_DCCM_EN */
|
||||
#define ARC_FARM_ARC0_AUX_MME_ARC_UPPER_DCCM_EN_VAL_SHIFT 0
|
||||
#define ARC_FARM_ARC0_AUX_MME_ARC_UPPER_DCCM_EN_VAL_MASK 0x1
|
||||
|
||||
#endif /* ASIC_REG_ARC_FARM_ARC0_AUX_MASKS_H_ */
|
@ -0,0 +1,591 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_ARC_FARM_ARC0_AUX_REGS_H_
|
||||
#define ASIC_REG_ARC_FARM_ARC0_AUX_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* ARC_FARM_ARC0_AUX
|
||||
* (Prototype: QMAN_ARC_AUX)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_RUN_HALT_REQ 0x4E88100
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_RUN_HALT_ACK 0x4E88104
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_RST_VEC_ADDR 0x4E88108
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DBG_MODE 0x4E8810C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CLUSTER_NUM 0x4E88110
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_NUM 0x4E88114
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_WAKE_UP_EVENT 0x4E88118
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_SYS_ADDR_BASE 0x4E8811C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CTI_AP_STS 0x4E88120
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CTI_CFG_MUX_SEL 0x4E88124
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_RST 0x4E88128
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_RST_REQ 0x4E8812C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SRAM_LSB_ADDR 0x4E88130
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SRAM_MSB_ADDR 0x4E88134
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_PCIE_LSB_ADDR 0x4E88138
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_PCIE_MSB_ADDR 0x4E8813C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CFG_LSB_ADDR 0x4E88140
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CFG_MSB_ADDR 0x4E88144
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_HBM0_LSB_ADDR 0x4E88150
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_HBM0_MSB_ADDR 0x4E88154
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_HBM1_LSB_ADDR 0x4E88158
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_HBM1_MSB_ADDR 0x4E8815C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_HBM2_LSB_ADDR 0x4E88160
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_HBM2_MSB_ADDR 0x4E88164
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_HBM3_LSB_ADDR 0x4E88168
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_HBM3_MSB_ADDR 0x4E8816C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_HBM0_OFFSET 0x4E88170
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_HBM1_OFFSET 0x4E88174
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_HBM2_OFFSET 0x4E88178
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_HBM3_OFFSET 0x4E8817C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_LSB_ADDR_0 0x4E88180
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_LSB_ADDR_1 0x4E88184
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_LSB_ADDR_2 0x4E88188
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_LSB_ADDR_3 0x4E8818C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_LSB_ADDR_4 0x4E88190
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_LSB_ADDR_5 0x4E88194
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_LSB_ADDR_6 0x4E88198
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_MSB_ADDR_0 0x4E8819C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_MSB_ADDR_1 0x4E881A0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_MSB_ADDR_2 0x4E881A4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_MSB_ADDR_3 0x4E881A8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_MSB_ADDR_4 0x4E881AC
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_MSB_ADDR_5 0x4E881B0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_PURPOSE_MSB_ADDR_6 0x4E881B4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_CBU_AWCACHE_OVR 0x4E881B8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_LBU_AWCACHE_OVR 0x4E881BC
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CONTEXT_ID_0 0x4E881C0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CONTEXT_ID_1 0x4E881C4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CONTEXT_ID_2 0x4E881C8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CONTEXT_ID_3 0x4E881CC
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CONTEXT_ID_4 0x4E881D0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CONTEXT_ID_5 0x4E881D4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CONTEXT_ID_6 0x4E881D8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CONTEXT_ID_7 0x4E881DC
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CID_OFFSET_0 0x4E881E0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CID_OFFSET_1 0x4E881E4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CID_OFFSET_2 0x4E881E8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CID_OFFSET_3 0x4E881EC
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CID_OFFSET_4 0x4E881F0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CID_OFFSET_5 0x4E881F4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CID_OFFSET_6 0x4E881F8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CID_OFFSET_7 0x4E881FC
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_0 0x4E88200
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_1 0x4E88204
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_2 0x4E88208
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_3 0x4E8820C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_4 0x4E88210
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_5 0x4E88214
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_6 0x4E88218
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_7 0x4E8821C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_8 0x4E88220
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_9 0x4E88224
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_10 0x4E88228
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_11 0x4E8822C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_12 0x4E88230
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_13 0x4E88234
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_14 0x4E88238
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SW_INTR_15 0x4E8823C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_IRQ_INTR_MASK_0 0x4E88280
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_IRQ_INTR_MASK_1 0x4E88284
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_SEI_INTR_STS 0x4E88290
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_SEI_INTR_CLR 0x4E88294
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_SEI_INTR_MASK 0x4E88298
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_EXCPTN_CAUSE 0x4E8829C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SEI_INTR_HALT_EN 0x4E882A0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_SEI_INTR_HALT_MASK 0x4E882A4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_QMAN_SEI_INTR_HALT_MASK 0x4E882A8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REI_INTR_STS 0x4E882B0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REI_INTR_CLR 0x4E882B4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REI_INTR_MASK 0x4E882B8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_ECC_ERR_ADDR 0x4E882BC
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_ECC_SYNDROME 0x4E882C0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_I_CACHE_ECC_ERR_ADDR 0x4E882C4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_I_CACHE_ECC_SYNDROME 0x4E882C8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_D_CACHE_ECC_ERR_ADDR 0x4E882CC
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_D_CACHE_ECC_SYNDROME 0x4E882D0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBW_TRMINATE_AWADDR_ERR 0x4E882E0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBW_TRMINATE_ARADDR_ERR 0x4E882E4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_BRESP 0x4E882E8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_RRESP 0x4E882EC
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_AXLEN 0x4E882F0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CFG_LBW_TERMINATE_AXSIZE 0x4E882F4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SCRATCHPAD_0 0x4E88300
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SCRATCHPAD_1 0x4E88304
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SCRATCHPAD_2 0x4E88308
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SCRATCHPAD_3 0x4E8830C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SCRATCHPAD_4 0x4E88310
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SCRATCHPAD_5 0x4E88314
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SCRATCHPAD_6 0x4E88318
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_SCRATCHPAD_7 0x4E8831C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_TOTAL_CBU_WR_CNT 0x4E88320
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_INFLIGHT_CBU_WR_CNT 0x4E88324
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_TOTAL_CBU_RD_CNT 0x4E88328
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_INFLIGHT_CBU_RD_CNT 0x4E8832C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_TOTAL_LBU_WR_CNT 0x4E88330
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_INFLIGHT_LBU_WR_CNT 0x4E88334
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_TOTAL_LBU_RD_CNT 0x4E88338
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_INFLIGHT_LBU_RD_CNT 0x4E8833C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_ARUSER_OVR 0x4E88350
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_ARUSER_OVR_EN 0x4E88354
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_AWUSER_OVR 0x4E88358
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_AWUSER_OVR_EN 0x4E8835C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_ARUSER_MSB_OVR 0x4E88360
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_ARUSER_MSB_OVR_EN 0x4E88364
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_AWUSER_MSB_OVR 0x4E88368
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_AWUSER_MSB_OVR_EN 0x4E8836C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_AXCACHE_OVR 0x4E88370
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_LOCK_OVR 0x4E88374
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_PROT_OVR 0x4E88378
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_MAX_OUTSTANDING 0x4E8837C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_EARLY_BRESP_EN 0x4E88380
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORCE_RSP_OK 0x4E88384
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_NO_WR_INFLIGHT 0x4E8838C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_SEI_INTR_ID 0x4E88390
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBU_ARUSER_OVR 0x4E88400
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBU_ARUSER_OVR_EN 0x4E88404
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBU_AWUSER_OVR 0x4E88408
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBU_AWUSER_OVR_EN 0x4E8840C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBU_AXCACHE_OVR 0x4E88420
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBU_LOCK_OVR 0x4E88424
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBU_PROT_OVR 0x4E88428
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBU_MAX_OUTSTANDING 0x4E8842C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBU_EARLY_BRESP_EN 0x4E88430
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBU_FORCE_RSP_OK 0x4E88434
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBU_NO_WR_INFLIGHT 0x4E8843C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBU_SEI_INTR_ID 0x4E88440
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_BASE_ADDR_0 0x4E88500
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_BASE_ADDR_1 0x4E88504
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_BASE_ADDR_2 0x4E88508
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_BASE_ADDR_3 0x4E8850C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_BASE_ADDR_4 0x4E88510
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_BASE_ADDR_5 0x4E88514
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_BASE_ADDR_6 0x4E88518
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_BASE_ADDR_7 0x4E8851C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_SIZE_0 0x4E88520
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_SIZE_1 0x4E88524
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_SIZE_2 0x4E88528
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_SIZE_3 0x4E8852C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_SIZE_4 0x4E88530
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_SIZE_5 0x4E88534
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_SIZE_6 0x4E88538
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_SIZE_7 0x4E8853C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PI_0 0x4E88540
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PI_1 0x4E88544
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PI_2 0x4E88548
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PI_3 0x4E8854C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PI_4 0x4E88550
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PI_5 0x4E88554
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PI_6 0x4E88558
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PI_7 0x4E8855C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_CI_0 0x4E88560
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_CI_1 0x4E88564
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_CI_2 0x4E88568
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_CI_3 0x4E8856C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_CI_4 0x4E88570
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_CI_5 0x4E88574
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_CI_6 0x4E88578
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_CI_7 0x4E8857C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PUSH_REG_0 0x4E88580
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PUSH_REG_1 0x4E88584
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PUSH_REG_2 0x4E88588
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PUSH_REG_3 0x4E8858C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PUSH_REG_4 0x4E88590
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PUSH_REG_5 0x4E88594
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PUSH_REG_6 0x4E88598
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_PUSH_REG_7 0x4E8859C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_MAX_OCCUPANCY_0 0x4E885A0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_MAX_OCCUPANCY_1 0x4E885A4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_MAX_OCCUPANCY_2 0x4E885A8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_MAX_OCCUPANCY_3 0x4E885AC
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_MAX_OCCUPANCY_4 0x4E885B0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_MAX_OCCUPANCY_5 0x4E885B4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_MAX_OCCUPANCY_6 0x4E885B8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_MAX_OCCUPANCY_7 0x4E885BC
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_VALID_ENTRIES_0 0x4E885C0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_VALID_ENTRIES_1 0x4E885C4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_VALID_ENTRIES_2 0x4E885C8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_VALID_ENTRIES_3 0x4E885CC
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_VALID_ENTRIES_4 0x4E885D0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_VALID_ENTRIES_5 0x4E885D4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_VALID_ENTRIES_6 0x4E885D8
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_VALID_ENTRIES_7 0x4E885DC
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_GENERAL_Q_VLD_ENTRY_MASK 0x4E885E0
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_NIC_Q_VLD_ENTRY_MASK 0x4E885E4
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_DROP_EN 0x4E88620
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_WARN_MSG 0x4E88624
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_QUEUE_ALERT_MSG 0x4E88628
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWPROT 0x4E88630
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWUSER 0x4E88634
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWBURST 0x4E88638
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWLOCK 0x4E8863C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_GEN_AXI_AWCACHE 0x4E88640
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_WRR_ARB_WEIGHT 0x4E88644
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_Q_PUSH_FIFO_FULL_CFG 0x4E88648
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_Q_PUSH_FIFO_CNT 0x4E8864C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_QMAN_CQ_IFIFO_SHADOW_CI 0x4E88650
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_QMAN_ARC_CQ_IFIFO_SHADOW_CI 0x4E88654
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_QMAN_CQ_SHADOW_CI 0x4E88658
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_QMAN_ARC_CQ_SHADOW_CI 0x4E8865C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_AUX2APB_PROT 0x4E88700
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBW_FORK_WIN_EN 0x4E88704
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_QMAN_LBW_FORK_BASE_ADDR0 0x4E88708
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_QMAN_LBW_FORK_ADDR_MASK0 0x4E8870C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_QMAN_LBW_FORK_BASE_ADDR1 0x4E88710
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_QMAN_LBW_FORK_ADDR_MASK1 0x4E88714
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_FARM_LBW_FORK_BASE_ADDR0 0x4E88718
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_FARM_LBW_FORK_ADDR_MASK0 0x4E8871C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_FARM_LBW_FORK_BASE_ADDR1 0x4E88720
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_FARM_LBW_FORK_ADDR_MASK1 0x4E88724
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBW_APB_FORK_MAX_ADDR0 0x4E88728
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_LBW_APB_FORK_MAX_ADDR1 0x4E8872C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_ACC_ENGS_LBW_FORK_MASK 0x4E88730
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_DUP_ENG_LBW_FORK_ADDR 0x4E88734
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_ACP_ENG_LBW_FORK_ADDR 0x4E88738
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_ACC_ENGS_VIRTUAL_ADDR 0x4E8873C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_WIN_EN 0x4E88740
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR0_LSB 0x4E88750
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR0_MSB 0x4E88754
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK0_LSB 0x4E88758
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK0_MSB 0x4E8875C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR1_LSB 0x4E88760
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR1_MSB 0x4E88764
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK1_LSB 0x4E88768
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK1_MSB 0x4E8876C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR2_LSB 0x4E88770
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR2_MSB 0x4E88774
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK2_LSB 0x4E88778
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK2_MSB 0x4E8877C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR3_LSB 0x4E88780
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_BASE_ADDR3_MSB 0x4E88784
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK3_LSB 0x4E88788
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_FORK_ADDR_MASK3_MSB 0x4E8878C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_TRMINATE_ARADDR_LSB 0x4E88790
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CBU_TRMINATE_ARADDR_MSB 0x4E88794
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CFG_CBU_TERMINATE_BRESP 0x4E88798
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CFG_CBU_TERMINATE_RRESP 0x4E8879C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_0 0x4E88800
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_1 0x4E88804
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_2 0x4E88808
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_3 0x4E8880C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_4 0x4E88810
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_5 0x4E88814
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_6 0x4E88818
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_7 0x4E8881C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_8 0x4E88820
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_9 0x4E88824
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_10 0x4E88828
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_11 0x4E8882C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_12 0x4E88830
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_13 0x4E88834
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_14 0x4E88838
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_REGION_CFG_15 0x4E8883C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_TRMINATE_AWADDR_ERR 0x4E88840
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_DCCM_TRMINATE_ARADDR_ERR 0x4E88844
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CFG_DCCM_TERMINATE_BRESP 0x4E88848
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CFG_DCCM_TERMINATE_RRESP 0x4E8884C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CFG_DCCM_TERMINATE_EN 0x4E88850
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_CFG_DCCM_SECURE_REGION 0x4E88854
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_WR_IF_CNT 0x4E88900
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_CTL 0x4E88904
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_ADDR_MSK 0x4E88908
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_AXI_ORDERING_ADDR 0x4E8890C
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_ARC_ACC_ENGS_BUSER 0x4E88910
|
||||
|
||||
#define mmARC_FARM_ARC0_AUX_MME_ARC_UPPER_DCCM_EN 0x4E88920
|
||||
|
||||
#endif /* ASIC_REG_ARC_FARM_ARC0_AUX_REGS_H_ */
|
@ -0,0 +1,61 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_ARC_FARM_ARC0_DUP_ENG_AXUSER_REGS_H_
|
||||
#define ASIC_REG_ARC_FARM_ARC0_DUP_ENG_AXUSER_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* ARC_FARM_ARC0_DUP_ENG_AXUSER
|
||||
* (Prototype: AXUSER)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_ASID 0x4E89900
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_MMU_BP 0x4E89904
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_STRONG_ORDER 0x4E89908
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_NO_SNOOP 0x4E8990C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_WR_REDUCTION 0x4E89910
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_RD_ATOMIC 0x4E89914
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_QOS 0x4E89918
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_RSVD 0x4E8991C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_EMEM_CPAGE 0x4E89920
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_CORE 0x4E89924
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_E2E_COORD 0x4E89928
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_WR_OVRD_LO 0x4E89930
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_WR_OVRD_HI 0x4E89934
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_RD_OVRD_LO 0x4E89938
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_HB_RD_OVRD_HI 0x4E8993C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_LB_COORD 0x4E89940
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_LB_LOCK 0x4E89944
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_LB_RSVD 0x4E89948
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_AXUSER_LB_OVRD 0x4E8994C
|
||||
|
||||
#endif /* ASIC_REG_ARC_FARM_ARC0_DUP_ENG_AXUSER_REGS_H_ */
|
@ -0,0 +1,575 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_ARC_FARM_ARC0_DUP_ENG_REGS_H_
|
||||
#define ASIC_REG_ARC_FARM_ARC0_DUP_ENG_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* ARC_FARM_ARC0_DUP_ENG
|
||||
* (Prototype: ARC_DUP_ENG)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_0 0x4E89000
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_1 0x4E89004
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_2 0x4E89008
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_3 0x4E8900C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_4 0x4E89010
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_5 0x4E89014
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_6 0x4E89018
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_7 0x4E8901C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_8 0x4E89020
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_9 0x4E89024
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_10 0x4E89028
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_11 0x4E8902C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_12 0x4E89030
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_13 0x4E89034
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_14 0x4E89038
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_15 0x4E8903C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_16 0x4E89040
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_17 0x4E89044
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_18 0x4E89048
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_19 0x4E8904C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_20 0x4E89050
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_21 0x4E89054
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_22 0x4E89058
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_23 0x4E8905C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_ADDR_24 0x4E89060
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_MME_ENG_ADDR_0 0x4E89064
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_MME_ENG_ADDR_1 0x4E89068
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_MME_ENG_ADDR_2 0x4E8906C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_MME_ENG_ADDR_3 0x4E89070
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_0 0x4E89074
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_1 0x4E89078
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_2 0x4E8907C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_3 0x4E89080
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_4 0x4E89084
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_5 0x4E89088
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_6 0x4E8908C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_7 0x4E89090
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_8 0x4E89094
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_9 0x4E89098
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_10 0x4E8909C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_11 0x4E890A0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_12 0x4E890A4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_13 0x4E890A8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_14 0x4E890AC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_15 0x4E890B0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_16 0x4E890B4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_17 0x4E890B8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_18 0x4E890BC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_19 0x4E890C0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_20 0x4E890C4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_21 0x4E890C8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_22 0x4E890CC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_ADDR_23 0x4E890D0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_EDMA_ENG_ADDR_0 0x4E890D4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_EDMA_ENG_ADDR_1 0x4E890D8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_EDMA_ENG_ADDR_2 0x4E890DC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_EDMA_ENG_ADDR_3 0x4E890E0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_EDMA_ENG_ADDR_4 0x4E890E4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_EDMA_ENG_ADDR_5 0x4E890E8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_EDMA_ENG_ADDR_6 0x4E890EC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_EDMA_ENG_ADDR_7 0x4E890F0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_PDMA_ENG_ADDR_0 0x4E890F4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_PDMA_ENG_ADDR_1 0x4E890F8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_ROT_ENG_ADDR_0 0x4E890FC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_ROT_ENG_ADDR_1 0x4E89100
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_0 0x4E89104
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_1 0x4E89108
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_2 0x4E8910C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_3 0x4E89110
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_4 0x4E89114
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_5 0x4E89118
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_6 0x4E8911C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_7 0x4E89120
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_8 0x4E89124
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_9 0x4E89128
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_10 0x4E8912C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_11 0x4E89130
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_12 0x4E89134
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_13 0x4E89138
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_14 0x4E8913C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_ADDR_15 0x4E89140
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TPC_ENG_MASK 0x4E89200
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_MME_ENG_MASK 0x4E89204
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_EDMA_ENG_MASK 0x4E89208
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_PDMA_ENG_MASK 0x4E8920C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_ROT_ENG_MASK 0x4E89210
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_RSVD_ENG_MASK 0x4E89214
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_MASK_0 0x4E89218
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_MASK_1 0x4E8921C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_MASK_2 0x4E89220
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_MASK_3 0x4E89224
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_MASK_4 0x4E89228
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_MASK_5 0x4E8922C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_MASK_6 0x4E89230
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_NIC_ENG_MASK_7 0x4E89234
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_0 0x4E89238
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_1 0x4E8923C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_2 0x4E89240
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_3 0x4E89244
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_4 0x4E89248
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_5 0x4E8924C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_6 0x4E89250
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_7 0x4E89254
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_8 0x4E89258
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_9 0x4E8925C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_10 0x4E89260
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_11 0x4E89264
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_12 0x4E89268
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_0_13 0x4E8926C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_1_0 0x4E89288
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_1_1 0x4E8928C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_1_2 0x4E89290
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_1_3 0x4E89294
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_1_4 0x4E89298
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_1_5 0x4E8929C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_2_0 0x4E892A0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_2_1 0x4E892A4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_2_2 0x4E892A8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_2_3 0x4E892AC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_2_4 0x4E892B0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_2_5 0x4E892B4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_3_0 0x4E892B8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_3_1 0x4E892BC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_3_2 0x4E892C0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_3_3 0x4E892C4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_3_4 0x4E892C8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_TRANS_DATA_Q_3_5 0x4E892CC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GENERAL_CFG 0x4E892D0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_BP_CFG 0x4E892D4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_0 0x4E892D8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_1 0x4E892DC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_2 0x4E892E0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_3 0x4E892E4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_4 0x4E892E8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_5 0x4E892EC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_6 0x4E892F0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_7 0x4E892F4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_8 0x4E892F8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_9 0x4E892FC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_10 0x4E89300
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_11 0x4E89304
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_12 0x4E89308
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_13 0x4E8930C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_DBG_IN_GRP_TRANS_0 0x4E894A0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_DBG_IN_GRP_TRANS_1 0x4E894A4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_DBG_IN_GRP_TRANS_2 0x4E894A8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_DBG_STS 0x4E894AC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_DUP_DBG_OUT_RQ_CNT 0x4E894B0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_0 0x4E894B4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_1 0x4E894B8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_2 0x4E894BC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_3 0x4E894C0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_4 0x4E894C4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_5 0x4E894C8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_6 0x4E894CC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_7 0x4E894D0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_8 0x4E894D4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_9 0x4E894D8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_10 0x4E894DC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_11 0x4E894E0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_12 0x4E894E4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_13 0x4E894E8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_14 0x4E894EC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_15 0x4E894F0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_16 0x4E894F4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_17 0x4E894F8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_18 0x4E894FC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_19 0x4E89500
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_20 0x4E89504
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_21 0x4E89508
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_22 0x4E8950C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_23 0x4E89510
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_24 0x4E89514
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_25 0x4E89518
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_26 0x4E8951C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_27 0x4E89520
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_28 0x4E89524
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_29 0x4E89528
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_30 0x4E8952C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_31 0x4E89530
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_32 0x4E89534
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_33 0x4E89538
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_34 0x4E8953C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_35 0x4E89540
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_36 0x4E89544
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_37 0x4E89548
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_38 0x4E8954C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_39 0x4E89550
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_40 0x4E89554
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_41 0x4E89558
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_42 0x4E8955C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_43 0x4E89560
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_44 0x4E89564
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_45 0x4E89568
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_46 0x4E8956C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_47 0x4E89570
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_48 0x4E89574
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_49 0x4E89578
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_50 0x4E8957C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_51 0x4E89580
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_52 0x4E89584
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_53 0x4E89588
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_54 0x4E8958C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_55 0x4E89590
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_56 0x4E89594
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_57 0x4E89598
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_58 0x4E8959C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_59 0x4E895A0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_60 0x4E895A4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_61 0x4E895A8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_62 0x4E895AC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CONTEXT_ID_63 0x4E895B0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_0 0x4E895B4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_1 0x4E895B8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_2 0x4E895BC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_3 0x4E895C0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_4 0x4E895C4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_5 0x4E895C8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_6 0x4E895CC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_7 0x4E895D0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_8 0x4E895D4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_9 0x4E895D8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_10 0x4E895DC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_11 0x4E895E0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_12 0x4E895E4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_13 0x4E895E8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_14 0x4E895EC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_15 0x4E895F0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_16 0x4E895F4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_17 0x4E895F8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_18 0x4E895FC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_19 0x4E89600
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_20 0x4E89604
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_21 0x4E89608
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_22 0x4E8960C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_23 0x4E89610
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_24 0x4E89614
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_25 0x4E89618
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_26 0x4E8961C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_27 0x4E89620
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_28 0x4E89624
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_29 0x4E89628
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_30 0x4E8962C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_31 0x4E89630
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_32 0x4E89634
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_33 0x4E89638
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_34 0x4E8963C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_35 0x4E89640
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_36 0x4E89644
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_37 0x4E89648
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_38 0x4E8964C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_39 0x4E89650
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_40 0x4E89654
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_41 0x4E89658
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_42 0x4E8965C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_43 0x4E89660
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_44 0x4E89664
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_45 0x4E89668
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_46 0x4E8966C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_47 0x4E89670
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_48 0x4E89674
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_49 0x4E89678
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_50 0x4E8967C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_51 0x4E89680
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_52 0x4E89684
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_53 0x4E89688
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_54 0x4E8968C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_55 0x4E89690
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_56 0x4E89694
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_57 0x4E89698
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_58 0x4E8969C
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_59 0x4E896A0
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_60 0x4E896A4
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_61 0x4E896A8
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_62 0x4E896AC
|
||||
|
||||
#define mmARC_FARM_ARC0_DUP_ENG_ARC_CID_OFFSET_63 0x4E896B0
|
||||
|
||||
#endif /* ASIC_REG_ARC_FARM_ARC0_DUP_ENG_REGS_H_ */
|
@ -0,0 +1,135 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_ARC_FARM_KDMA_CTX_AXUSER_MASKS_H_
|
||||
#define ASIC_REG_ARC_FARM_KDMA_CTX_AXUSER_MASKS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* ARC_FARM_KDMA_CTX_AXUSER
|
||||
* (Prototype: AXUSER)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_ASID */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_ASID_WR_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_ASID_WR_MASK 0x3FF
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_ASID_RD_SHIFT 16
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_ASID_RD_MASK 0x3FF0000
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_MMU_BP */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_MMU_BP_WR_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_MMU_BP_WR_MASK 0x1
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_MMU_BP_RD_SHIFT 4
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_MMU_BP_RD_MASK 0x10
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_STRONG_ORDER */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_STRONG_ORDER_WR_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_STRONG_ORDER_WR_MASK 0x1
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_STRONG_ORDER_RD_SHIFT 4
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_STRONG_ORDER_RD_MASK 0x10
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_NO_SNOOP */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_NO_SNOOP_WR_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_NO_SNOOP_WR_MASK 0x1
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_NO_SNOOP_RD_SHIFT 4
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_NO_SNOOP_RD_MASK 0x10
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_IND_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_IND_MASK 0x1
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_DTYPE_SHIFT 4
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_DTYPE_MASK 0xF0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_OP_SHIFT 8
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_OP_MASK 0x300
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_ROUND_SHIFT 12
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_ROUND_MASK 0x3000
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_MAX_SHIFT 16
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_MAX_MASK 0x10000
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC_IND_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC_IND_MASK 0x3
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC_ADDITION_SIZE_SHIFT 4
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC_ADDITION_SIZE_MASK 0xFF0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC_MSB_MASK_SHIFT 12
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC_MSB_MASK_MASK 0x1F000
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_QOS */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_QOS_WR_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_QOS_WR_MASK 0xF
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_QOS_RD_SHIFT 4
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_QOS_RD_MASK 0x70
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_27_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_27_MASK 0x1
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_28_SHIFT 1
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_28_MASK 0x2
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_30_SHIFT 2
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_30_MASK 0x4
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_31_SHIFT 3
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_31_MASK 0x8
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_EMEM_CPAGE */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_EMEM_CPAGE_WR_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_EMEM_CPAGE_WR_MASK 0x1
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_EMEM_CPAGE_RD_SHIFT 4
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_EMEM_CPAGE_RD_MASK 0x10
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_CORE */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_CORE_WR_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_CORE_WR_MASK 0x1
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_CORE_RD_SHIFT 4
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_CORE_RD_MASK 0x10
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_E2E_COORD */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_E2E_COORD_X_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_E2E_COORD_X_MASK 0x1F
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_E2E_COORD_Y_SHIFT 8
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_E2E_COORD_Y_MASK 0xF00
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_LO */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_LO_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_HI */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_HI_VAL_MASK 0x3FF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_LO */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_LO_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_HI */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_HI_VAL_MASK 0x3FF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_LB_COORD */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_LB_COORD_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_LB_COORD_VAL_MASK 0x3FF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_LB_LOCK */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_LB_LOCK_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_LB_LOCK_VAL_MASK 0x1
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_LB_RSVD */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_LB_RSVD_BIT_21_11_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_LB_RSVD_BIT_21_11_MASK 0x7FF
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_LB_RSVD_BIT_22_SHIFT 12
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_LB_RSVD_BIT_22_MASK 0x1000
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_AXUSER_LB_OVRD */
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_LB_OVRD_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_AXUSER_LB_OVRD_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
#endif /* ASIC_REG_ARC_FARM_KDMA_CTX_AXUSER_MASKS_H_ */
|
@ -0,0 +1,61 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_ARC_FARM_KDMA_CTX_AXUSER_REGS_H_
|
||||
#define ASIC_REG_ARC_FARM_KDMA_CTX_AXUSER_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* ARC_FARM_KDMA_CTX_AXUSER
|
||||
* (Prototype: AXUSER)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_ASID 0x4E8B800
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_MMU_BP 0x4E8B804
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_STRONG_ORDER 0x4E8B808
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_NO_SNOOP 0x4E8B80C
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION 0x4E8B810
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC 0x4E8B814
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_QOS 0x4E8B818
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_RSVD 0x4E8B81C
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_EMEM_CPAGE 0x4E8B820
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_CORE 0x4E8B824
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_E2E_COORD 0x4E8B828
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_LO 0x4E8B830
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_HI 0x4E8B834
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_LO 0x4E8B838
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_HI 0x4E8B83C
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_LB_COORD 0x4E8B840
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_LB_LOCK 0x4E8B844
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_LB_RSVD 0x4E8B848
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_AXUSER_LB_OVRD 0x4E8B84C
|
||||
|
||||
#endif /* ASIC_REG_ARC_FARM_KDMA_CTX_AXUSER_REGS_H_ */
|
@ -0,0 +1,221 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_ARC_FARM_KDMA_CTX_MASKS_H_
|
||||
#define ASIC_REG_ARC_FARM_KDMA_CTX_MASKS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* ARC_FARM_KDMA_CTX
|
||||
* (Prototype: DMA_CORE_CTX)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_RATE_LIM_TKN */
|
||||
#define ARC_FARM_KDMA_CTX_RATE_LIM_TKN_RD_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_RATE_LIM_TKN_RD_MASK 0xFF
|
||||
#define ARC_FARM_KDMA_CTX_RATE_LIM_TKN_WR_SHIFT 16
|
||||
#define ARC_FARM_KDMA_CTX_RATE_LIM_TKN_WR_MASK 0xFF0000
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_PWRLP */
|
||||
#define ARC_FARM_KDMA_CTX_PWRLP_DATA_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_PWRLP_DATA_MASK 0xFF
|
||||
#define ARC_FARM_KDMA_CTX_PWRLP_EN_SHIFT 8
|
||||
#define ARC_FARM_KDMA_CTX_PWRLP_EN_MASK 0x100
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_TE_NUMROWS */
|
||||
#define ARC_FARM_KDMA_CTX_TE_NUMROWS_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_TE_NUMROWS_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_IDX */
|
||||
#define ARC_FARM_KDMA_CTX_IDX_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_IDX_VAL_MASK 0xFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_IDX_INC */
|
||||
#define ARC_FARM_KDMA_CTX_IDX_INC_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_IDX_INC_VAL_MASK 0xFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_CTRL */
|
||||
#define ARC_FARM_KDMA_CTX_CTRL_TRANSPOSE_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_CTRL_TRANSPOSE_MASK 0x1
|
||||
#define ARC_FARM_KDMA_CTX_CTRL_DTYPE_SHIFT 4
|
||||
#define ARC_FARM_KDMA_CTX_CTRL_DTYPE_MASK 0x30
|
||||
#define ARC_FARM_KDMA_CTX_CTRL_COMPRESS_SHIFT 8
|
||||
#define ARC_FARM_KDMA_CTX_CTRL_COMPRESS_MASK 0x100
|
||||
#define ARC_FARM_KDMA_CTX_CTRL_DECOMPRESS_SHIFT 9
|
||||
#define ARC_FARM_KDMA_CTX_CTRL_DECOMPRESS_MASK 0x200
|
||||
#define ARC_FARM_KDMA_CTX_CTRL_RD_UNCACHEABLE_SHIFT 12
|
||||
#define ARC_FARM_KDMA_CTX_CTRL_RD_UNCACHEABLE_MASK 0x1000
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_SRC_TSIZE_0 */
|
||||
#define ARC_FARM_KDMA_CTX_SRC_TSIZE_0_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_SRC_TSIZE_0_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_SRC_TSIZE_1 */
|
||||
#define ARC_FARM_KDMA_CTX_SRC_TSIZE_1_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_SRC_TSIZE_1_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_SRC_STRIDE_1 */
|
||||
#define ARC_FARM_KDMA_CTX_SRC_STRIDE_1_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_SRC_STRIDE_1_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_SRC_TSIZE_2 */
|
||||
#define ARC_FARM_KDMA_CTX_SRC_TSIZE_2_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_SRC_TSIZE_2_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_SRC_STRIDE_2 */
|
||||
#define ARC_FARM_KDMA_CTX_SRC_STRIDE_2_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_SRC_STRIDE_2_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_SRC_TSIZE_3 */
|
||||
#define ARC_FARM_KDMA_CTX_SRC_TSIZE_3_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_SRC_TSIZE_3_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_SRC_STRIDE_3 */
|
||||
#define ARC_FARM_KDMA_CTX_SRC_STRIDE_3_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_SRC_STRIDE_3_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_SRC_TSIZE_4 */
|
||||
#define ARC_FARM_KDMA_CTX_SRC_TSIZE_4_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_SRC_TSIZE_4_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_SRC_STRIDE_4 */
|
||||
#define ARC_FARM_KDMA_CTX_SRC_STRIDE_4_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_SRC_STRIDE_4_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_DST_TSIZE_1 */
|
||||
#define ARC_FARM_KDMA_CTX_DST_TSIZE_1_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_DST_TSIZE_1_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_DST_STRIDE_1 */
|
||||
#define ARC_FARM_KDMA_CTX_DST_STRIDE_1_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_DST_STRIDE_1_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_DST_TSIZE_2 */
|
||||
#define ARC_FARM_KDMA_CTX_DST_TSIZE_2_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_DST_TSIZE_2_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_DST_STRIDE_2 */
|
||||
#define ARC_FARM_KDMA_CTX_DST_STRIDE_2_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_DST_STRIDE_2_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_DST_TSIZE_3 */
|
||||
#define ARC_FARM_KDMA_CTX_DST_TSIZE_3_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_DST_TSIZE_3_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_DST_STRIDE_3 */
|
||||
#define ARC_FARM_KDMA_CTX_DST_STRIDE_3_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_DST_STRIDE_3_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_DST_TSIZE_4 */
|
||||
#define ARC_FARM_KDMA_CTX_DST_TSIZE_4_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_DST_TSIZE_4_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_DST_STRIDE_4 */
|
||||
#define ARC_FARM_KDMA_CTX_DST_STRIDE_4_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_DST_STRIDE_4_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_WR_COMP_ADDR_HI */
|
||||
#define ARC_FARM_KDMA_CTX_WR_COMP_ADDR_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_WR_COMP_ADDR_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_WR_COMP_ADDR_LO */
|
||||
#define ARC_FARM_KDMA_CTX_WR_COMP_ADDR_LO_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_WR_COMP_ADDR_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_WR_COMP_WDATA */
|
||||
#define ARC_FARM_KDMA_CTX_WR_COMP_WDATA_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_WR_COMP_WDATA_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_SRC_OFFSET_LO */
|
||||
#define ARC_FARM_KDMA_CTX_SRC_OFFSET_LO_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_SRC_OFFSET_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_SRC_OFFSET_HI */
|
||||
#define ARC_FARM_KDMA_CTX_SRC_OFFSET_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_SRC_OFFSET_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_DST_OFFSET_LO */
|
||||
#define ARC_FARM_KDMA_CTX_DST_OFFSET_LO_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_DST_OFFSET_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_DST_OFFSET_HI */
|
||||
#define ARC_FARM_KDMA_CTX_DST_OFFSET_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_DST_OFFSET_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_SRC_BASE_LO */
|
||||
#define ARC_FARM_KDMA_CTX_SRC_BASE_LO_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_SRC_BASE_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_SRC_BASE_HI */
|
||||
#define ARC_FARM_KDMA_CTX_SRC_BASE_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_SRC_BASE_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_DST_BASE_LO */
|
||||
#define ARC_FARM_KDMA_CTX_DST_BASE_LO_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_DST_BASE_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_DST_BASE_HI */
|
||||
#define ARC_FARM_KDMA_CTX_DST_BASE_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_DST_BASE_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_DST_TSIZE_0 */
|
||||
#define ARC_FARM_KDMA_CTX_DST_TSIZE_0_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_DST_TSIZE_0_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_CTX_COMMIT */
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_WR_COMP_EN_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_WR_COMP_EN_MASK 0x1
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_ENDIAN_SWAP_SHIFT 1
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_ENDIAN_SWAP_MASK 0x6
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_MEM_SET_SHIFT 4
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_MEM_SET_MASK 0x10
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_BF16_SHIFT 6
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_BF16_MASK 0x40
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_FP16_SHIFT 7
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_FP16_MASK 0x80
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_CTX_ID_INC_SHIFT 8
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_CTX_ID_INC_MASK 0x100
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_ADD_OFFSET_0_SHIFT 9
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_ADD_OFFSET_0_MASK 0x200
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_SIZE0_FROM_DST_SIZE0_SHIFT 10
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_SIZE0_FROM_DST_SIZE0_MASK 0x400
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_OFST_FROM_DST_OFST_SHIFT 11
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_OFST_FROM_DST_OFST_MASK 0x800
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_DISABLE_DIM1_SHIFT 12
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_DISABLE_DIM1_MASK 0x1000
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_DISABLE_DIM2_SHIFT 13
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_DISABLE_DIM2_MASK 0x2000
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_DISABLE_DIM3_SHIFT 14
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_DISABLE_DIM3_MASK 0x4000
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_DISABLE_DIM4_SHIFT 15
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_DISABLE_DIM4_MASK 0x8000
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_SIZE1_FROM_DST_SIZE1_SHIFT 16
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_SIZE1_FROM_DST_SIZE1_MASK 0x10000
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_SIZE2_FROM_DST_SIZE2_SHIFT 17
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_SIZE2_FROM_DST_SIZE2_MASK 0x20000
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_SIZE3_FROM_DST_SIZE3_SHIFT 18
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_SIZE3_FROM_DST_SIZE3_MASK 0x40000
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_SIZE4_FROM_DST_SIZE4_SHIFT 19
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_SIZE4_FROM_DST_SIZE4_MASK 0x80000
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_STRD1_FROM_DST_STRD1_SHIFT 20
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_STRD1_FROM_DST_STRD1_MASK 0x100000
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_STRD2_FROM_DST_STRD2_SHIFT 21
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_STRD2_FROM_DST_STRD2_MASK 0x200000
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_STRD3_FROM_DST_STRD3_SHIFT 22
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_STRD3_FROM_DST_STRD3_MASK 0x400000
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_STRD4_FROM_DST_STRD4_SHIFT 23
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_SRC_STRD4_FROM_DST_STRD4_MASK 0x800000
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_LIN_SHIFT 31
|
||||
#define ARC_FARM_KDMA_CTX_COMMIT_LIN_MASK 0x80000000
|
||||
|
||||
#endif /* ASIC_REG_ARC_FARM_KDMA_CTX_MASKS_H_ */
|
@ -0,0 +1,95 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_ARC_FARM_KDMA_CTX_REGS_H_
|
||||
#define ASIC_REG_ARC_FARM_KDMA_CTX_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* ARC_FARM_KDMA_CTX
|
||||
* (Prototype: DMA_CORE_CTX)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_RATE_LIM_TKN 0x4E8B860
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_PWRLP 0x4E8B864
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_TE_NUMROWS 0x4E8B868
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_IDX 0x4E8B86C
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_IDX_INC 0x4E8B870
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_CTRL 0x4E8B874
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_SRC_TSIZE_0 0x4E8B878
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_SRC_TSIZE_1 0x4E8B87C
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_SRC_STRIDE_1 0x4E8B880
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_SRC_TSIZE_2 0x4E8B884
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_SRC_STRIDE_2 0x4E8B888
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_SRC_TSIZE_3 0x4E8B88C
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_SRC_STRIDE_3 0x4E8B890
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_SRC_TSIZE_4 0x4E8B894
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_SRC_STRIDE_4 0x4E8B898
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_DST_TSIZE_1 0x4E8B89C
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_DST_STRIDE_1 0x4E8B8A0
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_DST_TSIZE_2 0x4E8B8A4
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_DST_STRIDE_2 0x4E8B8A8
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_DST_TSIZE_3 0x4E8B8AC
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_DST_STRIDE_3 0x4E8B8B0
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_DST_TSIZE_4 0x4E8B8B4
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_DST_STRIDE_4 0x4E8B8B8
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_WR_COMP_ADDR_HI 0x4E8B8BC
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_WR_COMP_ADDR_LO 0x4E8B8C0
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_WR_COMP_WDATA 0x4E8B8C4
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_SRC_OFFSET_LO 0x4E8B8C8
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_SRC_OFFSET_HI 0x4E8B8CC
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_DST_OFFSET_LO 0x4E8B8D0
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_DST_OFFSET_HI 0x4E8B8D4
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_SRC_BASE_LO 0x4E8B8D8
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_SRC_BASE_HI 0x4E8B8DC
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_DST_BASE_LO 0x4E8B8E0
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_DST_BASE_HI 0x4E8B8E4
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_DST_TSIZE_0 0x4E8B8E8
|
||||
|
||||
#define mmARC_FARM_KDMA_CTX_COMMIT 0x4E8B8EC
|
||||
|
||||
#endif /* ASIC_REG_ARC_FARM_KDMA_CTX_REGS_H_ */
|
@ -0,0 +1,29 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_ARC_FARM_KDMA_KDMA_CGM_REGS_H_
|
||||
#define ASIC_REG_ARC_FARM_KDMA_KDMA_CGM_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* ARC_FARM_KDMA_KDMA_CGM
|
||||
* (Prototype: QMAN_CGM)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmARC_FARM_KDMA_KDMA_CGM_CFG 0x4E8BE00
|
||||
|
||||
#define mmARC_FARM_KDMA_KDMA_CGM_STS 0x4E8BE04
|
||||
|
||||
#define mmARC_FARM_KDMA_KDMA_CGM_CFG1 0x4E8BE08
|
||||
|
||||
#endif /* ASIC_REG_ARC_FARM_KDMA_KDMA_CGM_REGS_H_ */
|
@ -0,0 +1,415 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_ARC_FARM_KDMA_MASKS_H_
|
||||
#define ASIC_REG_ARC_FARM_KDMA_MASKS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* ARC_FARM_KDMA
|
||||
* (Prototype: DMA_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
/* ARC_FARM_KDMA_CFG_0 */
|
||||
#define ARC_FARM_KDMA_CFG_0_EN_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CFG_0_EN_MASK 0x1
|
||||
|
||||
/* ARC_FARM_KDMA_CFG_1 */
|
||||
#define ARC_FARM_KDMA_CFG_1_HALT_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CFG_1_HALT_MASK 0x1
|
||||
#define ARC_FARM_KDMA_CFG_1_FLUSH_SHIFT 1
|
||||
#define ARC_FARM_KDMA_CFG_1_FLUSH_MASK 0x2
|
||||
|
||||
/* ARC_FARM_KDMA_PROT */
|
||||
#define ARC_FARM_KDMA_PROT_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_PROT_VAL_MASK 0x1
|
||||
#define ARC_FARM_KDMA_PROT_ERR_VAL_SHIFT 1
|
||||
#define ARC_FARM_KDMA_PROT_ERR_VAL_MASK 0x2
|
||||
|
||||
/* ARC_FARM_KDMA_CKG */
|
||||
#define ARC_FARM_KDMA_CKG_HBW_RBUF_SHIFT 0
|
||||
#define ARC_FARM_KDMA_CKG_HBW_RBUF_MASK 0x1
|
||||
#define ARC_FARM_KDMA_CKG_LBW_RBUF_KDMA_SHIFT 1
|
||||
#define ARC_FARM_KDMA_CKG_LBW_RBUF_KDMA_MASK 0x2
|
||||
#define ARC_FARM_KDMA_CKG_TE_SHIFT 2
|
||||
#define ARC_FARM_KDMA_CKG_TE_MASK 0x4
|
||||
|
||||
/* ARC_FARM_KDMA_RD_GLBL */
|
||||
#define ARC_FARM_KDMA_RD_GLBL_LBW_VIA_HBW_SHIFT 0
|
||||
#define ARC_FARM_KDMA_RD_GLBL_LBW_VIA_HBW_MASK 0x1
|
||||
#define ARC_FARM_KDMA_RD_GLBL_HBW_FORCE_MISS_SHIFT 4
|
||||
#define ARC_FARM_KDMA_RD_GLBL_HBW_FORCE_MISS_MASK 0x10
|
||||
#define ARC_FARM_KDMA_RD_GLBL_LBW_FORCE_MISS_SHIFT 5
|
||||
#define ARC_FARM_KDMA_RD_GLBL_LBW_FORCE_MISS_MASK 0x20
|
||||
|
||||
/* ARC_FARM_KDMA_RD_HBW_MAX_OUTSTAND */
|
||||
#define ARC_FARM_KDMA_RD_HBW_MAX_OUTSTAND_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_RD_HBW_MAX_OUTSTAND_VAL_MASK 0xFFF
|
||||
|
||||
/* ARC_FARM_KDMA_RD_HBW_MAX_SIZE */
|
||||
#define ARC_FARM_KDMA_RD_HBW_MAX_SIZE_DATA_SHIFT 0
|
||||
#define ARC_FARM_KDMA_RD_HBW_MAX_SIZE_DATA_MASK 0xFFF
|
||||
#define ARC_FARM_KDMA_RD_HBW_MAX_SIZE_MD_SHIFT 16
|
||||
#define ARC_FARM_KDMA_RD_HBW_MAX_SIZE_MD_MASK 0xFFF0000
|
||||
|
||||
/* ARC_FARM_KDMA_RD_HBW_ARCACHE */
|
||||
#define ARC_FARM_KDMA_RD_HBW_ARCACHE_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_RD_HBW_ARCACHE_VAL_MASK 0xF
|
||||
|
||||
/* ARC_FARM_KDMA_RD_HBW_INFLIGHTS */
|
||||
#define ARC_FARM_KDMA_RD_HBW_INFLIGHTS_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_RD_HBW_INFLIGHTS_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_RD_HBW_RATE_LIM_CFG */
|
||||
#define ARC_FARM_KDMA_RD_HBW_RATE_LIM_CFG_TOUT_SHIFT 0
|
||||
#define ARC_FARM_KDMA_RD_HBW_RATE_LIM_CFG_TOUT_MASK 0xFF
|
||||
#define ARC_FARM_KDMA_RD_HBW_RATE_LIM_CFG_SAT_SHIFT 16
|
||||
#define ARC_FARM_KDMA_RD_HBW_RATE_LIM_CFG_SAT_MASK 0xFF0000
|
||||
#define ARC_FARM_KDMA_RD_HBW_RATE_LIM_CFG_EN_SHIFT 31
|
||||
#define ARC_FARM_KDMA_RD_HBW_RATE_LIM_CFG_EN_MASK 0x80000000
|
||||
|
||||
/* ARC_FARM_KDMA_RD_LBW_MAX_OUTSTAND */
|
||||
#define ARC_FARM_KDMA_RD_LBW_MAX_OUTSTAND_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_RD_LBW_MAX_OUTSTAND_VAL_MASK 0xFFF
|
||||
|
||||
/* ARC_FARM_KDMA_RD_LBW_MAX_SIZE */
|
||||
#define ARC_FARM_KDMA_RD_LBW_MAX_SIZE_DATA_SHIFT 0
|
||||
#define ARC_FARM_KDMA_RD_LBW_MAX_SIZE_DATA_MASK 0xFFF
|
||||
#define ARC_FARM_KDMA_RD_LBW_MAX_SIZE_MD_SHIFT 16
|
||||
#define ARC_FARM_KDMA_RD_LBW_MAX_SIZE_MD_MASK 0xFFF0000
|
||||
|
||||
/* ARC_FARM_KDMA_RD_LBW_ARCACHE */
|
||||
#define ARC_FARM_KDMA_RD_LBW_ARCACHE_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_RD_LBW_ARCACHE_VAL_MASK 0xF
|
||||
|
||||
/* ARC_FARM_KDMA_RD_LBW_INFLIGHTS */
|
||||
#define ARC_FARM_KDMA_RD_LBW_INFLIGHTS_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_RD_LBW_INFLIGHTS_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_RD_LBW_RATE_LIM_CFG */
|
||||
#define ARC_FARM_KDMA_RD_LBW_RATE_LIM_CFG_TOUT_SHIFT 0
|
||||
#define ARC_FARM_KDMA_RD_LBW_RATE_LIM_CFG_TOUT_MASK 0xFF
|
||||
#define ARC_FARM_KDMA_RD_LBW_RATE_LIM_CFG_SAT_SHIFT 16
|
||||
#define ARC_FARM_KDMA_RD_LBW_RATE_LIM_CFG_SAT_MASK 0xFF0000
|
||||
#define ARC_FARM_KDMA_RD_LBW_RATE_LIM_CFG_EN_SHIFT 31
|
||||
#define ARC_FARM_KDMA_RD_LBW_RATE_LIM_CFG_EN_MASK 0x80000000
|
||||
|
||||
/* ARC_FARM_KDMA_WR_HBW_MAX_OUTSTAND */
|
||||
#define ARC_FARM_KDMA_WR_HBW_MAX_OUTSTAND_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_WR_HBW_MAX_OUTSTAND_VAL_MASK 0xFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_WR_HBW_MAX_AWID */
|
||||
#define ARC_FARM_KDMA_WR_HBW_MAX_AWID_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_WR_HBW_MAX_AWID_VAL_MASK 0x3FFF
|
||||
|
||||
/* ARC_FARM_KDMA_WR_HBW_AWCACHE */
|
||||
#define ARC_FARM_KDMA_WR_HBW_AWCACHE_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_WR_HBW_AWCACHE_VAL_MASK 0xF
|
||||
|
||||
/* ARC_FARM_KDMA_WR_HBW_INFLIGHTS */
|
||||
#define ARC_FARM_KDMA_WR_HBW_INFLIGHTS_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_WR_HBW_INFLIGHTS_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_WR_HBW_RATE_LIM_CFG */
|
||||
#define ARC_FARM_KDMA_WR_HBW_RATE_LIM_CFG_TOUT_SHIFT 0
|
||||
#define ARC_FARM_KDMA_WR_HBW_RATE_LIM_CFG_TOUT_MASK 0xFF
|
||||
#define ARC_FARM_KDMA_WR_HBW_RATE_LIM_CFG_SAT_SHIFT 16
|
||||
#define ARC_FARM_KDMA_WR_HBW_RATE_LIM_CFG_SAT_MASK 0xFF0000
|
||||
#define ARC_FARM_KDMA_WR_HBW_RATE_LIM_CFG_EN_SHIFT 31
|
||||
#define ARC_FARM_KDMA_WR_HBW_RATE_LIM_CFG_EN_MASK 0x80000000
|
||||
|
||||
/* ARC_FARM_KDMA_WR_LBW_MAX_OUTSTAND */
|
||||
#define ARC_FARM_KDMA_WR_LBW_MAX_OUTSTAND_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_WR_LBW_MAX_OUTSTAND_VAL_MASK 0xFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_WR_LBW_MAX_AWID */
|
||||
#define ARC_FARM_KDMA_WR_LBW_MAX_AWID_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_WR_LBW_MAX_AWID_VAL_MASK 0x7F
|
||||
|
||||
/* ARC_FARM_KDMA_WR_LBW_AWCACHE */
|
||||
#define ARC_FARM_KDMA_WR_LBW_AWCACHE_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_WR_LBW_AWCACHE_VAL_MASK 0xF
|
||||
|
||||
/* ARC_FARM_KDMA_WR_LBW_INFLIGHTS */
|
||||
#define ARC_FARM_KDMA_WR_LBW_INFLIGHTS_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_WR_LBW_INFLIGHTS_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_WR_LBW_RATE_LIM_CFG */
|
||||
#define ARC_FARM_KDMA_WR_LBW_RATE_LIM_CFG_TOUT_SHIFT 0
|
||||
#define ARC_FARM_KDMA_WR_LBW_RATE_LIM_CFG_TOUT_MASK 0xFF
|
||||
#define ARC_FARM_KDMA_WR_LBW_RATE_LIM_CFG_SAT_SHIFT 16
|
||||
#define ARC_FARM_KDMA_WR_LBW_RATE_LIM_CFG_SAT_MASK 0xFF0000
|
||||
#define ARC_FARM_KDMA_WR_LBW_RATE_LIM_CFG_EN_SHIFT 31
|
||||
#define ARC_FARM_KDMA_WR_LBW_RATE_LIM_CFG_EN_MASK 0x80000000
|
||||
|
||||
/* ARC_FARM_KDMA_WR_COMP_MAX_OUTSTAND */
|
||||
#define ARC_FARM_KDMA_WR_COMP_MAX_OUTSTAND_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_WR_COMP_MAX_OUTSTAND_VAL_MASK 0x1F
|
||||
|
||||
/* ARC_FARM_KDMA_WR_COMP_AWUSER */
|
||||
#define ARC_FARM_KDMA_WR_COMP_AWUSER_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_WR_COMP_AWUSER_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_ERR_CFG */
|
||||
#define ARC_FARM_KDMA_ERR_CFG_ERR_MSG_EN_SHIFT 0
|
||||
#define ARC_FARM_KDMA_ERR_CFG_ERR_MSG_EN_MASK 0x1
|
||||
#define ARC_FARM_KDMA_ERR_CFG_STOP_ON_ERR_SHIFT 1
|
||||
#define ARC_FARM_KDMA_ERR_CFG_STOP_ON_ERR_MASK 0x2
|
||||
|
||||
/* ARC_FARM_KDMA_ERR_CAUSE */
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_HBW_RD_ERR_SHIFT 0
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_HBW_RD_ERR_MASK 0x1
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_HBW_WR_ERR_SHIFT 1
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_HBW_WR_ERR_MASK 0x2
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_LBW_MSG_WR_ERR_SHIFT 2
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_LBW_MSG_WR_ERR_MASK 0x4
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_DESC_OVF_SHIFT 3
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_DESC_OVF_MASK 0x8
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_LBW_RD_ERR_SHIFT 4
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_LBW_RD_ERR_MASK 0x10
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_LBW_WR_ERR_SHIFT 5
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_LBW_WR_ERR_MASK 0x20
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_TE_DESC_FIFO_OVFL_SHIFT 6
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_TE_DESC_FIFO_OVFL_MASK 0x40
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_LIN_DMA_COMMIT_CFG_ERR_SHIFT 7
|
||||
#define ARC_FARM_KDMA_ERR_CAUSE_LIN_DMA_COMMIT_CFG_ERR_MASK 0x80
|
||||
|
||||
/* ARC_FARM_KDMA_ERRMSG_ADDR_LO */
|
||||
#define ARC_FARM_KDMA_ERRMSG_ADDR_LO_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_ERRMSG_ADDR_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_ERRMSG_ADDR_HI */
|
||||
#define ARC_FARM_KDMA_ERRMSG_ADDR_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_ERRMSG_ADDR_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_ERRMSG_WDATA */
|
||||
#define ARC_FARM_KDMA_ERRMSG_WDATA_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_ERRMSG_WDATA_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_STS0 */
|
||||
#define ARC_FARM_KDMA_STS0_RD_REQ_CNT_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS0_RD_REQ_CNT_MASK 0x7FFF
|
||||
#define ARC_FARM_KDMA_STS0_WR_REQ_CNT_SHIFT 16
|
||||
#define ARC_FARM_KDMA_STS0_WR_REQ_CNT_MASK 0x7FFF0000
|
||||
#define ARC_FARM_KDMA_STS0_BUSY_SHIFT 31
|
||||
#define ARC_FARM_KDMA_STS0_BUSY_MASK 0x80000000
|
||||
|
||||
/* ARC_FARM_KDMA_STS1 */
|
||||
#define ARC_FARM_KDMA_STS1_IS_HALT_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS1_IS_HALT_MASK 0x1
|
||||
|
||||
/* ARC_FARM_KDMA_STS_RD_CTX_SEL */
|
||||
#define ARC_FARM_KDMA_STS_RD_CTX_SEL_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_RD_CTX_SEL_VAL_MASK 0x7
|
||||
#define ARC_FARM_KDMA_STS_RD_CTX_SEL_STRIDE_SHIFT 8
|
||||
#define ARC_FARM_KDMA_STS_RD_CTX_SEL_STRIDE_MASK 0x100
|
||||
|
||||
/* ARC_FARM_KDMA_STS_RD_CTX_SIZE */
|
||||
#define ARC_FARM_KDMA_STS_RD_CTX_SIZE_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_RD_CTX_SIZE_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_STS_RD_CTX_BASE_LO */
|
||||
#define ARC_FARM_KDMA_STS_RD_CTX_BASE_LO_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_RD_CTX_BASE_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_STS_RD_CTX_BASE_HI */
|
||||
#define ARC_FARM_KDMA_STS_RD_CTX_BASE_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_RD_CTX_BASE_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_STS_RD_CTX_ID */
|
||||
#define ARC_FARM_KDMA_STS_RD_CTX_ID_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_RD_CTX_ID_VAL_MASK 0xFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_STS_RD_HB_AXI_ADDR_LO */
|
||||
#define ARC_FARM_KDMA_STS_RD_HB_AXI_ADDR_LO_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_RD_HB_AXI_ADDR_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_STS_RD_HB_AXI_ADDR_HI */
|
||||
#define ARC_FARM_KDMA_STS_RD_HB_AXI_ADDR_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_RD_HB_AXI_ADDR_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_STS_RD_LB_AXI_ADDR */
|
||||
#define ARC_FARM_KDMA_STS_RD_LB_AXI_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_RD_LB_AXI_ADDR_VAL_MASK 0x3FFFFFF
|
||||
#define ARC_FARM_KDMA_STS_RD_LB_AXI_ADDR_RDY_SHIFT 30
|
||||
#define ARC_FARM_KDMA_STS_RD_LB_AXI_ADDR_RDY_MASK 0x40000000
|
||||
#define ARC_FARM_KDMA_STS_RD_LB_AXI_ADDR_VLD_SHIFT 31
|
||||
#define ARC_FARM_KDMA_STS_RD_LB_AXI_ADDR_VLD_MASK 0x80000000
|
||||
|
||||
/* ARC_FARM_KDMA_STS_WR_CTX_SEL */
|
||||
#define ARC_FARM_KDMA_STS_WR_CTX_SEL_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_WR_CTX_SEL_VAL_MASK 0x7
|
||||
#define ARC_FARM_KDMA_STS_WR_CTX_SEL_STRIDE_SHIFT 8
|
||||
#define ARC_FARM_KDMA_STS_WR_CTX_SEL_STRIDE_MASK 0x100
|
||||
|
||||
/* ARC_FARM_KDMA_STS_WR_CTX_SIZE */
|
||||
#define ARC_FARM_KDMA_STS_WR_CTX_SIZE_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_WR_CTX_SIZE_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_STS_WR_CTX_BASE_LO */
|
||||
#define ARC_FARM_KDMA_STS_WR_CTX_BASE_LO_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_WR_CTX_BASE_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_STS_WR_CTX_BASE_HI */
|
||||
#define ARC_FARM_KDMA_STS_WR_CTX_BASE_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_WR_CTX_BASE_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_STS_WR_CTX_ID */
|
||||
#define ARC_FARM_KDMA_STS_WR_CTX_ID_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_WR_CTX_ID_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_LO */
|
||||
#define ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_LO_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_LO_VAL_MASK 0x3FFFF
|
||||
#define ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_LO_RDY_SHIFT 30
|
||||
#define ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_LO_RDY_MASK 0x40000000
|
||||
#define ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_LO_VLD_SHIFT 31
|
||||
#define ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_LO_VLD_MASK 0x80000000
|
||||
|
||||
/* ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_HI */
|
||||
#define ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_HI_VAL_MASK 0x3FFFF
|
||||
#define ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_HI_RDY_SHIFT 30
|
||||
#define ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_HI_RDY_MASK 0x40000000
|
||||
#define ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_HI_VLD_SHIFT 31
|
||||
#define ARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_HI_VLD_MASK 0x80000000
|
||||
|
||||
/* ARC_FARM_KDMA_STS_WR_LB_AXI_ADDR */
|
||||
#define ARC_FARM_KDMA_STS_WR_LB_AXI_ADDR_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_STS_WR_LB_AXI_ADDR_VAL_MASK 0x3FFFFFF
|
||||
#define ARC_FARM_KDMA_STS_WR_LB_AXI_ADDR_RDY_SHIFT 30
|
||||
#define ARC_FARM_KDMA_STS_WR_LB_AXI_ADDR_RDY_MASK 0x40000000
|
||||
#define ARC_FARM_KDMA_STS_WR_LB_AXI_ADDR_VLD_SHIFT 31
|
||||
#define ARC_FARM_KDMA_STS_WR_LB_AXI_ADDR_VLD_MASK 0x80000000
|
||||
|
||||
/* ARC_FARM_KDMA_PWRLP_CFG */
|
||||
#define ARC_FARM_KDMA_PWRLP_CFG_GLBL_EN_SHIFT 0
|
||||
#define ARC_FARM_KDMA_PWRLP_CFG_GLBL_EN_MASK 0x1
|
||||
#define ARC_FARM_KDMA_PWRLP_CFG_CLR_SHIFT 4
|
||||
#define ARC_FARM_KDMA_PWRLP_CFG_CLR_MASK 0x10
|
||||
|
||||
/* ARC_FARM_KDMA_PWRLP_STS */
|
||||
#define ARC_FARM_KDMA_PWRLP_STS_RLVL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_PWRLP_STS_RLVL_MASK 0x7F
|
||||
#define ARC_FARM_KDMA_PWRLP_STS_WLVL_SHIFT 8
|
||||
#define ARC_FARM_KDMA_PWRLP_STS_WLVL_MASK 0x7F00
|
||||
#define ARC_FARM_KDMA_PWRLP_STS_RCNT_SHIFT 16
|
||||
#define ARC_FARM_KDMA_PWRLP_STS_RCNT_MASK 0x7F0000
|
||||
#define ARC_FARM_KDMA_PWRLP_STS_WCNT_SHIFT 23
|
||||
#define ARC_FARM_KDMA_PWRLP_STS_WCNT_MASK 0x3F800000
|
||||
#define ARC_FARM_KDMA_PWRLP_STS_RFULL_SHIFT 30
|
||||
#define ARC_FARM_KDMA_PWRLP_STS_RFULL_MASK 0x40000000
|
||||
#define ARC_FARM_KDMA_PWRLP_STS_WFULL_SHIFT 31
|
||||
#define ARC_FARM_KDMA_PWRLP_STS_WFULL_MASK 0x80000000
|
||||
|
||||
/* ARC_FARM_KDMA_DBG_DESC_CNT */
|
||||
#define ARC_FARM_KDMA_DBG_DESC_CNT_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_DBG_DESC_CNT_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_DBG_STS */
|
||||
#define ARC_FARM_KDMA_DBG_STS_RD_CTX_FULL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_DBG_STS_RD_CTX_FULL_MASK 0x1
|
||||
#define ARC_FARM_KDMA_DBG_STS_WR_CTX_FULL_SHIFT 1
|
||||
#define ARC_FARM_KDMA_DBG_STS_WR_CTX_FULL_MASK 0x2
|
||||
#define ARC_FARM_KDMA_DBG_STS_WR_COMP_FULL_SHIFT 2
|
||||
#define ARC_FARM_KDMA_DBG_STS_WR_COMP_FULL_MASK 0x4
|
||||
#define ARC_FARM_KDMA_DBG_STS_RD_CTX_EMPTY_SHIFT 3
|
||||
#define ARC_FARM_KDMA_DBG_STS_RD_CTX_EMPTY_MASK 0x8
|
||||
#define ARC_FARM_KDMA_DBG_STS_WR_CTX_EMPTY_SHIFT 4
|
||||
#define ARC_FARM_KDMA_DBG_STS_WR_CTX_EMPTY_MASK 0x10
|
||||
#define ARC_FARM_KDMA_DBG_STS_WR_COMP_EMPTY_SHIFT 5
|
||||
#define ARC_FARM_KDMA_DBG_STS_WR_COMP_EMPTY_MASK 0x20
|
||||
#define ARC_FARM_KDMA_DBG_STS_TE_EMPTY_SHIFT 6
|
||||
#define ARC_FARM_KDMA_DBG_STS_TE_EMPTY_MASK 0x40
|
||||
#define ARC_FARM_KDMA_DBG_STS_TE_BUSY_SHIFT 7
|
||||
#define ARC_FARM_KDMA_DBG_STS_TE_BUSY_MASK 0x80
|
||||
#define ARC_FARM_KDMA_DBG_STS_GSKT_EMPTY_SHIFT 8
|
||||
#define ARC_FARM_KDMA_DBG_STS_GSKT_EMPTY_MASK 0x100
|
||||
#define ARC_FARM_KDMA_DBG_STS_GSKT_FULL_SHIFT 9
|
||||
#define ARC_FARM_KDMA_DBG_STS_GSKT_FULL_MASK 0x200
|
||||
#define ARC_FARM_KDMA_DBG_STS_RD_AGU_CS_SHIFT 10
|
||||
#define ARC_FARM_KDMA_DBG_STS_RD_AGU_CS_MASK 0x400
|
||||
#define ARC_FARM_KDMA_DBG_STS_WR_AGU_CS_SHIFT 11
|
||||
#define ARC_FARM_KDMA_DBG_STS_WR_AGU_CS_MASK 0x800
|
||||
|
||||
/* ARC_FARM_KDMA_DBG_BUF_STS */
|
||||
#define ARC_FARM_KDMA_DBG_BUF_STS_HBW_FULLNESS_SHIFT 0
|
||||
#define ARC_FARM_KDMA_DBG_BUF_STS_HBW_FULLNESS_MASK 0xFFF
|
||||
#define ARC_FARM_KDMA_DBG_BUF_STS_LBW_FULLNESS_SHIFT 16
|
||||
#define ARC_FARM_KDMA_DBG_BUF_STS_LBW_FULLNESS_MASK 0xFFF0000
|
||||
|
||||
/* ARC_FARM_KDMA_DBG_RD_DESC_ID */
|
||||
#define ARC_FARM_KDMA_DBG_RD_DESC_ID_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_DBG_RD_DESC_ID_VAL_MASK 0xFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_DBG_WR_DESC_ID */
|
||||
#define ARC_FARM_KDMA_DBG_WR_DESC_ID_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_DBG_WR_DESC_ID_VAL_MASK 0xFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_APB_DMA_LBW_BASE */
|
||||
#define ARC_FARM_KDMA_APB_DMA_LBW_BASE_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_APB_DMA_LBW_BASE_VAL_MASK 0xFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_APB_MSTR_IF_LBW_BASE */
|
||||
#define ARC_FARM_KDMA_APB_MSTR_IF_LBW_BASE_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_APB_MSTR_IF_LBW_BASE_VAL_MASK 0xFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_E2E_CRED_ASYNC_CFG */
|
||||
#define ARC_FARM_KDMA_E2E_CRED_ASYNC_CFG_Y_X_FORCE_SHIFT 0
|
||||
#define ARC_FARM_KDMA_E2E_CRED_ASYNC_CFG_Y_X_FORCE_MASK 0x1FF
|
||||
#define ARC_FARM_KDMA_E2E_CRED_ASYNC_CFG_FORCE_EN_SHIFT 9
|
||||
#define ARC_FARM_KDMA_E2E_CRED_ASYNC_CFG_FORCE_EN_MASK 0x200
|
||||
|
||||
/* ARC_FARM_KDMA_DBG_APB_ENABLER */
|
||||
#define ARC_FARM_KDMA_DBG_APB_ENABLER_DIS_SHIFT 0
|
||||
#define ARC_FARM_KDMA_DBG_APB_ENABLER_DIS_MASK 0x1
|
||||
|
||||
/* ARC_FARM_KDMA_L2H_CMPR_LO */
|
||||
#define ARC_FARM_KDMA_L2H_CMPR_LO_VAL_SHIFT 20
|
||||
#define ARC_FARM_KDMA_L2H_CMPR_LO_VAL_MASK 0xFFF00000
|
||||
|
||||
/* ARC_FARM_KDMA_L2H_CMPR_HI */
|
||||
#define ARC_FARM_KDMA_L2H_CMPR_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_L2H_CMPR_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_L2H_MASK_LO */
|
||||
#define ARC_FARM_KDMA_L2H_MASK_LO_VAL_SHIFT 20
|
||||
#define ARC_FARM_KDMA_L2H_MASK_LO_VAL_MASK 0xFFF00000
|
||||
|
||||
/* ARC_FARM_KDMA_L2H_MASK_HI */
|
||||
#define ARC_FARM_KDMA_L2H_MASK_HI_VAL_SHIFT 0
|
||||
#define ARC_FARM_KDMA_L2H_MASK_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* ARC_FARM_KDMA_IDLE_IND_MASK */
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_DESC_SHIFT 0
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_DESC_MASK 0x1
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_COMP_SHIFT 1
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_COMP_MASK 0x2
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_INSTAGE_SHIFT 2
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_INSTAGE_MASK 0x4
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_CORE_SHIFT 3
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_CORE_MASK 0x8
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_DESC_CNT_STS_SHIFT 8
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_DESC_CNT_STS_MASK 0x1F00
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_COMP_CNT_STS_SHIFT 16
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_COMP_CNT_STS_MASK 0x1F0000
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_INSTAGE_EMPTY_SHIFT 24
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_INSTAGE_EMPTY_MASK 0x1000000
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_CORE_IDLE_STS_SHIFT 25
|
||||
#define ARC_FARM_KDMA_IDLE_IND_MASK_CORE_IDLE_STS_MASK 0x2000000
|
||||
|
||||
/* ARC_FARM_KDMA_APB_ENABLER */
|
||||
#define ARC_FARM_KDMA_APB_ENABLER_DIS_SHIFT 0
|
||||
#define ARC_FARM_KDMA_APB_ENABLER_DIS_MASK 0x1
|
||||
|
||||
#endif /* ASIC_REG_ARC_FARM_KDMA_MASKS_H_ */
|
@ -0,0 +1,157 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_ARC_FARM_KDMA_REGS_H_
|
||||
#define ASIC_REG_ARC_FARM_KDMA_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* ARC_FARM_KDMA
|
||||
* (Prototype: DMA_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmARC_FARM_KDMA_CFG_0 0x4E8B000
|
||||
|
||||
#define mmARC_FARM_KDMA_CFG_1 0x4E8B004
|
||||
|
||||
#define mmARC_FARM_KDMA_PROT 0x4E8B008
|
||||
|
||||
#define mmARC_FARM_KDMA_CKG 0x4E8B00C
|
||||
|
||||
#define mmARC_FARM_KDMA_RD_GLBL 0x4E8B07C
|
||||
|
||||
#define mmARC_FARM_KDMA_RD_HBW_MAX_OUTSTAND 0x4E8B080
|
||||
|
||||
#define mmARC_FARM_KDMA_RD_HBW_MAX_SIZE 0x4E8B084
|
||||
|
||||
#define mmARC_FARM_KDMA_RD_HBW_ARCACHE 0x4E8B088
|
||||
|
||||
#define mmARC_FARM_KDMA_RD_HBW_INFLIGHTS 0x4E8B090
|
||||
|
||||
#define mmARC_FARM_KDMA_RD_HBW_RATE_LIM_CFG 0x4E8B094
|
||||
|
||||
#define mmARC_FARM_KDMA_RD_LBW_MAX_OUTSTAND 0x4E8B0C0
|
||||
|
||||
#define mmARC_FARM_KDMA_RD_LBW_MAX_SIZE 0x4E8B0C4
|
||||
|
||||
#define mmARC_FARM_KDMA_RD_LBW_ARCACHE 0x4E8B0C8
|
||||
|
||||
#define mmARC_FARM_KDMA_RD_LBW_INFLIGHTS 0x4E8B0D0
|
||||
|
||||
#define mmARC_FARM_KDMA_RD_LBW_RATE_LIM_CFG 0x4E8B0D4
|
||||
|
||||
#define mmARC_FARM_KDMA_WR_HBW_MAX_OUTSTAND 0x4E8B100
|
||||
|
||||
#define mmARC_FARM_KDMA_WR_HBW_MAX_AWID 0x4E8B104
|
||||
|
||||
#define mmARC_FARM_KDMA_WR_HBW_AWCACHE 0x4E8B108
|
||||
|
||||
#define mmARC_FARM_KDMA_WR_HBW_INFLIGHTS 0x4E8B10C
|
||||
|
||||
#define mmARC_FARM_KDMA_WR_HBW_RATE_LIM_CFG 0x4E8B110
|
||||
|
||||
#define mmARC_FARM_KDMA_WR_LBW_MAX_OUTSTAND 0x4E8B140
|
||||
|
||||
#define mmARC_FARM_KDMA_WR_LBW_MAX_AWID 0x4E8B144
|
||||
|
||||
#define mmARC_FARM_KDMA_WR_LBW_AWCACHE 0x4E8B148
|
||||
|
||||
#define mmARC_FARM_KDMA_WR_LBW_INFLIGHTS 0x4E8B14C
|
||||
|
||||
#define mmARC_FARM_KDMA_WR_LBW_RATE_LIM_CFG 0x4E8B150
|
||||
|
||||
#define mmARC_FARM_KDMA_WR_COMP_MAX_OUTSTAND 0x4E8B180
|
||||
|
||||
#define mmARC_FARM_KDMA_WR_COMP_AWUSER 0x4E8B184
|
||||
|
||||
#define mmARC_FARM_KDMA_ERR_CFG 0x4E8B300
|
||||
|
||||
#define mmARC_FARM_KDMA_ERR_CAUSE 0x4E8B304
|
||||
|
||||
#define mmARC_FARM_KDMA_ERRMSG_ADDR_LO 0x4E8B308
|
||||
|
||||
#define mmARC_FARM_KDMA_ERRMSG_ADDR_HI 0x4E8B30C
|
||||
|
||||
#define mmARC_FARM_KDMA_ERRMSG_WDATA 0x4E8B310
|
||||
|
||||
#define mmARC_FARM_KDMA_STS0 0x4E8B380
|
||||
|
||||
#define mmARC_FARM_KDMA_STS1 0x4E8B384
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_RD_CTX_SEL 0x4E8B400
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_RD_CTX_SIZE 0x4E8B404
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_RD_CTX_BASE_LO 0x4E8B408
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_RD_CTX_BASE_HI 0x4E8B40C
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_RD_CTX_ID 0x4E8B410
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_RD_HB_AXI_ADDR_LO 0x4E8B414
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_RD_HB_AXI_ADDR_HI 0x4E8B418
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_RD_LB_AXI_ADDR 0x4E8B41C
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_WR_CTX_SEL 0x4E8B420
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_WR_CTX_SIZE 0x4E8B424
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_WR_CTX_BASE_LO 0x4E8B428
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_WR_CTX_BASE_HI 0x4E8B42C
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_WR_CTX_ID 0x4E8B430
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_LO 0x4E8B434
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_WR_HB_AXI_ADDR_HI 0x4E8B438
|
||||
|
||||
#define mmARC_FARM_KDMA_STS_WR_LB_AXI_ADDR 0x4E8B43C
|
||||
|
||||
#define mmARC_FARM_KDMA_PWRLP_CFG 0x4E8B700
|
||||
|
||||
#define mmARC_FARM_KDMA_PWRLP_STS 0x4E8B704
|
||||
|
||||
#define mmARC_FARM_KDMA_DBG_DESC_CNT 0x4E8B710
|
||||
|
||||
#define mmARC_FARM_KDMA_DBG_STS 0x4E8B714
|
||||
|
||||
#define mmARC_FARM_KDMA_DBG_BUF_STS 0x4E8B718
|
||||
|
||||
#define mmARC_FARM_KDMA_DBG_RD_DESC_ID 0x4E8B720
|
||||
|
||||
#define mmARC_FARM_KDMA_DBG_WR_DESC_ID 0x4E8B724
|
||||
|
||||
#define mmARC_FARM_KDMA_APB_DMA_LBW_BASE 0x4E8B728
|
||||
|
||||
#define mmARC_FARM_KDMA_APB_MSTR_IF_LBW_BASE 0x4E8B72C
|
||||
|
||||
#define mmARC_FARM_KDMA_E2E_CRED_ASYNC_CFG 0x4E8B730
|
||||
|
||||
#define mmARC_FARM_KDMA_DBG_APB_ENABLER 0x4E8BE1C
|
||||
|
||||
#define mmARC_FARM_KDMA_L2H_CMPR_LO 0x4E8BE20
|
||||
|
||||
#define mmARC_FARM_KDMA_L2H_CMPR_HI 0x4E8BE24
|
||||
|
||||
#define mmARC_FARM_KDMA_L2H_MASK_LO 0x4E8BE28
|
||||
|
||||
#define mmARC_FARM_KDMA_L2H_MASK_HI 0x4E8BE2C
|
||||
|
||||
#define mmARC_FARM_KDMA_IDLE_IND_MASK 0x4E8BE30
|
||||
|
||||
#define mmARC_FARM_KDMA_APB_ENABLER 0x4E8BE34
|
||||
|
||||
#endif /* ASIC_REG_ARC_FARM_KDMA_REGS_H_ */
|
777
drivers/misc/habanalabs/include/gaudi2/asic_reg/cpu_if_regs.h
Normal file
777
drivers/misc/habanalabs/include/gaudi2/asic_reg/cpu_if_regs.h
Normal file
@ -0,0 +1,777 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_CPU_IF_REGS_H_
|
||||
#define ASIC_REG_CPU_IF_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* CPU_IF
|
||||
* (Prototype: CPU_IF)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmCPU_IF_ARUSER_OVR 0x4CC1104
|
||||
|
||||
#define mmCPU_IF_ARUSER_OVR_EN 0x4CC1108
|
||||
|
||||
#define mmCPU_IF_AWUSER_OVR 0x4CC110C
|
||||
|
||||
#define mmCPU_IF_AWUSER_OVR_EN 0x4CC1110
|
||||
|
||||
#define mmCPU_IF_ARUSER_MSB_OVR 0x4CC1114
|
||||
|
||||
#define mmCPU_IF_AWUSER_MSB_OVR 0x4CC1120
|
||||
|
||||
#define mmCPU_IF_AXCACHE_OVR 0x4CC1128
|
||||
|
||||
#define mmCPU_IF_LOCK_OVR 0x4CC112C
|
||||
|
||||
#define mmCPU_IF_PROT_OVR 0x4CC1130
|
||||
|
||||
#define mmCPU_IF_MAX_OUTSTANDING 0x4CC1134
|
||||
|
||||
#define mmCPU_IF_EARLY_BRESP_EN 0x4CC1138
|
||||
|
||||
#define mmCPU_IF_FORCE_RSP_OK 0x4CC113C
|
||||
|
||||
#define mmCPU_IF_CPU_SEI_INTR_STS 0x4CC1140
|
||||
|
||||
#define mmCPU_IF_CPU_SEI_INTR_CLR 0x4CC1144
|
||||
|
||||
#define mmCPU_IF_CPU_SEI_INTR_MASK 0x4CC1148
|
||||
|
||||
#define mmCPU_IF_AXI_SPLIT_NO_WR_INFLIGHT 0x4CC114C
|
||||
|
||||
#define mmCPU_IF_AXI_SPLIT_SEI_INTR_ID 0x4CC1150
|
||||
|
||||
#define mmCPU_IF_TOTAL_WR_CNT 0x4CC1154
|
||||
|
||||
#define mmCPU_IF_INFLIGHT_WR_CNT 0x4CC1158
|
||||
|
||||
#define mmCPU_IF_TOTAL_RD_CNT 0x4CC115C
|
||||
|
||||
#define mmCPU_IF_INFLIGHT_RD_CNT 0x4CC1160
|
||||
|
||||
#define mmCPU_IF_SRAM_MSB_ADDR 0x4CC1164
|
||||
|
||||
#define mmCPU_IF_CFG_MSB_ADDR 0x4CC1168
|
||||
|
||||
#define mmCPU_IF_HBM_MSB_ADDR 0x4CC116C
|
||||
|
||||
#define mmCPU_IF_PCIE_MSB_ADDR 0x4CC1170
|
||||
|
||||
#define mmCPU_IF_KMD_HW_DIRTY_STATUS 0x4CC1174
|
||||
|
||||
#define mmCPU_IF_MSTR_IF_E2E_FORCE_BP 0x4CC1188
|
||||
|
||||
#define mmCPU_IF_MSTR_IF_E2E_GRCFL_CLR 0x4CC118C
|
||||
|
||||
#define mmCPU_IF_LBW_TERMINATE_AWADDR_ERR 0x4CC11A0
|
||||
|
||||
#define mmCPU_IF_LBW_TERMINATE_ARADDR_ERR 0x4CC11A4
|
||||
|
||||
#define mmCPU_IF_CFG_LBW_TERMINATE_BRESP 0x4CC11A8
|
||||
|
||||
#define mmCPU_IF_CFG_LBW_TERMINATE_RRESP 0x4CC11AC
|
||||
|
||||
#define mmCPU_IF_PF_PQ_PI 0x4CC1200
|
||||
|
||||
#define mmCPU_IF_PQ_BASE_ADDR_LOW 0x4CC1204
|
||||
|
||||
#define mmCPU_IF_PQ_BASE_ADDR_HIGH 0x4CC1208
|
||||
|
||||
#define mmCPU_IF_PQ_LENGTH 0x4CC120C
|
||||
|
||||
#define mmCPU_IF_CQ_BASE_ADDR_LOW 0x4CC1210
|
||||
|
||||
#define mmCPU_IF_CQ_BASE_ADDR_HIGH 0x4CC1214
|
||||
|
||||
#define mmCPU_IF_CQ_LENGTH 0x4CC1218
|
||||
|
||||
#define mmCPU_IF_EQ_BASE_ADDR_LOW 0x4CC1220
|
||||
|
||||
#define mmCPU_IF_EQ_BASE_ADDR_HIGH 0x4CC1224
|
||||
|
||||
#define mmCPU_IF_EQ_LENGTH 0x4CC1228
|
||||
|
||||
#define mmCPU_IF_EQ_RD_OFFS 0x4CC122C
|
||||
|
||||
#define mmCPU_IF_QUEUE_INIT 0x4CC1230
|
||||
|
||||
#define mmCPU_IF_TPC_SERR_INTR_STS 0x4CC1300
|
||||
|
||||
#define mmCPU_IF_TPC_SERR_INTR_CLR 0x4CC1304
|
||||
|
||||
#define mmCPU_IF_TPC_SERR_INTR_MASK 0x4CC1308
|
||||
|
||||
#define mmCPU_IF_TPC_DERR_INTR_STS 0x4CC1310
|
||||
|
||||
#define mmCPU_IF_TPC_DERR_INTR_CLR 0x4CC1314
|
||||
|
||||
#define mmCPU_IF_TPC_DERR_INTR_MASK 0x4CC1318
|
||||
|
||||
#define mmCPU_IF_MME_SERR_INTR_STS_0 0x4CC1320
|
||||
|
||||
#define mmCPU_IF_MME_SERR_INTR_STS_1 0x4CC1324
|
||||
|
||||
#define mmCPU_IF_MME_SERR_INTR_STS_2 0x4CC1328
|
||||
|
||||
#define mmCPU_IF_MME_SERR_INTR_STS_3 0x4CC132C
|
||||
|
||||
#define mmCPU_IF_MME_SERR_INTR_CLR_0 0x4CC1330
|
||||
|
||||
#define mmCPU_IF_MME_SERR_INTR_CLR_1 0x4CC1334
|
||||
|
||||
#define mmCPU_IF_MME_SERR_INTR_CLR_2 0x4CC1338
|
||||
|
||||
#define mmCPU_IF_MME_SERR_INTR_CLR_3 0x4CC133C
|
||||
|
||||
#define mmCPU_IF_MME_SERR_INTR_MASK_0 0x4CC1340
|
||||
|
||||
#define mmCPU_IF_MME_SERR_INTR_MASK_1 0x4CC1344
|
||||
|
||||
#define mmCPU_IF_MME_SERR_INTR_MASK_2 0x4CC1348
|
||||
|
||||
#define mmCPU_IF_MME_SERR_INTR_MASK_3 0x4CC134C
|
||||
|
||||
#define mmCPU_IF_MME_DERR_INTR_STS_0 0x4CC1350
|
||||
|
||||
#define mmCPU_IF_MME_DERR_INTR_STS_1 0x4CC1354
|
||||
|
||||
#define mmCPU_IF_MME_DERR_INTR_STS_2 0x4CC1358
|
||||
|
||||
#define mmCPU_IF_MME_DERR_INTR_STS_3 0x4CC135C
|
||||
|
||||
#define mmCPU_IF_MME_DERR_INTR_CLR_0 0x4CC1360
|
||||
|
||||
#define mmCPU_IF_MME_DERR_INTR_CLR_1 0x4CC1364
|
||||
|
||||
#define mmCPU_IF_MME_DERR_INTR_CLR_2 0x4CC1368
|
||||
|
||||
#define mmCPU_IF_MME_DERR_INTR_CLR_3 0x4CC136C
|
||||
|
||||
#define mmCPU_IF_MME_DERR_INTR_MASK_0 0x4CC1370
|
||||
|
||||
#define mmCPU_IF_MME_DERR_INTR_MASK_1 0x4CC1374
|
||||
|
||||
#define mmCPU_IF_MME_DERR_INTR_MASK_2 0x4CC1378
|
||||
|
||||
#define mmCPU_IF_MME_DERR_INTR_MASK_3 0x4CC137C
|
||||
|
||||
#define mmCPU_IF_HDMA_SERR_INTR_STS 0x4CC1380
|
||||
|
||||
#define mmCPU_IF_HDMA_SERR_INTR_CLR 0x4CC1384
|
||||
|
||||
#define mmCPU_IF_HDMA_SERR_INTR_MASK 0x4CC1388
|
||||
|
||||
#define mmCPU_IF_HDMA_DERR_INTR_STS 0x4CC1390
|
||||
|
||||
#define mmCPU_IF_HDMA_DERR_INTR_CLR 0x4CC1394
|
||||
|
||||
#define mmCPU_IF_HDMA_DERR_INTR_MASK 0x4CC1398
|
||||
|
||||
#define mmCPU_IF_PDMA_SERR_INTR_STS 0x4CC13A0
|
||||
|
||||
#define mmCPU_IF_PDMA_SERR_INTR_CLR 0x4CC13A4
|
||||
|
||||
#define mmCPU_IF_PDMA_SERR_INTR_MASK 0x4CC13A8
|
||||
|
||||
#define mmCPU_IF_PDMA_DERR_INTR_STS 0x4CC13B0
|
||||
|
||||
#define mmCPU_IF_PDMA_DERR_INTR_CLR 0x4CC13B4
|
||||
|
||||
#define mmCPU_IF_PDMA_DERR_INTR_MASK 0x4CC13B8
|
||||
|
||||
#define mmCPU_IF_SRAM_SERR_INTR_STS 0x4CC13C0
|
||||
|
||||
#define mmCPU_IF_SRAM_SERR_INTR_CLR 0x4CC13C4
|
||||
|
||||
#define mmCPU_IF_SRAM_SERR_INTR_MASK 0x4CC13C8
|
||||
|
||||
#define mmCPU_IF_SRAM_DERR_INTR_STS 0x4CC13D0
|
||||
|
||||
#define mmCPU_IF_SRAM_DERR_INTR_CLR 0x4CC13D4
|
||||
|
||||
#define mmCPU_IF_SRAM_DERR_INTR_MASK 0x4CC13D8
|
||||
|
||||
#define mmCPU_IF_HBM_SERR_INTR_STS 0x4CC13E0
|
||||
|
||||
#define mmCPU_IF_HBM_SERR_INTR_CLR 0x4CC13E4
|
||||
|
||||
#define mmCPU_IF_HBM_SERR_INTR_MASK 0x4CC13E8
|
||||
|
||||
#define mmCPU_IF_HBM_DERR_INTR_STS 0x4CC13F0
|
||||
|
||||
#define mmCPU_IF_HBM_DERR_INTR_CLR 0x4CC13F4
|
||||
|
||||
#define mmCPU_IF_HBM_DERR_INTR_MASK 0x4CC13F8
|
||||
|
||||
#define mmCPU_IF_HMMU_SERR_INTR_STS 0x4CC1400
|
||||
|
||||
#define mmCPU_IF_HMMU_SERR_INTR_CLR 0x4CC1404
|
||||
|
||||
#define mmCPU_IF_HMMU_SERR_INTR_MASK 0x4CC1408
|
||||
|
||||
#define mmCPU_IF_HMMU_DERR_INTR_STS 0x4CC1410
|
||||
|
||||
#define mmCPU_IF_HMMU_DERR_INTR_CLR 0x4CC1414
|
||||
|
||||
#define mmCPU_IF_HMMU_DERR_INTR_MASK 0x4CC1418
|
||||
|
||||
#define mmCPU_IF_DEC_SERR_INTR_STS 0x4CC1420
|
||||
|
||||
#define mmCPU_IF_DEC_SERR_INTR_CLR 0x4CC1424
|
||||
|
||||
#define mmCPU_IF_DEC_SERR_INTR_MASK 0x4CC1428
|
||||
|
||||
#define mmCPU_IF_DEC_DERR_INTR_STS 0x4CC1430
|
||||
|
||||
#define mmCPU_IF_DEC_DERR_INTR_CLR 0x4CC1434
|
||||
|
||||
#define mmCPU_IF_DEC_DERR_INTR_MASK 0x4CC1438
|
||||
|
||||
#define mmCPU_IF_NIC_SERR_INTR_STS 0x4CC1440
|
||||
|
||||
#define mmCPU_IF_NIC_SERR_INTR_CLR 0x4CC1444
|
||||
|
||||
#define mmCPU_IF_NIC_SERR_INTR_MASK 0x4CC1448
|
||||
|
||||
#define mmCPU_IF_NIC_DERR_INTR_STS 0x4CC1450
|
||||
|
||||
#define mmCPU_IF_NIC_DERR_INTR_CLR 0x4CC1454
|
||||
|
||||
#define mmCPU_IF_NIC_DERR_INTR_MASK 0x4CC1458
|
||||
|
||||
#define mmCPU_IF_SYNC_MNGR_SERR_INTR_STS 0x4CC1460
|
||||
|
||||
#define mmCPU_IF_SYNC_MNGR_SERR_INTR_CLR 0x4CC1464
|
||||
|
||||
#define mmCPU_IF_SYNC_MNGR_SERR_INTR_MASK 0x4CC1468
|
||||
|
||||
#define mmCPU_IF_SYNC_MNGR_DERR_INTR_STS 0x4CC1470
|
||||
|
||||
#define mmCPU_IF_SYNC_MNGR_DERR_INTR_CLR 0x4CC1474
|
||||
|
||||
#define mmCPU_IF_SYNC_MNGR_DERR_INTR_MASK 0x4CC1478
|
||||
|
||||
#define mmCPU_IF_HIF_SERR_INTR_STS 0x4CC1480
|
||||
|
||||
#define mmCPU_IF_HIF_SERR_INTR_CLR 0x4CC1484
|
||||
|
||||
#define mmCPU_IF_HIF_SERR_INTR_MASK 0x4CC1488
|
||||
|
||||
#define mmCPU_IF_HIF_DERR_INTR_STS 0x4CC1490
|
||||
|
||||
#define mmCPU_IF_HIF_DERR_INTR_CLR 0x4CC1494
|
||||
|
||||
#define mmCPU_IF_HIF_DERR_INTR_MASK 0x4CC1498
|
||||
|
||||
#define mmCPU_IF_XBAR_SERR_INTR_STS 0x4CC14A0
|
||||
|
||||
#define mmCPU_IF_XBAR_SERR_INTR_CLR 0x4CC14A4
|
||||
|
||||
#define mmCPU_IF_XBAR_SERR_INTR_MASK 0x4CC14A8
|
||||
|
||||
#define mmCPU_IF_XBAR_DERR_INTR_STS 0x4CC14B0
|
||||
|
||||
#define mmCPU_IF_XBAR_DERR_INTR_CLR 0x4CC14B4
|
||||
|
||||
#define mmCPU_IF_XBAR_DERR_INTR_MASK 0x4CC14B8
|
||||
|
||||
#define mmCPU_IF_TPC_SEI_INTR_STS 0x4CC14C0
|
||||
|
||||
#define mmCPU_IF_TPC_SEI_INTR_CLR 0x4CC14C4
|
||||
|
||||
#define mmCPU_IF_TPC_SEI_INTR_MASK 0x4CC14C8
|
||||
|
||||
#define mmCPU_IF_MME_SEI_INTR_STS_0 0x4CC14D0
|
||||
|
||||
#define mmCPU_IF_MME_SEI_INTR_STS_1 0x4CC14D4
|
||||
|
||||
#define mmCPU_IF_MME_SEI_INTR_STS_2 0x4CC14D8
|
||||
|
||||
#define mmCPU_IF_MME_SEI_INTR_STS_3 0x4CC14DC
|
||||
|
||||
#define mmCPU_IF_MME_SEI_INTR_CLR_0 0x4CC14E0
|
||||
|
||||
#define mmCPU_IF_MME_SEI_INTR_CLR_1 0x4CC14E4
|
||||
|
||||
#define mmCPU_IF_MME_SEI_INTR_CLR_2 0x4CC14E8
|
||||
|
||||
#define mmCPU_IF_MME_SEI_INTR_CLR_3 0x4CC14EC
|
||||
|
||||
#define mmCPU_IF_MME_SEI_INTR_MASK_0 0x4CC14F0
|
||||
|
||||
#define mmCPU_IF_MME_SEI_INTR_MASK_1 0x4CC14F4
|
||||
|
||||
#define mmCPU_IF_MME_SEI_INTR_MASK_2 0x4CC14F8
|
||||
|
||||
#define mmCPU_IF_MME_SEI_INTR_MASK_3 0x4CC14FC
|
||||
|
||||
#define mmCPU_IF_PLL_LSB_SEI_INTR_STS 0x4CC1500
|
||||
|
||||
#define mmCPU_IF_PLL_LSB_SEI_INTR_CLR 0x4CC1504
|
||||
|
||||
#define mmCPU_IF_PLL_LSB_SEI_INTR_MASK 0x4CC1508
|
||||
|
||||
#define mmCPU_IF_PLL_MSB_SEI_INTR_STS 0x4CC1510
|
||||
|
||||
#define mmCPU_IF_PLL_MSB_SEI_INTR_CLR 0x4CC1514
|
||||
|
||||
#define mmCPU_IF_PLL_MSB_SEI_INTR_MASK 0x4CC1518
|
||||
|
||||
#define mmCPU_IF_HMMU_SEI_INTR_STS 0x4CC1520
|
||||
|
||||
#define mmCPU_IF_HMMU_SEI_INTR_CLR 0x4CC1524
|
||||
|
||||
#define mmCPU_IF_HMMU_SEI_INTR_MASK 0x4CC1528
|
||||
|
||||
#define mmCPU_IF_HDMA_SEI_INTR_STS 0x4CC1530
|
||||
|
||||
#define mmCPU_IF_HDMA_SEI_INTR_CLR 0x4CC1534
|
||||
|
||||
#define mmCPU_IF_HDMA_SEI_INTR_MASK 0x4CC1538
|
||||
|
||||
#define mmCPU_IF_PDMA_SEI_INTR_STS 0x4CC1540
|
||||
|
||||
#define mmCPU_IF_PDMA_SEI_INTR_CLR 0x4CC1544
|
||||
|
||||
#define mmCPU_IF_PDMA_SEI_INTR_MASK 0x4CC1548
|
||||
|
||||
#define mmCPU_IF_HBM_SEI_INTR_STS 0x4CC1550
|
||||
|
||||
#define mmCPU_IF_HBM_SEI_INTR_CLR 0x4CC1554
|
||||
|
||||
#define mmCPU_IF_HBM_SEI_INTR_MASK 0x4CC1558
|
||||
|
||||
#define mmCPU_IF_DEC_SEI_INTR_STS 0x4CC1560
|
||||
|
||||
#define mmCPU_IF_DEC_SEI_INTR_CLR 0x4CC1564
|
||||
|
||||
#define mmCPU_IF_DEC_SEI_INTR_MASK 0x4CC1568
|
||||
|
||||
#define mmCPU_IF_HIF_SEI_INTR_STS 0x4CC1570
|
||||
|
||||
#define mmCPU_IF_HIF_SEI_INTR_CLR 0x4CC1574
|
||||
|
||||
#define mmCPU_IF_HIF_SEI_INTR_MASK 0x4CC1578
|
||||
|
||||
#define mmCPU_IF_SYNC_MNGR_SEI_INTR_STS 0x4CC1580
|
||||
|
||||
#define mmCPU_IF_SYNC_MNGR_SEI_INTR_CLR 0x4CC1584
|
||||
|
||||
#define mmCPU_IF_SYNC_MNGR_SEI_INTR_MASK 0x4CC1588
|
||||
|
||||
#define mmCPU_IF_NIC_SEI_INTR_STS 0x4CC1590
|
||||
|
||||
#define mmCPU_IF_NIC_SEI_INTR_CLR 0x4CC1594
|
||||
|
||||
#define mmCPU_IF_NIC_SEI_INTR_MASK 0x4CC1598
|
||||
|
||||
#define mmCPU_IF_PCIE_SPI_INTR_STS 0x4CC1600
|
||||
|
||||
#define mmCPU_IF_PCIE_SPI_INTR_CLR 0x4CC1604
|
||||
|
||||
#define mmCPU_IF_PCIE_SPI_INTR_MASK 0x4CC1608
|
||||
|
||||
#define mmCPU_IF_MME_SPI_INTR_STS_0 0x4CC1610
|
||||
|
||||
#define mmCPU_IF_MME_SPI_INTR_STS_1 0x4CC1614
|
||||
|
||||
#define mmCPU_IF_MME_SPI_INTR_STS_2 0x4CC1618
|
||||
|
||||
#define mmCPU_IF_MME_SPI_INTR_STS_3 0x4CC161C
|
||||
|
||||
#define mmCPU_IF_MME_SPI_INTR_CLR_0 0x4CC1620
|
||||
|
||||
#define mmCPU_IF_MME_SPI_INTR_CLR_1 0x4CC1624
|
||||
|
||||
#define mmCPU_IF_MME_SPI_INTR_CLR_2 0x4CC1628
|
||||
|
||||
#define mmCPU_IF_MME_SPI_INTR_CLR_3 0x4CC162C
|
||||
|
||||
#define mmCPU_IF_MME_SPI_INTR_MASK_0 0x4CC1630
|
||||
|
||||
#define mmCPU_IF_MME_SPI_INTR_MASK_1 0x4CC1634
|
||||
|
||||
#define mmCPU_IF_MME_SPI_INTR_MASK_2 0x4CC1638
|
||||
|
||||
#define mmCPU_IF_MME_SPI_INTR_MASK_3 0x4CC163C
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_0 0x4CC1640
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_1 0x4CC1644
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_2 0x4CC1648
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_3 0x4CC164C
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_4 0x4CC1650
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_5 0x4CC1654
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_6 0x4CC1658
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_7 0x4CC165C
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_8 0x4CC1660
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_9 0x4CC1664
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_10 0x4CC1668
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_11 0x4CC166C
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_12 0x4CC1670
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_13 0x4CC1674
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_14 0x4CC1678
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_STS_15 0x4CC167C
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_0 0x4CC1680
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_1 0x4CC1684
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_2 0x4CC1688
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_3 0x4CC168C
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_4 0x4CC1690
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_5 0x4CC1694
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_6 0x4CC1698
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_7 0x4CC169C
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_8 0x4CC16A0
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_9 0x4CC16A4
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_10 0x4CC16A8
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_11 0x4CC16AC
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_12 0x4CC16B0
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_13 0x4CC16B4
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_14 0x4CC16B8
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_CLR_15 0x4CC16BC
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_0 0x4CC16C0
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_1 0x4CC16C4
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_2 0x4CC16C8
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_3 0x4CC16CC
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_4 0x4CC16D0
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_5 0x4CC16D4
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_6 0x4CC16D8
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_7 0x4CC16DC
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_8 0x4CC16E0
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_9 0x4CC16E4
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_10 0x4CC16E8
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_11 0x4CC16EC
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_12 0x4CC16F0
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_13 0x4CC16F4
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_14 0x4CC16F8
|
||||
|
||||
#define mmCPU_IF_HMMU_SPI_INTR_MASK_15 0x4CC16FC
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_STS_0 0x4CC1700
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_STS_1 0x4CC1704
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_STS_2 0x4CC1708
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_STS_3 0x4CC170C
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_STS_4 0x4CC1710
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_STS_5 0x4CC1714
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_STS_6 0x4CC1718
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_STS_7 0x4CC171C
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_STS_8 0x4CC1720
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_STS_9 0x4CC1724
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_CLR_0 0x4CC1730
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_CLR_1 0x4CC1734
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_CLR_2 0x4CC1738
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_CLR_3 0x4CC173C
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_CLR_4 0x4CC1740
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_CLR_5 0x4CC1744
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_CLR_6 0x4CC1748
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_CLR_7 0x4CC174C
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_CLR_8 0x4CC1750
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_CLR_9 0x4CC1754
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_MASK_0 0x4CC1760
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_MASK_1 0x4CC1764
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_MASK_2 0x4CC1768
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_MASK_3 0x4CC176C
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_MASK_4 0x4CC1770
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_MASK_5 0x4CC1774
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_MASK_6 0x4CC1778
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_MASK_7 0x4CC177C
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_MASK_8 0x4CC1780
|
||||
|
||||
#define mmCPU_IF_DEC_SPI_INTR_MASK_9 0x4CC1784
|
||||
|
||||
#define mmCPU_IF_HIF_SPI_INTR_STS 0x4CC17A0
|
||||
|
||||
#define mmCPU_IF_HIF_SPI_INTR_CLR 0x4CC17A4
|
||||
|
||||
#define mmCPU_IF_HIF_SPI_INTR_MASK 0x4CC17A8
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_STS_0 0x4CC17B0
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_STS_1 0x4CC17B4
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_STS_2 0x4CC17B8
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_STS_3 0x4CC17BC
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_STS_4 0x4CC17C0
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_STS_5 0x4CC17C4
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_STS_6 0x4CC17C8
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_STS_7 0x4CC17CC
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_STS_8 0x4CC17D0
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_STS_9 0x4CC17D4
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_STS_10 0x4CC17D8
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_STS_11 0x4CC17DC
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_CLR_0 0x4CC17E0
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_CLR_1 0x4CC17E4
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_CLR_2 0x4CC17E8
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_CLR_3 0x4CC17EC
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_CLR_4 0x4CC17F0
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_CLR_5 0x4CC17F4
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_CLR_6 0x4CC17F8
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_CLR_7 0x4CC17FC
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_CLR_8 0x4CC1800
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_CLR_9 0x4CC1804
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_CLR_10 0x4CC1808
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_CLR_11 0x4CC180C
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_MASK_0 0x4CC1810
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_MASK_1 0x4CC1814
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_MASK_2 0x4CC1818
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_MASK_3 0x4CC181C
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_MASK_4 0x4CC1820
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_MASK_5 0x4CC1824
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_MASK_6 0x4CC1828
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_MASK_7 0x4CC182C
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_MASK_8 0x4CC1830
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_MASK_9 0x4CC1834
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_MASK_10 0x4CC1838
|
||||
|
||||
#define mmCPU_IF_NIC_SPI_INTR_MASK_11 0x4CC183C
|
||||
|
||||
#define mmCPU_IF_DEC_ECO_INTR_STS 0x4CC1840
|
||||
|
||||
#define mmCPU_IF_DEC_ECO_INTR_CLR 0x4CC1844
|
||||
|
||||
#define mmCPU_IF_DEC_ECO_INTR_MASK 0x4CC1848
|
||||
|
||||
#define mmCPU_IF_HIF_ECO_INTR_STS 0x4CC1850
|
||||
|
||||
#define mmCPU_IF_HIF_ECO_INTR_CLR 0x4CC1854
|
||||
|
||||
#define mmCPU_IF_HIF_ECO_INTR_MASK 0x4CC1858
|
||||
|
||||
#define mmCPU_IF_HMMU_ECO_INTR_STS 0x4CC1860
|
||||
|
||||
#define mmCPU_IF_HMMU_ECO_INTR_CLR 0x4CC1864
|
||||
|
||||
#define mmCPU_IF_HMMU_ECO_INTR_MASK 0x4CC1868
|
||||
|
||||
#define mmCPU_IF_NIC_ECO_INTR_STS 0x4CC1870
|
||||
|
||||
#define mmCPU_IF_NIC_ECO_INTR_CLR 0x4CC1874
|
||||
|
||||
#define mmCPU_IF_NIC_ECO_INTR_MASK 0x4CC1878
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_0 0x4CC1900
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_1 0x4CC1904
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_2 0x4CC1908
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_3 0x4CC190C
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_4 0x4CC1910
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_5 0x4CC1914
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_6 0x4CC1918
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_7 0x4CC191C
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_8 0x4CC1920
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_9 0x4CC1924
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_10 0x4CC1928
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_11 0x4CC192C
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_12 0x4CC1930
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_13 0x4CC1934
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_14 0x4CC1938
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_STS_15 0x4CC193C
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_0 0x4CC1940
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_1 0x4CC1944
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_2 0x4CC1948
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_3 0x4CC194C
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_4 0x4CC1950
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_5 0x4CC1954
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_6 0x4CC1958
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_7 0x4CC195C
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_8 0x4CC1960
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_9 0x4CC1964
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_10 0x4CC1968
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_11 0x4CC196C
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_12 0x4CC1970
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_13 0x4CC1974
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_14 0x4CC1978
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_CLR_15 0x4CC197C
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_0 0x4CC1980
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_1 0x4CC1984
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_2 0x4CC1988
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_3 0x4CC198C
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_4 0x4CC1990
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_5 0x4CC1994
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_6 0x4CC1998
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_7 0x4CC199C
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_8 0x4CC19A0
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_9 0x4CC19A4
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_10 0x4CC19A8
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_11 0x4CC19AC
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_12 0x4CC19B0
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_13 0x4CC19B4
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_14 0x4CC19B8
|
||||
|
||||
#define mmCPU_IF_MSI_X_INTR_MASK_15 0x4CC19BC
|
||||
|
||||
#define mmCPU_IF_MSI_X_BUSY_INTR_STS 0x4CC19C0
|
||||
|
||||
#define mmCPU_IF_MSI_X_BUSY_INTR_CLR 0x4CC19C4
|
||||
|
||||
#define mmCPU_IF_MSI_X_BUSY_INTR_MASK 0x4CC19C8
|
||||
|
||||
#define mmCPU_IF_MSI_X_GEN_ADDR 0x4CC19D0
|
||||
|
||||
#define mmCPU_IF_MSI_X_GEN_DATA 0x4CC19D4
|
||||
|
||||
#define mmCPU_IF_MSI_X_GEN_AWPROT 0x4CC19D8
|
||||
|
||||
#endif /* ASIC_REG_CPU_IF_REGS_H_ */
|
@ -0,0 +1,229 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_DEC0_CMD_MASKS_H_
|
||||
#define ASIC_REG_DCORE0_DEC0_CMD_MASKS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_DEC0_CMD
|
||||
* (Prototype: VSI_CMD)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG0 */
|
||||
#define DCORE0_DEC0_CMD_SWREG0_SW_HW_VERSION_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG0_SW_HW_VERSION_MASK 0xFFFF
|
||||
#define DCORE0_DEC0_CMD_SWREG0_SW_HW_ID_SHIFT 16
|
||||
#define DCORE0_DEC0_CMD_SWREG0_SW_HW_ID_MASK 0xFFFF0000
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG1 */
|
||||
#define DCORE0_DEC0_CMD_SWREG1_SW_HW_BUILDDATE_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG1_SW_HW_BUILDDATE_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG2 */
|
||||
#define DCORE0_DEC0_CMD_SWREG2_SW_EXT_NORM_INTR_SRC_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG2_SW_EXT_NORM_INTR_SRC_MASK 0xFFFF
|
||||
#define DCORE0_DEC0_CMD_SWREG2_SW_EXT_ABN_INTR_SRC_SHIFT 16
|
||||
#define DCORE0_DEC0_CMD_SWREG2_SW_EXT_ABN_INTR_SRC_MASK 0xFFFF0000
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG3 */
|
||||
#define DCORE0_DEC0_CMD_SWREG3_SW_EXE_CMDBUF_COUNT_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG3_SW_EXE_CMDBUF_COUNT_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG4 */
|
||||
#define DCORE0_DEC0_CMD_SWREG4_SW_CMD_EXE_LSB_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG4_SW_CMD_EXE_LSB_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG5 */
|
||||
#define DCORE0_DEC0_CMD_SWREG5_SW_CMD_EXE_MSB_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG5_SW_CMD_EXE_MSB_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG6 */
|
||||
#define DCORE0_DEC0_CMD_SWREG6_SW_AXI_TOTALARLEN_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG6_SW_AXI_TOTALARLEN_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG7 */
|
||||
#define DCORE0_DEC0_CMD_SWREG7_SW_AXI_TOTALR_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG7_SW_AXI_TOTALR_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG8 */
|
||||
#define DCORE0_DEC0_CMD_SWREG8_SW_AXI_TOTALAR_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG8_SW_AXI_TOTALAR_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG9 */
|
||||
#define DCORE0_DEC0_CMD_SWREG9_SW_AXI_TOTALRLAST_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG9_SW_AXI_TOTALRLAST_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG10 */
|
||||
#define DCORE0_DEC0_CMD_SWREG10_SW_AXI_TOTALAWLEN_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG10_SW_AXI_TOTALAWLEN_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG11 */
|
||||
#define DCORE0_DEC0_CMD_SWREG11_SW_AXI_TOTALW_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG11_SW_AXI_TOTALW_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG12 */
|
||||
#define DCORE0_DEC0_CMD_SWREG12_SW_AXI_TOTALAW_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG12_SW_AXI_TOTALAW_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG13 */
|
||||
#define DCORE0_DEC0_CMD_SWREG13_SW_AXI_TOTALWLAST_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG13_SW_AXI_TOTALWLAST_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG14 */
|
||||
#define DCORE0_DEC0_CMD_SWREG14_SW_AXI_TOTALB_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG14_SW_AXI_TOTALB_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG15 */
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_WORK_STATE_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_WORK_STATE_MASK 0x7
|
||||
#define DCORE0_DEC0_CMD_SWREG15_RSV_SHIFT 3
|
||||
#define DCORE0_DEC0_CMD_SWREG15_RSV_MASK 0x3FFFF8
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_BREADY_SHIFT 22
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_BREADY_MASK 0x400000
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_BVALID_SHIFT 23
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_BVALID_MASK 0x800000
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_WREADY_SHIFT 24
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_WREADY_MASK 0x1000000
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_WVALID_SHIFT 25
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_WVALID_MASK 0x2000000
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_AWREADY_SHIFT 26
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_AWREADY_MASK 0x4000000
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_AWVALID_SHIFT 27
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_AWVALID_MASK 0x8000000
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_RREADY_SHIFT 28
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_RREADY_MASK 0x10000000
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_RVALID_SHIFT 29
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_RVALID_MASK 0x20000000
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_ARREADY_SHIFT 30
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_ARREADY_MASK 0x40000000
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_ARVALID_SHIFT 31
|
||||
#define DCORE0_DEC0_CMD_SWREG15_SW_AXI_ARVALID_MASK 0x80000000
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG16 */
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_START_TRIGGER_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_START_TRIGGER_MASK 0x1
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_RESET_ALL_SHIFT 1
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_RESET_ALL_MASK 0x2
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_RESET_CORE_SHIFT 2
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_RESET_CORE_MASK 0x4
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_ABORT_MODE_SHIFT 3
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_ABORT_MODE_MASK 0x8
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_CORE_CLK_GATE_DISABLE_SHIFT 4
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_CORE_CLK_GATE_DISABLE_MASK 0x10
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_MASTER_OUT_CLK_GATE_DISABLE_SHIFT 5
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_MASTER_OUT_CLK_GATE_DISABLE_MASK 0x20
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_AXI_CLK_GATE_DISABLE_SHIFT 6
|
||||
#define DCORE0_DEC0_CMD_SWREG16_SW_AXI_CLK_GATE_DISABLE_MASK 0x40
|
||||
#define DCORE0_DEC0_CMD_SWREG16_RSV_SHIFT 7
|
||||
#define DCORE0_DEC0_CMD_SWREG16_RSV_MASK 0xFFFFFF80
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG17 */
|
||||
#define DCORE0_DEC0_CMD_SWREG17_SW_IRQ_ENDCMD_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG17_SW_IRQ_ENDCMD_MASK 0x1
|
||||
#define DCORE0_DEC0_CMD_SWREG17_SW_IRQ_BUSERR_SHIFT 1
|
||||
#define DCORE0_DEC0_CMD_SWREG17_SW_IRQ_BUSERR_MASK 0x2
|
||||
#define DCORE0_DEC0_CMD_SWREG17_SW_IRQ_TIMEOUT_SHIFT 2
|
||||
#define DCORE0_DEC0_CMD_SWREG17_SW_IRQ_TIMEOUT_MASK 0x4
|
||||
#define DCORE0_DEC0_CMD_SWREG17_SW_IRQ_CMDERR_SHIFT 3
|
||||
#define DCORE0_DEC0_CMD_SWREG17_SW_IRQ_CMDERR_MASK 0x8
|
||||
#define DCORE0_DEC0_CMD_SWREG17_SW_IRQ_ABORT_SHIFT 4
|
||||
#define DCORE0_DEC0_CMD_SWREG17_SW_IRQ_ABORT_MASK 0x10
|
||||
#define DCORE0_DEC0_CMD_SWREG17_RSV_1_SHIFT 5
|
||||
#define DCORE0_DEC0_CMD_SWREG17_RSV_1_MASK 0x20
|
||||
#define DCORE0_DEC0_CMD_SWREG17_SW_IRQ_JMP_SHIFT 6
|
||||
#define DCORE0_DEC0_CMD_SWREG17_SW_IRQ_JMP_MASK 0x40
|
||||
#define DCORE0_DEC0_CMD_SWREG17_RSV_SHIFT 7
|
||||
#define DCORE0_DEC0_CMD_SWREG17_RSV_MASK 0xFFFFFF80
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG18 */
|
||||
#define DCORE0_DEC0_CMD_SWREG18_SW_IRQ_ENDCMD_EN_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG18_SW_IRQ_ENDCMD_EN_MASK 0x1
|
||||
#define DCORE0_DEC0_CMD_SWREG18_SW_IRQ_BUSERR_EN_SHIFT 1
|
||||
#define DCORE0_DEC0_CMD_SWREG18_SW_IRQ_BUSERR_EN_MASK 0x2
|
||||
#define DCORE0_DEC0_CMD_SWREG18_SW_IRQ_TIMEOUT_EN_SHIFT 2
|
||||
#define DCORE0_DEC0_CMD_SWREG18_SW_IRQ_TIMEOUT_EN_MASK 0x4
|
||||
#define DCORE0_DEC0_CMD_SWREG18_SW_IRQ_CMDERR_EN_SHIFT 3
|
||||
#define DCORE0_DEC0_CMD_SWREG18_SW_IRQ_CMDERR_EN_MASK 0x8
|
||||
#define DCORE0_DEC0_CMD_SWREG18_SW_IRQ_ABORT_EN_SHIFT 4
|
||||
#define DCORE0_DEC0_CMD_SWREG18_SW_IRQ_ABORT_EN_MASK 0x10
|
||||
#define DCORE0_DEC0_CMD_SWREG18_RSV_1_SHIFT 5
|
||||
#define DCORE0_DEC0_CMD_SWREG18_RSV_1_MASK 0x20
|
||||
#define DCORE0_DEC0_CMD_SWREG18_SW_IRQ_JMP_EN_SHIFT 6
|
||||
#define DCORE0_DEC0_CMD_SWREG18_SW_IRQ_JMP_EN_MASK 0x40
|
||||
#define DCORE0_DEC0_CMD_SWREG18_RSV_SHIFT 7
|
||||
#define DCORE0_DEC0_CMD_SWREG18_RSV_MASK 0xFFFFFF80
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG19 */
|
||||
#define DCORE0_DEC0_CMD_SWREG19_SW_TIMEOUT_CYCLES_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG19_SW_TIMEOUT_CYCLES_MASK 0x7FFFFFFF
|
||||
#define DCORE0_DEC0_CMD_SWREG19_SW_TIMEOUT_ENABLE_SHIFT 31
|
||||
#define DCORE0_DEC0_CMD_SWREG19_SW_TIMEOUT_ENABLE_MASK 0x80000000
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG20 */
|
||||
#define DCORE0_DEC0_CMD_SWREG20_SW_CMDBUF_EXE_ADDR_LSB_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG20_SW_CMDBUF_EXE_ADDR_LSB_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG21 */
|
||||
#define DCORE0_DEC0_CMD_SWREG21_SW_CMDBUF_EXE_ADDR_MSB_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG21_SW_CMDBUF_EXE_ADDR_MSB_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG22 */
|
||||
#define DCORE0_DEC0_CMD_SWREG22_SW_CMDBUF_EXE_LENGTH_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG22_SW_CMDBUF_EXE_LENGTH_MASK 0xFFFF
|
||||
#define DCORE0_DEC0_CMD_SWREG22_RSV_SHIFT 16
|
||||
#define DCORE0_DEC0_CMD_SWREG22_RSV_MASK 0xFFFF0000
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG23 */
|
||||
#define DCORE0_DEC0_CMD_SWREG23_SW_AXI_ID_WR_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG23_SW_AXI_ID_WR_MASK 0xFF
|
||||
#define DCORE0_DEC0_CMD_SWREG23_SW_AXI_ID_RD_SHIFT 8
|
||||
#define DCORE0_DEC0_CMD_SWREG23_SW_AXI_ID_RD_MASK 0xFF00
|
||||
#define DCORE0_DEC0_CMD_SWREG23_SW_MAX_BURST_LEN_SHIFT 16
|
||||
#define DCORE0_DEC0_CMD_SWREG23_SW_MAX_BURST_LEN_MASK 0xFF0000
|
||||
#define DCORE0_DEC0_CMD_SWREG23_RSV_SHIFT 24
|
||||
#define DCORE0_DEC0_CMD_SWREG23_RSV_MASK 0xF000000
|
||||
#define DCORE0_DEC0_CMD_SWREG23_SW_CMD_SWAP_SHIFT 28
|
||||
#define DCORE0_DEC0_CMD_SWREG23_SW_CMD_SWAP_MASK 0xF0000000
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG24 */
|
||||
#define DCORE0_DEC0_CMD_SWREG24_SW_RDY_CMDBUF_COUNT_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG24_SW_RDY_CMDBUF_COUNT_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG25 */
|
||||
#define DCORE0_DEC0_CMD_SWREG25_SW_EXT_NORM_INTR_GATE_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG25_SW_EXT_NORM_INTR_GATE_MASK 0xFFFF
|
||||
#define DCORE0_DEC0_CMD_SWREG25_SW_EXT_ABN_INTR_GATE_SHIFT 16
|
||||
#define DCORE0_DEC0_CMD_SWREG25_SW_EXT_ABN_INTR_GATE_MASK 0xFFFF0000
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG26 */
|
||||
#define DCORE0_DEC0_CMD_SWREG26_SW_CMDBUF_EXE_ID_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG26_SW_CMDBUF_EXE_ID_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG64 */
|
||||
#define DCORE0_DEC0_CMD_SWREG64_SW_DUMMY0_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG64_SW_DUMMY0_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG65 */
|
||||
#define DCORE0_DEC0_CMD_SWREG65_SW_DUMMY1_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG65_SW_DUMMY1_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG66 */
|
||||
#define DCORE0_DEC0_CMD_SWREG66_SW_DUMMY2_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG66_SW_DUMMY2_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_DEC0_CMD_SWREG67 */
|
||||
#define DCORE0_DEC0_CMD_SWREG67_SW_DUMMY3_SHIFT 0
|
||||
#define DCORE0_DEC0_CMD_SWREG67_SW_DUMMY3_MASK 0xFFFFFFFF
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_DEC0_CMD_MASKS_H_ */
|
@ -0,0 +1,85 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_DEC0_CMD_REGS_H_
|
||||
#define ASIC_REG_DCORE0_DEC0_CMD_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_DEC0_CMD
|
||||
* (Prototype: VSI_CMD)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG0 0x41E0000
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG1 0x41E0004
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG2 0x41E0008
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG3 0x41E000C
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG4 0x41E0010
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG5 0x41E0014
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG6 0x41E0018
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG7 0x41E001C
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG8 0x41E0020
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG9 0x41E0024
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG10 0x41E0028
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG11 0x41E002C
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG12 0x41E0030
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG13 0x41E0034
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG14 0x41E0038
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG15 0x41E003C
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG16 0x41E0040
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG17 0x41E0044
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG18 0x41E0048
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG19 0x41E004C
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG20 0x41E0050
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG21 0x41E0054
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG22 0x41E0058
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG23 0x41E005C
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG24 0x41E0060
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG25 0x41E0064
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG26 0x41E0068
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG64 0x41E0100
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG65 0x41E0104
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG66 0x41E0108
|
||||
|
||||
#define mmDCORE0_DEC0_CMD_SWREG67 0x41E010C
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_DEC0_CMD_REGS_H_ */
|
@ -0,0 +1,61 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_EDMA0_CORE_CTX_AXUSER_REGS_H_
|
||||
#define ASIC_REG_DCORE0_EDMA0_CORE_CTX_AXUSER_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_EDMA0_CORE_CTX_AXUSER
|
||||
* (Prototype: AXUSER)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_ASID 0x41CB800
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_MMU_BP 0x41CB804
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_STRONG_ORDER 0x41CB808
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_NO_SNOOP 0x41CB80C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_WR_REDUCTION 0x41CB810
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_RD_ATOMIC 0x41CB814
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_QOS 0x41CB818
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_RSVD 0x41CB81C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_EMEM_CPAGE 0x41CB820
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_CORE 0x41CB824
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_E2E_COORD 0x41CB828
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_WR_OVRD_LO 0x41CB830
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_WR_OVRD_HI 0x41CB834
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_RD_OVRD_LO 0x41CB838
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_HB_RD_OVRD_HI 0x41CB83C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_LB_COORD 0x41CB840
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_LB_LOCK 0x41CB844
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_LB_RSVD 0x41CB848
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_AXUSER_LB_OVRD 0x41CB84C
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_EDMA0_CORE_CTX_AXUSER_REGS_H_ */
|
@ -0,0 +1,95 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_EDMA0_CORE_CTX_REGS_H_
|
||||
#define ASIC_REG_DCORE0_EDMA0_CORE_CTX_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_EDMA0_CORE_CTX
|
||||
* (Prototype: DMA_CORE_CTX)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_RATE_LIM_TKN 0x41CB860
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_PWRLP 0x41CB864
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_TE_NUMROWS 0x41CB868
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_IDX 0x41CB86C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_IDX_INC 0x41CB870
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_CTRL 0x41CB874
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_SRC_TSIZE_0 0x41CB878
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_SRC_TSIZE_1 0x41CB87C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_SRC_STRIDE_1 0x41CB880
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_SRC_TSIZE_2 0x41CB884
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_SRC_STRIDE_2 0x41CB888
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_SRC_TSIZE_3 0x41CB88C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_SRC_STRIDE_3 0x41CB890
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_SRC_TSIZE_4 0x41CB894
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_SRC_STRIDE_4 0x41CB898
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_DST_TSIZE_1 0x41CB89C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_DST_STRIDE_1 0x41CB8A0
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_DST_TSIZE_2 0x41CB8A4
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_DST_STRIDE_2 0x41CB8A8
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_DST_TSIZE_3 0x41CB8AC
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_DST_STRIDE_3 0x41CB8B0
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_DST_TSIZE_4 0x41CB8B4
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_DST_STRIDE_4 0x41CB8B8
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_WR_COMP_ADDR_HI 0x41CB8BC
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_WR_COMP_ADDR_LO 0x41CB8C0
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_WR_COMP_WDATA 0x41CB8C4
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_SRC_OFFSET_LO 0x41CB8C8
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_SRC_OFFSET_HI 0x41CB8CC
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_DST_OFFSET_LO 0x41CB8D0
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_DST_OFFSET_HI 0x41CB8D4
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_SRC_BASE_LO 0x41CB8D8
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_SRC_BASE_HI 0x41CB8DC
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_DST_BASE_LO 0x41CB8E0
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_DST_BASE_HI 0x41CB8E4
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_DST_TSIZE_0 0x41CB8E8
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CTX_COMMIT 0x41CB8EC
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_EDMA0_CORE_CTX_REGS_H_ */
|
@ -0,0 +1,415 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_EDMA0_CORE_MASKS_H_
|
||||
#define ASIC_REG_DCORE0_EDMA0_CORE_MASKS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_EDMA0_CORE
|
||||
* (Prototype: DMA_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
/* DCORE0_EDMA0_CORE_CFG_0 */
|
||||
#define DCORE0_EDMA0_CORE_CFG_0_EN_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_CFG_0_EN_MASK 0x1
|
||||
|
||||
/* DCORE0_EDMA0_CORE_CFG_1 */
|
||||
#define DCORE0_EDMA0_CORE_CFG_1_HALT_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_CFG_1_HALT_MASK 0x1
|
||||
#define DCORE0_EDMA0_CORE_CFG_1_FLUSH_SHIFT 1
|
||||
#define DCORE0_EDMA0_CORE_CFG_1_FLUSH_MASK 0x2
|
||||
|
||||
/* DCORE0_EDMA0_CORE_PROT */
|
||||
#define DCORE0_EDMA0_CORE_PROT_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_PROT_VAL_MASK 0x1
|
||||
#define DCORE0_EDMA0_CORE_PROT_ERR_VAL_SHIFT 1
|
||||
#define DCORE0_EDMA0_CORE_PROT_ERR_VAL_MASK 0x2
|
||||
|
||||
/* DCORE0_EDMA0_CORE_CKG */
|
||||
#define DCORE0_EDMA0_CORE_CKG_HBW_RBUF_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_CKG_HBW_RBUF_MASK 0x1
|
||||
#define DCORE0_EDMA0_CORE_CKG_LBW_RBUF_KDMA_SHIFT 1
|
||||
#define DCORE0_EDMA0_CORE_CKG_LBW_RBUF_KDMA_MASK 0x2
|
||||
#define DCORE0_EDMA0_CORE_CKG_TE_SHIFT 2
|
||||
#define DCORE0_EDMA0_CORE_CKG_TE_MASK 0x4
|
||||
|
||||
/* DCORE0_EDMA0_CORE_RD_GLBL */
|
||||
#define DCORE0_EDMA0_CORE_RD_GLBL_LBW_VIA_HBW_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_RD_GLBL_LBW_VIA_HBW_MASK 0x1
|
||||
#define DCORE0_EDMA0_CORE_RD_GLBL_HBW_FORCE_MISS_SHIFT 4
|
||||
#define DCORE0_EDMA0_CORE_RD_GLBL_HBW_FORCE_MISS_MASK 0x10
|
||||
#define DCORE0_EDMA0_CORE_RD_GLBL_LBW_FORCE_MISS_SHIFT 5
|
||||
#define DCORE0_EDMA0_CORE_RD_GLBL_LBW_FORCE_MISS_MASK 0x20
|
||||
|
||||
/* DCORE0_EDMA0_CORE_RD_HBW_MAX_OUTSTAND */
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_MAX_OUTSTAND_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_MAX_OUTSTAND_VAL_MASK 0xFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_RD_HBW_MAX_SIZE */
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_MAX_SIZE_DATA_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_MAX_SIZE_DATA_MASK 0xFFF
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_MAX_SIZE_MD_SHIFT 16
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_MAX_SIZE_MD_MASK 0xFFF0000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_RD_HBW_ARCACHE */
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_ARCACHE_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_ARCACHE_VAL_MASK 0xF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_RD_HBW_INFLIGHTS */
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_INFLIGHTS_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_INFLIGHTS_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_RD_HBW_RATE_LIM_CFG */
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_RATE_LIM_CFG_TOUT_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_RATE_LIM_CFG_TOUT_MASK 0xFF
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_RATE_LIM_CFG_SAT_SHIFT 16
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_RATE_LIM_CFG_SAT_MASK 0xFF0000
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_RATE_LIM_CFG_EN_SHIFT 31
|
||||
#define DCORE0_EDMA0_CORE_RD_HBW_RATE_LIM_CFG_EN_MASK 0x80000000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_RD_LBW_MAX_OUTSTAND */
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_MAX_OUTSTAND_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_MAX_OUTSTAND_VAL_MASK 0xFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_RD_LBW_MAX_SIZE */
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_MAX_SIZE_DATA_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_MAX_SIZE_DATA_MASK 0xFFF
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_MAX_SIZE_MD_SHIFT 16
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_MAX_SIZE_MD_MASK 0xFFF0000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_RD_LBW_ARCACHE */
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_ARCACHE_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_ARCACHE_VAL_MASK 0xF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_RD_LBW_INFLIGHTS */
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_INFLIGHTS_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_INFLIGHTS_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_RD_LBW_RATE_LIM_CFG */
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_RATE_LIM_CFG_TOUT_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_RATE_LIM_CFG_TOUT_MASK 0xFF
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_RATE_LIM_CFG_SAT_SHIFT 16
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_RATE_LIM_CFG_SAT_MASK 0xFF0000
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_RATE_LIM_CFG_EN_SHIFT 31
|
||||
#define DCORE0_EDMA0_CORE_RD_LBW_RATE_LIM_CFG_EN_MASK 0x80000000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_WR_HBW_MAX_OUTSTAND */
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_MAX_OUTSTAND_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_MAX_OUTSTAND_VAL_MASK 0xFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_WR_HBW_MAX_AWID */
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_MAX_AWID_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_MAX_AWID_VAL_MASK 0x3FFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_WR_HBW_AWCACHE */
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_AWCACHE_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_AWCACHE_VAL_MASK 0xF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_WR_HBW_INFLIGHTS */
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_INFLIGHTS_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_INFLIGHTS_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_WR_HBW_RATE_LIM_CFG */
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_RATE_LIM_CFG_TOUT_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_RATE_LIM_CFG_TOUT_MASK 0xFF
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_RATE_LIM_CFG_SAT_SHIFT 16
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_RATE_LIM_CFG_SAT_MASK 0xFF0000
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_RATE_LIM_CFG_EN_SHIFT 31
|
||||
#define DCORE0_EDMA0_CORE_WR_HBW_RATE_LIM_CFG_EN_MASK 0x80000000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_WR_LBW_MAX_OUTSTAND */
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_MAX_OUTSTAND_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_MAX_OUTSTAND_VAL_MASK 0xFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_WR_LBW_MAX_AWID */
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_MAX_AWID_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_MAX_AWID_VAL_MASK 0x7F
|
||||
|
||||
/* DCORE0_EDMA0_CORE_WR_LBW_AWCACHE */
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_AWCACHE_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_AWCACHE_VAL_MASK 0xF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_WR_LBW_INFLIGHTS */
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_INFLIGHTS_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_INFLIGHTS_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_WR_LBW_RATE_LIM_CFG */
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_RATE_LIM_CFG_TOUT_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_RATE_LIM_CFG_TOUT_MASK 0xFF
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_RATE_LIM_CFG_SAT_SHIFT 16
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_RATE_LIM_CFG_SAT_MASK 0xFF0000
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_RATE_LIM_CFG_EN_SHIFT 31
|
||||
#define DCORE0_EDMA0_CORE_WR_LBW_RATE_LIM_CFG_EN_MASK 0x80000000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_WR_COMP_MAX_OUTSTAND */
|
||||
#define DCORE0_EDMA0_CORE_WR_COMP_MAX_OUTSTAND_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_WR_COMP_MAX_OUTSTAND_VAL_MASK 0x1F
|
||||
|
||||
/* DCORE0_EDMA0_CORE_WR_COMP_AWUSER */
|
||||
#define DCORE0_EDMA0_CORE_WR_COMP_AWUSER_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_WR_COMP_AWUSER_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_ERR_CFG */
|
||||
#define DCORE0_EDMA0_CORE_ERR_CFG_ERR_MSG_EN_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_ERR_CFG_ERR_MSG_EN_MASK 0x1
|
||||
#define DCORE0_EDMA0_CORE_ERR_CFG_STOP_ON_ERR_SHIFT 1
|
||||
#define DCORE0_EDMA0_CORE_ERR_CFG_STOP_ON_ERR_MASK 0x2
|
||||
|
||||
/* DCORE0_EDMA0_CORE_ERR_CAUSE */
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_HBW_RD_ERR_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_HBW_RD_ERR_MASK 0x1
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_HBW_WR_ERR_SHIFT 1
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_HBW_WR_ERR_MASK 0x2
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_LBW_MSG_WR_ERR_SHIFT 2
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_LBW_MSG_WR_ERR_MASK 0x4
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_DESC_OVF_SHIFT 3
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_DESC_OVF_MASK 0x8
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_LBW_RD_ERR_SHIFT 4
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_LBW_RD_ERR_MASK 0x10
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_LBW_WR_ERR_SHIFT 5
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_LBW_WR_ERR_MASK 0x20
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_TE_DESC_FIFO_OVFL_SHIFT 6
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_TE_DESC_FIFO_OVFL_MASK 0x40
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_LIN_DMA_COMMIT_CFG_ERR_SHIFT 7
|
||||
#define DCORE0_EDMA0_CORE_ERR_CAUSE_LIN_DMA_COMMIT_CFG_ERR_MASK 0x80
|
||||
|
||||
/* DCORE0_EDMA0_CORE_ERRMSG_ADDR_LO */
|
||||
#define DCORE0_EDMA0_CORE_ERRMSG_ADDR_LO_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_ERRMSG_ADDR_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_ERRMSG_ADDR_HI */
|
||||
#define DCORE0_EDMA0_CORE_ERRMSG_ADDR_HI_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_ERRMSG_ADDR_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_ERRMSG_WDATA */
|
||||
#define DCORE0_EDMA0_CORE_ERRMSG_WDATA_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_ERRMSG_WDATA_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS0 */
|
||||
#define DCORE0_EDMA0_CORE_STS0_RD_REQ_CNT_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS0_RD_REQ_CNT_MASK 0x7FFF
|
||||
#define DCORE0_EDMA0_CORE_STS0_WR_REQ_CNT_SHIFT 16
|
||||
#define DCORE0_EDMA0_CORE_STS0_WR_REQ_CNT_MASK 0x7FFF0000
|
||||
#define DCORE0_EDMA0_CORE_STS0_BUSY_SHIFT 31
|
||||
#define DCORE0_EDMA0_CORE_STS0_BUSY_MASK 0x80000000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS1 */
|
||||
#define DCORE0_EDMA0_CORE_STS1_IS_HALT_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS1_IS_HALT_MASK 0x1
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_RD_CTX_SEL */
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_CTX_SEL_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_CTX_SEL_VAL_MASK 0x7
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_CTX_SEL_STRIDE_SHIFT 8
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_CTX_SEL_STRIDE_MASK 0x100
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_RD_CTX_SIZE */
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_CTX_SIZE_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_CTX_SIZE_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_RD_CTX_BASE_LO */
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_CTX_BASE_LO_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_CTX_BASE_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_RD_CTX_BASE_HI */
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_CTX_BASE_HI_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_CTX_BASE_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_RD_CTX_ID */
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_CTX_ID_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_CTX_ID_VAL_MASK 0xFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_RD_HB_AXI_ADDR_LO */
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_HB_AXI_ADDR_LO_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_HB_AXI_ADDR_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_RD_HB_AXI_ADDR_HI */
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_HB_AXI_ADDR_HI_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_HB_AXI_ADDR_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_RD_LB_AXI_ADDR */
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_LB_AXI_ADDR_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_LB_AXI_ADDR_VAL_MASK 0x3FFFFFF
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_LB_AXI_ADDR_RDY_SHIFT 30
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_LB_AXI_ADDR_RDY_MASK 0x40000000
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_LB_AXI_ADDR_VLD_SHIFT 31
|
||||
#define DCORE0_EDMA0_CORE_STS_RD_LB_AXI_ADDR_VLD_MASK 0x80000000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_WR_CTX_SEL */
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_CTX_SEL_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_CTX_SEL_VAL_MASK 0x7
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_CTX_SEL_STRIDE_SHIFT 8
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_CTX_SEL_STRIDE_MASK 0x100
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_WR_CTX_SIZE */
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_CTX_SIZE_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_CTX_SIZE_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_WR_CTX_BASE_LO */
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_CTX_BASE_LO_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_CTX_BASE_LO_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_WR_CTX_BASE_HI */
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_CTX_BASE_HI_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_CTX_BASE_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_WR_CTX_ID */
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_CTX_ID_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_CTX_ID_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_LO */
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_LO_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_LO_VAL_MASK 0x3FFFF
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_LO_RDY_SHIFT 30
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_LO_RDY_MASK 0x40000000
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_LO_VLD_SHIFT 31
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_LO_VLD_MASK 0x80000000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_HI */
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_HI_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_HI_VAL_MASK 0x3FFFF
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_HI_RDY_SHIFT 30
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_HI_RDY_MASK 0x40000000
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_HI_VLD_SHIFT 31
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_HI_VLD_MASK 0x80000000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_STS_WR_LB_AXI_ADDR */
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_LB_AXI_ADDR_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_LB_AXI_ADDR_VAL_MASK 0x3FFFFFF
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_LB_AXI_ADDR_RDY_SHIFT 30
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_LB_AXI_ADDR_RDY_MASK 0x40000000
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_LB_AXI_ADDR_VLD_SHIFT 31
|
||||
#define DCORE0_EDMA0_CORE_STS_WR_LB_AXI_ADDR_VLD_MASK 0x80000000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_PWRLP_CFG */
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_CFG_GLBL_EN_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_CFG_GLBL_EN_MASK 0x1
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_CFG_CLR_SHIFT 4
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_CFG_CLR_MASK 0x10
|
||||
|
||||
/* DCORE0_EDMA0_CORE_PWRLP_STS */
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_STS_RLVL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_STS_RLVL_MASK 0x7F
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_STS_WLVL_SHIFT 8
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_STS_WLVL_MASK 0x7F00
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_STS_RCNT_SHIFT 16
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_STS_RCNT_MASK 0x7F0000
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_STS_WCNT_SHIFT 23
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_STS_WCNT_MASK 0x3F800000
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_STS_RFULL_SHIFT 30
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_STS_RFULL_MASK 0x40000000
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_STS_WFULL_SHIFT 31
|
||||
#define DCORE0_EDMA0_CORE_PWRLP_STS_WFULL_MASK 0x80000000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_DBG_DESC_CNT */
|
||||
#define DCORE0_EDMA0_CORE_DBG_DESC_CNT_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_DBG_DESC_CNT_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_DBG_STS */
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_RD_CTX_FULL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_RD_CTX_FULL_MASK 0x1
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_WR_CTX_FULL_SHIFT 1
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_WR_CTX_FULL_MASK 0x2
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_WR_COMP_FULL_SHIFT 2
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_WR_COMP_FULL_MASK 0x4
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_RD_CTX_EMPTY_SHIFT 3
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_RD_CTX_EMPTY_MASK 0x8
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_WR_CTX_EMPTY_SHIFT 4
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_WR_CTX_EMPTY_MASK 0x10
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_WR_COMP_EMPTY_SHIFT 5
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_WR_COMP_EMPTY_MASK 0x20
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_TE_EMPTY_SHIFT 6
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_TE_EMPTY_MASK 0x40
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_TE_BUSY_SHIFT 7
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_TE_BUSY_MASK 0x80
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_GSKT_EMPTY_SHIFT 8
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_GSKT_EMPTY_MASK 0x100
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_GSKT_FULL_SHIFT 9
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_GSKT_FULL_MASK 0x200
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_RD_AGU_CS_SHIFT 10
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_RD_AGU_CS_MASK 0x400
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_WR_AGU_CS_SHIFT 11
|
||||
#define DCORE0_EDMA0_CORE_DBG_STS_WR_AGU_CS_MASK 0x800
|
||||
|
||||
/* DCORE0_EDMA0_CORE_DBG_BUF_STS */
|
||||
#define DCORE0_EDMA0_CORE_DBG_BUF_STS_HBW_FULLNESS_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_DBG_BUF_STS_HBW_FULLNESS_MASK 0xFFF
|
||||
#define DCORE0_EDMA0_CORE_DBG_BUF_STS_LBW_FULLNESS_SHIFT 16
|
||||
#define DCORE0_EDMA0_CORE_DBG_BUF_STS_LBW_FULLNESS_MASK 0xFFF0000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_DBG_RD_DESC_ID */
|
||||
#define DCORE0_EDMA0_CORE_DBG_RD_DESC_ID_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_DBG_RD_DESC_ID_VAL_MASK 0xFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_DBG_WR_DESC_ID */
|
||||
#define DCORE0_EDMA0_CORE_DBG_WR_DESC_ID_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_DBG_WR_DESC_ID_VAL_MASK 0xFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_APB_DMA_LBW_BASE */
|
||||
#define DCORE0_EDMA0_CORE_APB_DMA_LBW_BASE_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_APB_DMA_LBW_BASE_VAL_MASK 0xFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_APB_MSTR_IF_LBW_BASE */
|
||||
#define DCORE0_EDMA0_CORE_APB_MSTR_IF_LBW_BASE_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_APB_MSTR_IF_LBW_BASE_VAL_MASK 0xFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_E2E_CRED_ASYNC_CFG */
|
||||
#define DCORE0_EDMA0_CORE_E2E_CRED_ASYNC_CFG_Y_X_FORCE_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_E2E_CRED_ASYNC_CFG_Y_X_FORCE_MASK 0x1FF
|
||||
#define DCORE0_EDMA0_CORE_E2E_CRED_ASYNC_CFG_FORCE_EN_SHIFT 9
|
||||
#define DCORE0_EDMA0_CORE_E2E_CRED_ASYNC_CFG_FORCE_EN_MASK 0x200
|
||||
|
||||
/* DCORE0_EDMA0_CORE_DBG_APB_ENABLER */
|
||||
#define DCORE0_EDMA0_CORE_DBG_APB_ENABLER_DIS_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_DBG_APB_ENABLER_DIS_MASK 0x1
|
||||
|
||||
/* DCORE0_EDMA0_CORE_L2H_CMPR_LO */
|
||||
#define DCORE0_EDMA0_CORE_L2H_CMPR_LO_VAL_SHIFT 20
|
||||
#define DCORE0_EDMA0_CORE_L2H_CMPR_LO_VAL_MASK 0xFFF00000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_L2H_CMPR_HI */
|
||||
#define DCORE0_EDMA0_CORE_L2H_CMPR_HI_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_L2H_CMPR_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_L2H_MASK_LO */
|
||||
#define DCORE0_EDMA0_CORE_L2H_MASK_LO_VAL_SHIFT 20
|
||||
#define DCORE0_EDMA0_CORE_L2H_MASK_LO_VAL_MASK 0xFFF00000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_L2H_MASK_HI */
|
||||
#define DCORE0_EDMA0_CORE_L2H_MASK_HI_VAL_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_L2H_MASK_HI_VAL_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_EDMA0_CORE_IDLE_IND_MASK */
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_DESC_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_DESC_MASK 0x1
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_COMP_SHIFT 1
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_COMP_MASK 0x2
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_INSTAGE_SHIFT 2
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_INSTAGE_MASK 0x4
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_CORE_SHIFT 3
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_CORE_MASK 0x8
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_DESC_CNT_STS_SHIFT 8
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_DESC_CNT_STS_MASK 0x1F00
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_COMP_CNT_STS_SHIFT 16
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_COMP_CNT_STS_MASK 0x1F0000
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_INSTAGE_EMPTY_SHIFT 24
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_INSTAGE_EMPTY_MASK 0x1000000
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_CORE_IDLE_STS_SHIFT 25
|
||||
#define DCORE0_EDMA0_CORE_IDLE_IND_MASK_CORE_IDLE_STS_MASK 0x2000000
|
||||
|
||||
/* DCORE0_EDMA0_CORE_APB_ENABLER */
|
||||
#define DCORE0_EDMA0_CORE_APB_ENABLER_DIS_SHIFT 0
|
||||
#define DCORE0_EDMA0_CORE_APB_ENABLER_DIS_MASK 0x1
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_EDMA0_CORE_MASKS_H_ */
|
@ -0,0 +1,157 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_EDMA0_CORE_REGS_H_
|
||||
#define ASIC_REG_DCORE0_EDMA0_CORE_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_EDMA0_CORE
|
||||
* (Prototype: DMA_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CFG_0 0x41CB000
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CFG_1 0x41CB004
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_PROT 0x41CB008
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_CKG 0x41CB00C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_RD_GLBL 0x41CB07C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_RD_HBW_MAX_OUTSTAND 0x41CB080
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_RD_HBW_MAX_SIZE 0x41CB084
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_RD_HBW_ARCACHE 0x41CB088
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_RD_HBW_INFLIGHTS 0x41CB090
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_RD_HBW_RATE_LIM_CFG 0x41CB094
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_RD_LBW_MAX_OUTSTAND 0x41CB0C0
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_RD_LBW_MAX_SIZE 0x41CB0C4
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_RD_LBW_ARCACHE 0x41CB0C8
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_RD_LBW_INFLIGHTS 0x41CB0D0
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_RD_LBW_RATE_LIM_CFG 0x41CB0D4
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_WR_HBW_MAX_OUTSTAND 0x41CB100
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_WR_HBW_MAX_AWID 0x41CB104
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_WR_HBW_AWCACHE 0x41CB108
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_WR_HBW_INFLIGHTS 0x41CB10C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_WR_HBW_RATE_LIM_CFG 0x41CB110
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_WR_LBW_MAX_OUTSTAND 0x41CB140
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_WR_LBW_MAX_AWID 0x41CB144
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_WR_LBW_AWCACHE 0x41CB148
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_WR_LBW_INFLIGHTS 0x41CB14C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_WR_LBW_RATE_LIM_CFG 0x41CB150
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_WR_COMP_MAX_OUTSTAND 0x41CB180
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_WR_COMP_AWUSER 0x41CB184
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_ERR_CFG 0x41CB300
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_ERR_CAUSE 0x41CB304
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_ERRMSG_ADDR_LO 0x41CB308
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_ERRMSG_ADDR_HI 0x41CB30C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_ERRMSG_WDATA 0x41CB310
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS0 0x41CB380
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS1 0x41CB384
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_RD_CTX_SEL 0x41CB400
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_RD_CTX_SIZE 0x41CB404
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_RD_CTX_BASE_LO 0x41CB408
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_RD_CTX_BASE_HI 0x41CB40C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_RD_CTX_ID 0x41CB410
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_RD_HB_AXI_ADDR_LO 0x41CB414
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_RD_HB_AXI_ADDR_HI 0x41CB418
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_RD_LB_AXI_ADDR 0x41CB41C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_WR_CTX_SEL 0x41CB420
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_WR_CTX_SIZE 0x41CB424
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_WR_CTX_BASE_LO 0x41CB428
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_WR_CTX_BASE_HI 0x41CB42C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_WR_CTX_ID 0x41CB430
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_LO 0x41CB434
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_WR_HB_AXI_ADDR_HI 0x41CB438
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_STS_WR_LB_AXI_ADDR 0x41CB43C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_PWRLP_CFG 0x41CB700
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_PWRLP_STS 0x41CB704
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_DBG_DESC_CNT 0x41CB710
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_DBG_STS 0x41CB714
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_DBG_BUF_STS 0x41CB718
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_DBG_RD_DESC_ID 0x41CB720
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_DBG_WR_DESC_ID 0x41CB724
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_APB_DMA_LBW_BASE 0x41CB728
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_APB_MSTR_IF_LBW_BASE 0x41CB72C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_E2E_CRED_ASYNC_CFG 0x41CB730
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_DBG_APB_ENABLER 0x41CBE1C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_L2H_CMPR_LO 0x41CBE20
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_L2H_CMPR_HI 0x41CBE24
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_L2H_MASK_LO 0x41CBE28
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_L2H_MASK_HI 0x41CBE2C
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_IDLE_IND_MASK 0x41CBE30
|
||||
|
||||
#define mmDCORE0_EDMA0_CORE_APB_ENABLER 0x41CBE34
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_EDMA0_CORE_REGS_H_ */
|
@ -0,0 +1,591 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_EDMA0_QM_ARC_AUX_REGS_H_
|
||||
#define ASIC_REG_DCORE0_EDMA0_QM_ARC_AUX_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_EDMA0_QM_ARC_AUX
|
||||
* (Prototype: QMAN_ARC_AUX)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_RUN_HALT_REQ 0x41C8100
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_RUN_HALT_ACK 0x41C8104
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_RST_VEC_ADDR 0x41C8108
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DBG_MODE 0x41C810C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CLUSTER_NUM 0x41C8110
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_NUM 0x41C8114
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_WAKE_UP_EVENT 0x41C8118
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_SYS_ADDR_BASE 0x41C811C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CTI_AP_STS 0x41C8120
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CTI_CFG_MUX_SEL 0x41C8124
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_RST 0x41C8128
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_RST_REQ 0x41C812C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SRAM_LSB_ADDR 0x41C8130
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SRAM_MSB_ADDR 0x41C8134
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_PCIE_LSB_ADDR 0x41C8138
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_PCIE_MSB_ADDR 0x41C813C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CFG_LSB_ADDR 0x41C8140
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CFG_MSB_ADDR 0x41C8144
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_HBM0_LSB_ADDR 0x41C8150
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_HBM0_MSB_ADDR 0x41C8154
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_HBM1_LSB_ADDR 0x41C8158
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_HBM1_MSB_ADDR 0x41C815C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_HBM2_LSB_ADDR 0x41C8160
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_HBM2_MSB_ADDR 0x41C8164
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_HBM3_LSB_ADDR 0x41C8168
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_HBM3_MSB_ADDR 0x41C816C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_HBM0_OFFSET 0x41C8170
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_HBM1_OFFSET 0x41C8174
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_HBM2_OFFSET 0x41C8178
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_HBM3_OFFSET 0x41C817C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_0 0x41C8180
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_1 0x41C8184
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_2 0x41C8188
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_3 0x41C818C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_4 0x41C8190
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_5 0x41C8194
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_6 0x41C8198
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_0 0x41C819C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_1 0x41C81A0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_2 0x41C81A4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_3 0x41C81A8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_4 0x41C81AC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_5 0x41C81B0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_6 0x41C81B4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_CBU_AWCACHE_OVR 0x41C81B8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_LBU_AWCACHE_OVR 0x41C81BC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CONTEXT_ID_0 0x41C81C0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CONTEXT_ID_1 0x41C81C4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CONTEXT_ID_2 0x41C81C8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CONTEXT_ID_3 0x41C81CC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CONTEXT_ID_4 0x41C81D0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CONTEXT_ID_5 0x41C81D4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CONTEXT_ID_6 0x41C81D8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CONTEXT_ID_7 0x41C81DC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CID_OFFSET_0 0x41C81E0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CID_OFFSET_1 0x41C81E4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CID_OFFSET_2 0x41C81E8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CID_OFFSET_3 0x41C81EC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CID_OFFSET_4 0x41C81F0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CID_OFFSET_5 0x41C81F4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CID_OFFSET_6 0x41C81F8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CID_OFFSET_7 0x41C81FC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_0 0x41C8200
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_1 0x41C8204
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_2 0x41C8208
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_3 0x41C820C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_4 0x41C8210
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_5 0x41C8214
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_6 0x41C8218
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_7 0x41C821C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_8 0x41C8220
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_9 0x41C8224
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_10 0x41C8228
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_11 0x41C822C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_12 0x41C8230
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_13 0x41C8234
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_14 0x41C8238
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SW_INTR_15 0x41C823C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_IRQ_INTR_MASK_0 0x41C8280
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_IRQ_INTR_MASK_1 0x41C8284
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_SEI_INTR_STS 0x41C8290
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_SEI_INTR_CLR 0x41C8294
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_SEI_INTR_MASK 0x41C8298
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_EXCPTN_CAUSE 0x41C829C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SEI_INTR_HALT_EN 0x41C82A0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_SEI_INTR_HALT_MASK 0x41C82A4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_QMAN_SEI_INTR_HALT_MASK 0x41C82A8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REI_INTR_STS 0x41C82B0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REI_INTR_CLR 0x41C82B4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REI_INTR_MASK 0x41C82B8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_ECC_ERR_ADDR 0x41C82BC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_ECC_SYNDROME 0x41C82C0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_I_CACHE_ECC_ERR_ADDR 0x41C82C4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_I_CACHE_ECC_SYNDROME 0x41C82C8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_D_CACHE_ECC_ERR_ADDR 0x41C82CC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_D_CACHE_ECC_SYNDROME 0x41C82D0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBW_TRMINATE_AWADDR_ERR 0x41C82E0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBW_TRMINATE_ARADDR_ERR 0x41C82E4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CFG_LBW_TERMINATE_BRESP 0x41C82E8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CFG_LBW_TERMINATE_RRESP 0x41C82EC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CFG_LBW_TERMINATE_AXLEN 0x41C82F0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CFG_LBW_TERMINATE_AXSIZE 0x41C82F4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SCRATCHPAD_0 0x41C8300
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SCRATCHPAD_1 0x41C8304
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SCRATCHPAD_2 0x41C8308
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SCRATCHPAD_3 0x41C830C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SCRATCHPAD_4 0x41C8310
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SCRATCHPAD_5 0x41C8314
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SCRATCHPAD_6 0x41C8318
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_SCRATCHPAD_7 0x41C831C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_TOTAL_CBU_WR_CNT 0x41C8320
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_INFLIGHT_CBU_WR_CNT 0x41C8324
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_TOTAL_CBU_RD_CNT 0x41C8328
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_INFLIGHT_CBU_RD_CNT 0x41C832C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_TOTAL_LBU_WR_CNT 0x41C8330
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_INFLIGHT_LBU_WR_CNT 0x41C8334
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_TOTAL_LBU_RD_CNT 0x41C8338
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_INFLIGHT_LBU_RD_CNT 0x41C833C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_ARUSER_OVR 0x41C8350
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_ARUSER_OVR_EN 0x41C8354
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_AWUSER_OVR 0x41C8358
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_AWUSER_OVR_EN 0x41C835C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_ARUSER_MSB_OVR 0x41C8360
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_ARUSER_MSB_OVR_EN 0x41C8364
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_AWUSER_MSB_OVR 0x41C8368
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_AWUSER_MSB_OVR_EN 0x41C836C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_AXCACHE_OVR 0x41C8370
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_LOCK_OVR 0x41C8374
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_PROT_OVR 0x41C8378
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_MAX_OUTSTANDING 0x41C837C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_EARLY_BRESP_EN 0x41C8380
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORCE_RSP_OK 0x41C8384
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_NO_WR_INFLIGHT 0x41C838C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_SEI_INTR_ID 0x41C8390
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBU_ARUSER_OVR 0x41C8400
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBU_ARUSER_OVR_EN 0x41C8404
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBU_AWUSER_OVR 0x41C8408
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBU_AWUSER_OVR_EN 0x41C840C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBU_AXCACHE_OVR 0x41C8420
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBU_LOCK_OVR 0x41C8424
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBU_PROT_OVR 0x41C8428
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBU_MAX_OUTSTANDING 0x41C842C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBU_EARLY_BRESP_EN 0x41C8430
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBU_FORCE_RSP_OK 0x41C8434
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBU_NO_WR_INFLIGHT 0x41C843C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBU_SEI_INTR_ID 0x41C8440
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_0 0x41C8500
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_1 0x41C8504
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_2 0x41C8508
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_3 0x41C850C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_4 0x41C8510
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_5 0x41C8514
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_6 0x41C8518
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_7 0x41C851C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_SIZE_0 0x41C8520
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_SIZE_1 0x41C8524
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_SIZE_2 0x41C8528
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_SIZE_3 0x41C852C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_SIZE_4 0x41C8530
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_SIZE_5 0x41C8534
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_SIZE_6 0x41C8538
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_SIZE_7 0x41C853C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PI_0 0x41C8540
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PI_1 0x41C8544
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PI_2 0x41C8548
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PI_3 0x41C854C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PI_4 0x41C8550
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PI_5 0x41C8554
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PI_6 0x41C8558
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PI_7 0x41C855C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_CI_0 0x41C8560
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_CI_1 0x41C8564
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_CI_2 0x41C8568
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_CI_3 0x41C856C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_CI_4 0x41C8570
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_CI_5 0x41C8574
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_CI_6 0x41C8578
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_CI_7 0x41C857C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_0 0x41C8580
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_1 0x41C8584
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_2 0x41C8588
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_3 0x41C858C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_4 0x41C8590
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_5 0x41C8594
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_6 0x41C8598
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_7 0x41C859C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_0 0x41C85A0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_1 0x41C85A4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_2 0x41C85A8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_3 0x41C85AC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_4 0x41C85B0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_5 0x41C85B4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_6 0x41C85B8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_7 0x41C85BC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_0 0x41C85C0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_1 0x41C85C4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_2 0x41C85C8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_3 0x41C85CC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_4 0x41C85D0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_5 0x41C85D4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_6 0x41C85D8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_7 0x41C85DC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_GENERAL_Q_VLD_ENTRY_MASK 0x41C85E0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_NIC_Q_VLD_ENTRY_MASK 0x41C85E4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_DROP_EN 0x41C8620
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_WARN_MSG 0x41C8624
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_QUEUE_ALERT_MSG 0x41C8628
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_GEN_AXI_AWPROT 0x41C8630
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_GEN_AXI_AWUSER 0x41C8634
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_GEN_AXI_AWBURST 0x41C8638
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_GEN_AXI_AWLOCK 0x41C863C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_GEN_AXI_AWCACHE 0x41C8640
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_WRR_ARB_WEIGHT 0x41C8644
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_Q_PUSH_FIFO_FULL_CFG 0x41C8648
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_Q_PUSH_FIFO_CNT 0x41C864C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_QMAN_CQ_IFIFO_SHADOW_CI 0x41C8650
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_QMAN_ARC_CQ_IFIFO_SHADOW_CI 0x41C8654
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_QMAN_CQ_SHADOW_CI 0x41C8658
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_QMAN_ARC_CQ_SHADOW_CI 0x41C865C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_AUX2APB_PROT 0x41C8700
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBW_FORK_WIN_EN 0x41C8704
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_QMAN_LBW_FORK_BASE_ADDR0 0x41C8708
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_QMAN_LBW_FORK_ADDR_MASK0 0x41C870C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_QMAN_LBW_FORK_BASE_ADDR1 0x41C8710
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_QMAN_LBW_FORK_ADDR_MASK1 0x41C8714
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_FARM_LBW_FORK_BASE_ADDR0 0x41C8718
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_FARM_LBW_FORK_ADDR_MASK0 0x41C871C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_FARM_LBW_FORK_BASE_ADDR1 0x41C8720
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_FARM_LBW_FORK_ADDR_MASK1 0x41C8724
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBW_APB_FORK_MAX_ADDR0 0x41C8728
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_LBW_APB_FORK_MAX_ADDR1 0x41C872C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_ACC_ENGS_LBW_FORK_MASK 0x41C8730
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_DUP_ENG_LBW_FORK_ADDR 0x41C8734
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_ACP_ENG_LBW_FORK_ADDR 0x41C8738
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_ACC_ENGS_VIRTUAL_ADDR 0x41C873C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_WIN_EN 0x41C8740
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_BASE_ADDR0_LSB 0x41C8750
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_BASE_ADDR0_MSB 0x41C8754
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_ADDR_MASK0_LSB 0x41C8758
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_ADDR_MASK0_MSB 0x41C875C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_BASE_ADDR1_LSB 0x41C8760
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_BASE_ADDR1_MSB 0x41C8764
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_ADDR_MASK1_LSB 0x41C8768
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_ADDR_MASK1_MSB 0x41C876C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_BASE_ADDR2_LSB 0x41C8770
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_BASE_ADDR2_MSB 0x41C8774
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_ADDR_MASK2_LSB 0x41C8778
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_ADDR_MASK2_MSB 0x41C877C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_BASE_ADDR3_LSB 0x41C8780
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_BASE_ADDR3_MSB 0x41C8784
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_ADDR_MASK3_LSB 0x41C8788
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_FORK_ADDR_MASK3_MSB 0x41C878C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_TRMINATE_ARADDR_LSB 0x41C8790
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CBU_TRMINATE_ARADDR_MSB 0x41C8794
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CFG_CBU_TERMINATE_BRESP 0x41C8798
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CFG_CBU_TERMINATE_RRESP 0x41C879C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_0 0x41C8800
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_1 0x41C8804
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_2 0x41C8808
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_3 0x41C880C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_4 0x41C8810
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_5 0x41C8814
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_6 0x41C8818
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_7 0x41C881C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_8 0x41C8820
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_9 0x41C8824
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_10 0x41C8828
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_11 0x41C882C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_12 0x41C8830
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_13 0x41C8834
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_14 0x41C8838
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_REGION_CFG_15 0x41C883C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_TRMINATE_AWADDR_ERR 0x41C8840
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_DCCM_TRMINATE_ARADDR_ERR 0x41C8844
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CFG_DCCM_TERMINATE_BRESP 0x41C8848
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CFG_DCCM_TERMINATE_RRESP 0x41C884C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CFG_DCCM_TERMINATE_EN 0x41C8850
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_CFG_DCCM_SECURE_REGION 0x41C8854
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_AXI_ORDERING_WR_IF_CNT 0x41C8900
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_AXI_ORDERING_CTL 0x41C8904
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_AXI_ORDERING_ADDR_MSK 0x41C8908
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_AXI_ORDERING_ADDR 0x41C890C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_ARC_ACC_ENGS_BUSER 0x41C8910
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_ARC_AUX_MME_ARC_UPPER_DCCM_EN 0x41C8920
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_EDMA0_QM_ARC_AUX_REGS_H_ */
|
@ -0,0 +1,61 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_EDMA0_QM_AXUSER_NONSECURED_REGS_H_
|
||||
#define ASIC_REG_DCORE0_EDMA0_QM_AXUSER_NONSECURED_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_EDMA0_QM_AXUSER_NONSECURED
|
||||
* (Prototype: AXUSER)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_ASID 0x41CAB80
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_MMU_BP 0x41CAB84
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_STRONG_ORDER 0x41CAB88
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_NO_SNOOP 0x41CAB8C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_WR_REDUCTION 0x41CAB90
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_RD_ATOMIC 0x41CAB94
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_QOS 0x41CAB98
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_RSVD 0x41CAB9C
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_EMEM_CPAGE 0x41CABA0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_CORE 0x41CABA4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_E2E_COORD 0x41CABA8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_WR_OVRD_LO 0x41CABB0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_WR_OVRD_HI 0x41CABB4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_RD_OVRD_LO 0x41CABB8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_HB_RD_OVRD_HI 0x41CABBC
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_LB_COORD 0x41CABC0
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_LB_LOCK 0x41CABC4
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_LB_RSVD 0x41CABC8
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_AXUSER_NONSECURED_LB_OVRD 0x41CABCC
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_EDMA0_QM_AXUSER_NONSECURED_REGS_H_ */
|
@ -0,0 +1,29 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_EDMA0_QM_CGM_REGS_H_
|
||||
#define ASIC_REG_DCORE0_EDMA0_QM_CGM_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_EDMA0_QM_CGM
|
||||
* (Prototype: QMAN_CGM)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_CGM_CFG 0x41CAD80
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_CGM_STS 0x41CAD84
|
||||
|
||||
#define mmDCORE0_EDMA0_QM_CGM_CFG1 0x41CAD88
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_EDMA0_QM_CGM_REGS_H_ */
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,61 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_EDMA1_CORE_CTX_AXUSER_REGS_H_
|
||||
#define ASIC_REG_DCORE0_EDMA1_CORE_CTX_AXUSER_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_EDMA1_CORE_CTX_AXUSER
|
||||
* (Prototype: AXUSER)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_ASID 0x41DB800
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_MMU_BP 0x41DB804
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_STRONG_ORDER 0x41DB808
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_NO_SNOOP 0x41DB80C
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_WR_REDUCTION 0x41DB810
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_RD_ATOMIC 0x41DB814
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_QOS 0x41DB818
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_RSVD 0x41DB81C
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_EMEM_CPAGE 0x41DB820
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_CORE 0x41DB824
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_E2E_COORD 0x41DB828
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_WR_OVRD_LO 0x41DB830
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_WR_OVRD_HI 0x41DB834
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_RD_OVRD_LO 0x41DB838
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_HB_RD_OVRD_HI 0x41DB83C
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_LB_COORD 0x41DB840
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_LB_LOCK 0x41DB844
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_LB_RSVD 0x41DB848
|
||||
|
||||
#define mmDCORE0_EDMA1_CORE_CTX_AXUSER_LB_OVRD 0x41DB84C
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_EDMA1_CORE_CTX_AXUSER_REGS_H_ */
|
@ -0,0 +1,61 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_EDMA1_QM_AXUSER_NONSECURED_REGS_H_
|
||||
#define ASIC_REG_DCORE0_EDMA1_QM_AXUSER_NONSECURED_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_EDMA1_QM_AXUSER_NONSECURED
|
||||
* (Prototype: AXUSER)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_ASID 0x41DAB80
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_MMU_BP 0x41DAB84
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_STRONG_ORDER 0x41DAB88
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_NO_SNOOP 0x41DAB8C
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_WR_REDUCTION 0x41DAB90
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_RD_ATOMIC 0x41DAB94
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_QOS 0x41DAB98
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_RSVD 0x41DAB9C
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_EMEM_CPAGE 0x41DABA0
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_CORE 0x41DABA4
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_E2E_COORD 0x41DABA8
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_WR_OVRD_LO 0x41DABB0
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_WR_OVRD_HI 0x41DABB4
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_RD_OVRD_LO 0x41DABB8
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_HB_RD_OVRD_HI 0x41DABBC
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_LB_COORD 0x41DABC0
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_LB_LOCK 0x41DABC4
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_LB_RSVD 0x41DABC8
|
||||
|
||||
#define mmDCORE0_EDMA1_QM_AXUSER_NONSECURED_LB_OVRD 0x41DABCC
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_EDMA1_QM_AXUSER_NONSECURED_REGS_H_ */
|
@ -0,0 +1,294 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_HMMU0_MMU_MASKS_H_
|
||||
#define ASIC_REG_DCORE0_HMMU0_MMU_MASKS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_HMMU0_MMU
|
||||
* (Prototype: MMU)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
/* DCORE0_HMMU0_MMU_MMU_ENABLE */
|
||||
#define DCORE0_HMMU0_MMU_MMU_ENABLE_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_MMU_ENABLE_R_MASK 0x1
|
||||
|
||||
/* DCORE0_HMMU0_MMU_FORCE_ORDERING */
|
||||
#define DCORE0_HMMU0_MMU_FORCE_ORDERING_WEAK_ORDERING_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_FORCE_ORDERING_WEAK_ORDERING_MASK 0x1
|
||||
#define DCORE0_HMMU0_MMU_FORCE_ORDERING_STRONG_ORDERING_SHIFT 1
|
||||
#define DCORE0_HMMU0_MMU_FORCE_ORDERING_STRONG_ORDERING_MASK 0x2
|
||||
|
||||
/* DCORE0_HMMU0_MMU_FEATURE_ENABLE */
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_VA_ORDERING_EN_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_VA_ORDERING_EN_MASK 0x1
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_CLEAN_LINK_LIST_SHIFT 1
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_CLEAN_LINK_LIST_MASK 0x2
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_HOP_OFFSET_EN_SHIFT 2
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_HOP_OFFSET_EN_MASK 0x4
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_OBI_ORDERING_EN_SHIFT 3
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_OBI_ORDERING_EN_MASK 0x8
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_STRONG_ORDERING_READ_EN_SHIFT 4
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_STRONG_ORDERING_READ_EN_MASK 0x10
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_TRACE_ENABLE_SHIFT 5
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_TRACE_ENABLE_MASK 0x20
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_TRACE_EV_MMU_OR_STLB_SHIFT 6
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_TRACE_EV_MMU_OR_STLB_MASK 0x40
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_TRACE_CLKH_EQUAL_CLKL_SHIFT 7
|
||||
#define DCORE0_HMMU0_MMU_FEATURE_ENABLE_TRACE_CLKH_EQUAL_CLKL_MASK 0x80
|
||||
|
||||
/* DCORE0_HMMU0_MMU_VA_ORDERING_MASK_38_7 */
|
||||
#define DCORE0_HMMU0_MMU_VA_ORDERING_MASK_38_7_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_VA_ORDERING_MASK_38_7_R_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_VA_ORDERING_MASK_64_39 */
|
||||
#define DCORE0_HMMU0_MMU_VA_ORDERING_MASK_64_39_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_VA_ORDERING_MASK_64_39_R_MASK 0x3FFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_LOG2_DDR_SIZE */
|
||||
#define DCORE0_HMMU0_MMU_LOG2_DDR_SIZE_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_LOG2_DDR_SIZE_R_MASK 0xFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_SCRAMBLER */
|
||||
#define DCORE0_HMMU0_MMU_SCRAMBLER_ADDR_BIT_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_SCRAMBLER_ADDR_BIT_MASK 0x3F
|
||||
#define DCORE0_HMMU0_MMU_SCRAMBLER_SINGLE_DDR_EN_SHIFT 6
|
||||
#define DCORE0_HMMU0_MMU_SCRAMBLER_SINGLE_DDR_EN_MASK 0x40
|
||||
#define DCORE0_HMMU0_MMU_SCRAMBLER_SINGLE_DDR_ID_SHIFT 7
|
||||
#define DCORE0_HMMU0_MMU_SCRAMBLER_SINGLE_DDR_ID_MASK 0x80
|
||||
#define DCORE0_HMMU0_MMU_SCRAMBLER_DDR_CH_LSB_BIT_LOCATION_SHIFT 8
|
||||
#define DCORE0_HMMU0_MMU_SCRAMBLER_DDR_CH_LSB_BIT_LOCATION_MASK 0x7F00
|
||||
|
||||
/* DCORE0_HMMU0_MMU_MEM_INIT_BUSY */
|
||||
#define DCORE0_HMMU0_MMU_MEM_INIT_BUSY_DATA_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_MEM_INIT_BUSY_DATA_MASK 0x3
|
||||
#define DCORE0_HMMU0_MMU_MEM_INIT_BUSY_OBI0_SHIFT 2
|
||||
#define DCORE0_HMMU0_MMU_MEM_INIT_BUSY_OBI0_MASK 0x4
|
||||
#define DCORE0_HMMU0_MMU_MEM_INIT_BUSY_OBI1_SHIFT 3
|
||||
#define DCORE0_HMMU0_MMU_MEM_INIT_BUSY_OBI1_MASK 0x8
|
||||
|
||||
/* DCORE0_HMMU0_MMU_SPI_SEI_MASK */
|
||||
#define DCORE0_HMMU0_MMU_SPI_SEI_MASK_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_SPI_SEI_MASK_R_MASK 0x7FFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_SPI_SEI_CAUSE */
|
||||
#define DCORE0_HMMU0_MMU_SPI_SEI_CAUSE_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_SPI_SEI_CAUSE_R_MASK 0x7FFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_PAGE_ERROR_CAPTURE */
|
||||
#define DCORE0_HMMU0_MMU_PAGE_ERROR_CAPTURE_VA_63_32_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_PAGE_ERROR_CAPTURE_VA_63_32_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_PAGE_ERROR_CAPTURE_VA */
|
||||
#define DCORE0_HMMU0_MMU_PAGE_ERROR_CAPTURE_VA_VA_31_0_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_PAGE_ERROR_CAPTURE_VA_VA_31_0_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_ACCESS_ERROR_CAPTURE */
|
||||
#define DCORE0_HMMU0_MMU_ACCESS_ERROR_CAPTURE_VA_63_32_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_ACCESS_ERROR_CAPTURE_VA_63_32_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_ACCESS_ERROR_CAPTURE_VA */
|
||||
#define DCORE0_HMMU0_MMU_ACCESS_ERROR_CAPTURE_VA_VA_31_0_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_ACCESS_ERROR_CAPTURE_VA_VA_31_0_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_ACCESS_PAGE_ERROR_VALID */
|
||||
#define DCORE0_HMMU0_MMU_ACCESS_PAGE_ERROR_VALID_PAGE_ERR_VALID_ENTRY_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_ACCESS_PAGE_ERROR_VALID_PAGE_ERR_VALID_ENTRY_MASK 0x1
|
||||
#define DCORE0_HMMU0_MMU_ACCESS_PAGE_ERROR_VALID_ACCESS_ERR_VALID_ENTRY_SHIFT 1
|
||||
#define DCORE0_HMMU0_MMU_ACCESS_PAGE_ERROR_VALID_ACCESS_ERR_VALID_ENTRY_MASK 0x2
|
||||
|
||||
/* DCORE0_HMMU0_MMU_INTERRUPT_CLR */
|
||||
#define DCORE0_HMMU0_MMU_INTERRUPT_CLR_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_INTERRUPT_CLR_R_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_INTERRUPT_MASK */
|
||||
#define DCORE0_HMMU0_MMU_INTERRUPT_MASK_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_INTERRUPT_MASK_R_MASK 0xFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_DBG_MEM_WRAP_RM */
|
||||
#define DCORE0_HMMU0_MMU_DBG_MEM_WRAP_RM_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_DBG_MEM_WRAP_RM_R_MASK 0x3FFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_SPI_CAUSE_CLR */
|
||||
#define DCORE0_HMMU0_MMU_SPI_CAUSE_CLR_CLR_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_SPI_CAUSE_CLR_CLR_MASK 0x1
|
||||
|
||||
/* DCORE0_HMMU0_MMU_PIPE_CREDIT */
|
||||
#define DCORE0_HMMU0_MMU_PIPE_CREDIT_READ_CREDIT_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_PIPE_CREDIT_READ_CREDIT_MASK 0xF
|
||||
#define DCORE0_HMMU0_MMU_PIPE_CREDIT_READ_FORCE_FULL_SHIFT 7
|
||||
#define DCORE0_HMMU0_MMU_PIPE_CREDIT_READ_FORCE_FULL_MASK 0x80
|
||||
#define DCORE0_HMMU0_MMU_PIPE_CREDIT_WRITE_CREDIT_SHIFT 8
|
||||
#define DCORE0_HMMU0_MMU_PIPE_CREDIT_WRITE_CREDIT_MASK 0xF00
|
||||
#define DCORE0_HMMU0_MMU_PIPE_CREDIT_WRITE_FORCE_FULL_SHIFT 15
|
||||
#define DCORE0_HMMU0_MMU_PIPE_CREDIT_WRITE_FORCE_FULL_MASK 0x8000
|
||||
|
||||
/* DCORE0_HMMU0_MMU_MMU_BYPASS */
|
||||
#define DCORE0_HMMU0_MMU_MMU_BYPASS_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_MMU_BYPASS_R_MASK 0x1
|
||||
|
||||
/* DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE */
|
||||
#define DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_HOP5_PAGE_SIZE_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_HOP5_PAGE_SIZE_MASK 0xF
|
||||
#define DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_HOP4_PAGE_SIZE_SHIFT 4
|
||||
#define DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_HOP4_PAGE_SIZE_MASK 0xF0
|
||||
#define DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_HOP3_PAGE_SIZE_SHIFT 8
|
||||
#define DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_HOP3_PAGE_SIZE_MASK 0xF00
|
||||
#define DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_HOP2_PAGE_SIZE_SHIFT 12
|
||||
#define DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_HOP2_PAGE_SIZE_MASK 0xF000
|
||||
#define DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_HOP1_PAGE_SIZE_SHIFT 16
|
||||
#define DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_HOP1_PAGE_SIZE_MASK 0xF0000
|
||||
#define DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_CFG_8_BITS_HOP_MODE_EN_SHIFT 20
|
||||
#define DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_CFG_8_BITS_HOP_MODE_EN_MASK \
|
||||
0x100000
|
||||
|
||||
/* DCORE0_HMMU0_MMU_CORE_SEP_CACHE_RNG */
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_CACHE_RNG_CORE_SET_MASK_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_CACHE_RNG_CORE_SET_MASK_MASK 0x1FF
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_CACHE_RNG_CORE_SET_MIN_SHIFT 10
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_CACHE_RNG_CORE_SET_MIN_MASK 0x7FC00
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_CACHE_RNG_CORE_SET_MAX_SHIFT 20
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_CACHE_RNG_CORE_SET_MAX_MASK 0x1FF00000
|
||||
|
||||
/* DCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT */
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT_WRITE_CRED_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT_WRITE_CRED_MASK 0x1FF
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT_READ_CRED_SHIFT 9
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT_READ_CRED_MASK 0x3FE00
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT_TOTAL_SHIFT 18
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT_TOTAL_MASK 0x7FC0000
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT_FORCE_FULL_WRITE_SHIFT 27
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT_FORCE_FULL_WRITE_MASK 0x8000000
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT_FORCE_FULL_READ_SHIFT 28
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT_FORCE_FULL_READ_MASK 0x10000000
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT_FORCE_FULL_TOTAL_SHIFT 29
|
||||
#define DCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT_FORCE_FULL_TOTAL_MASK 0x20000000
|
||||
|
||||
/* DCORE0_HMMU0_MMU_TOTAL_SLICE_CREDIT */
|
||||
#define DCORE0_HMMU0_MMU_TOTAL_SLICE_CREDIT_TOTAL_SHIFT 18
|
||||
#define DCORE0_HMMU0_MMU_TOTAL_SLICE_CREDIT_TOTAL_MASK 0x7FC0000
|
||||
#define DCORE0_HMMU0_MMU_TOTAL_SLICE_CREDIT_FORCE_FULL_TOTAL_SHIFT 29
|
||||
#define DCORE0_HMMU0_MMU_TOTAL_SLICE_CREDIT_FORCE_FULL_TOTAL_MASK 0x20000000
|
||||
|
||||
/* DCORE0_HMMU0_MMU_PAGE_FAULT_ID_LSB */
|
||||
#define DCORE0_HMMU0_MMU_PAGE_FAULT_ID_LSB_PAGE_FAULT_ID_31_0_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_PAGE_FAULT_ID_LSB_PAGE_FAULT_ID_31_0_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_PAGE_FAULT_ID_MSB */
|
||||
#define DCORE0_HMMU0_MMU_PAGE_FAULT_ID_MSB_PAGE_FAULT_ID_42_32_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_PAGE_FAULT_ID_MSB_PAGE_FAULT_ID_42_32_MASK 0x7FF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_PAGE_ACCESS_ID_LSB */
|
||||
#define DCORE0_HMMU0_MMU_PAGE_ACCESS_ID_LSB_PAGE_ACCESS_ID_31_0_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_PAGE_ACCESS_ID_LSB_PAGE_ACCESS_ID_31_0_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_PAGE_ACCESS_ID_MSB */
|
||||
#define DCORE0_HMMU0_MMU_PAGE_ACCESS_ID_MSB_PAGE_ACCESS_ID_42_32_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_PAGE_ACCESS_ID_MSB_PAGE_ACCESS_ID_42_32_MASK 0x7FF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_DDR_RANGE_REG_ENABLE */
|
||||
#define DCORE0_HMMU0_MMU_DDR_RANGE_REG_ENABLE_ENABLE_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_DDR_RANGE_REG_ENABLE_ENABLE_MASK 0x1
|
||||
|
||||
/* DCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_63_32 */
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_63_32_SEC_MIN_63_32_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_63_32_SEC_MIN_63_32_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_31_0 */
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_31_0_SEC_MIN_31_0_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_31_0_SEC_MIN_31_0_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_63_32 */
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_63_32_SEC_MAX_63_32_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_63_32_SEC_MAX_63_32_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_31_0 */
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_31_0_SEC_MAX_31_0_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_31_0_SEC_MAX_31_0_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_63_32 */
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_63_32_PRIV_MIN_63_32_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_63_32_PRIV_MIN_63_32_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_31_0 */
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_31_0_PRIV_MIN_31_0_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_31_0_PRIV_MIN_31_0_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_63_32 */
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_63_32_PRIV_MAX_63_32_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_63_32_PRIV_MAX_63_32_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_31_0 */
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_31_0_PRIV_MAX_31_0_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_31_0_PRIV_MAX_31_0_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_ILLEGAL_ADDR_WRITE_63_32 */
|
||||
#define DCORE0_HMMU0_MMU_ILLEGAL_ADDR_WRITE_63_32_ILLEGAL_ADDR_63_32_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_ILLEGAL_ADDR_WRITE_63_32_ILLEGAL_ADDR_63_32_MASK \
|
||||
0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_ILLEGAL_ADDR_WRITE_31_0 */
|
||||
#define DCORE0_HMMU0_MMU_ILLEGAL_ADDR_WRITE_31_0_ILLEGAL_ADDR_31_0_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_ILLEGAL_ADDR_WRITE_31_0_ILLEGAL_ADDR_31_0_MASK \
|
||||
0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_ILLEGAL_ADDR_READ_63_32 */
|
||||
#define DCORE0_HMMU0_MMU_ILLEGAL_ADDR_READ_63_32_ILLEGAL_ADDR_63_32_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_ILLEGAL_ADDR_READ_63_32_ILLEGAL_ADDR_63_32_MASK \
|
||||
0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_ILLEGAL_ADDR_READ_31_0 */
|
||||
#define DCORE0_HMMU0_MMU_ILLEGAL_ADDR_READ_31_0_ILLEGAL_ADDR_31_0_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_ILLEGAL_ADDR_READ_31_0_ILLEGAL_ADDR_31_0_MASK \
|
||||
0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_RAZWI_WRITE_VLD */
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_WRITE_VLD_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_WRITE_VLD_R_MASK 0x1
|
||||
|
||||
/* DCORE0_HMMU0_MMU_RAZWI_WRITE_ID_31_0 */
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_WRITE_ID_31_0_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_WRITE_ID_31_0_R_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_RAZWI_WRITE_ID_42_32 */
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_WRITE_ID_42_32_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_WRITE_ID_42_32_R_MASK 0x7FF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_RAZWI_READ_VLD */
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_READ_VLD_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_READ_VLD_R_MASK 0x1
|
||||
|
||||
/* DCORE0_HMMU0_MMU_RAZWI_READ_ID_31_0 */
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_READ_ID_31_0_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_READ_ID_31_0_R_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_RAZWI_READ_ID_42_32 */
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_READ_ID_42_32_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_READ_ID_42_32_R_MASK 0x7FF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_MMU_SRC_NUM */
|
||||
#define DCORE0_HMMU0_MMU_MMU_SRC_NUM_OVERRIDE_SRC_NUM_EN_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_MMU_SRC_NUM_OVERRIDE_SRC_NUM_EN_MASK 0x1
|
||||
#define DCORE0_HMMU0_MMU_MMU_SRC_NUM_SRC_NUM_SHIFT 1
|
||||
#define DCORE0_HMMU0_MMU_MMU_SRC_NUM_SRC_NUM_MASK 0x1E
|
||||
|
||||
/* DCORE0_HMMU0_MMU_RAZWI_ADDR_LSB */
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_ADDR_LSB_ADDR_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_ADDR_LSB_ADDR_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_MMU_RAZWI_ADDR_MSB */
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_ADDR_MSB_ADDR_SHIFT 0
|
||||
#define DCORE0_HMMU0_MMU_RAZWI_ADDR_MSB_ADDR_MASK 0xFFFFFFFF
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_HMMU0_MMU_MASKS_H_ */
|
@ -0,0 +1,237 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_HMMU0_MMU_REGS_H_
|
||||
#define ASIC_REG_DCORE0_HMMU0_MMU_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_HMMU0_MMU
|
||||
* (Prototype: MMU)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_ENABLE 0x408000C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_FORCE_ORDERING 0x4080010
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_FEATURE_ENABLE 0x4080014
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_VA_ORDERING_MASK_38_7 0x4080018
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_VA_ORDERING_MASK_64_39 0x408001C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_LOG2_DDR_SIZE 0x4080020
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_SCRAMBLER 0x4080024
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MEM_INIT_BUSY 0x4080028
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_SPI_SEI_MASK 0x408002C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_SPI_SEI_CAUSE 0x4080030
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_PAGE_ERROR_CAPTURE 0x4080034
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_PAGE_ERROR_CAPTURE_VA 0x4080038
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_ACCESS_ERROR_CAPTURE 0x408003C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_ACCESS_ERROR_CAPTURE_VA 0x4080040
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_ACCESS_PAGE_ERROR_VALID 0x4080044
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_INTERRUPT_CLR 0x4080048
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_INTERRUPT_MASK 0x408004C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_DBG_MEM_WRAP_RM 0x4080050
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_SPI_CAUSE_CLR 0x4080054
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_PIPE_CREDIT 0x4080058
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_BYPASS 0x408006C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE 0x4080070
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_CORE_SEP_CACHE_RNG 0x40800A0
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_CORE_SEP_SLICE_CRDT 0x40800D0
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_TOTAL_SLICE_CREDIT 0x40800F4
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_PAGE_FAULT_ID_LSB 0x40800F8
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_PAGE_FAULT_ID_MSB 0x40800FC
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_PAGE_ACCESS_ID_LSB 0x4080100
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_PAGE_ACCESS_ID_MSB 0x4080104
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_DDR_RANGE_REG_ENABLE 0x4080108
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_63_32_0 0x4080110
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_63_32_1 0x4080114
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_63_32_2 0x4080118
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_63_32_3 0x408011C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_63_32_4 0x4080120
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_63_32_5 0x4080124
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_63_32_6 0x4080128
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_63_32_7 0x408012C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_31_0_0 0x4080140
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_31_0_1 0x4080144
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_31_0_2 0x4080148
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_31_0_3 0x408014C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_31_0_4 0x4080150
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_31_0_5 0x4080154
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_31_0_6 0x4080158
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MIN_31_0_7 0x408015C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_63_32_0 0x4080170
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_63_32_1 0x4080174
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_63_32_2 0x4080178
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_63_32_3 0x408017C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_63_32_4 0x4080180
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_63_32_5 0x4080184
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_63_32_6 0x4080188
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_63_32_7 0x408018C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_31_0_0 0x40801A0
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_31_0_1 0x40801A4
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_31_0_2 0x40801A8
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_31_0_3 0x40801AC
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_31_0_4 0x40801B0
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_31_0_5 0x40801B4
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_31_0_6 0x40801B8
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_SEC_MAX_31_0_7 0x40801BC
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_63_32_0 0x40801D0
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_63_32_1 0x40801D4
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_63_32_2 0x40801D8
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_63_32_3 0x40801DC
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_63_32_4 0x40801E0
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_63_32_5 0x40801E4
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_63_32_6 0x40801E8
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_63_32_7 0x40801EC
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_31_0_0 0x4080200
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_31_0_1 0x4080204
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_31_0_2 0x4080208
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_31_0_3 0x408020C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_31_0_4 0x4080210
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_31_0_5 0x4080214
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_31_0_6 0x4080218
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MIN_31_0_7 0x408021C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_63_32_0 0x4080230
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_63_32_1 0x4080234
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_63_32_2 0x4080238
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_63_32_3 0x408023C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_63_32_4 0x4080240
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_63_32_5 0x4080244
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_63_32_6 0x4080248
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_63_32_7 0x408024C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_31_0_0 0x4080260
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_31_0_1 0x4080264
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_31_0_2 0x4080268
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_31_0_3 0x408026C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_31_0_4 0x4080270
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_31_0_5 0x4080274
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_31_0_6 0x4080278
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_RR_PRIV_MAX_31_0_7 0x408027C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_ILLEGAL_ADDR_WRITE_63_32 0x4080290
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_ILLEGAL_ADDR_WRITE_31_0 0x4080294
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_ILLEGAL_ADDR_READ_63_32 0x4080298
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_ILLEGAL_ADDR_READ_31_0 0x408029C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_RAZWI_WRITE_VLD 0x4080300
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_RAZWI_WRITE_ID_31_0 0x4080304
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_RAZWI_WRITE_ID_42_32 0x4080308
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_RAZWI_READ_VLD 0x408030C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_RAZWI_READ_ID_31_0 0x4080310
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_RAZWI_READ_ID_42_32 0x4080314
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_MMU_SRC_NUM 0x408031C
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_RAZWI_ADDR_LSB 0x4080320
|
||||
|
||||
#define mmDCORE0_HMMU0_MMU_RAZWI_ADDR_MSB 0x4080324
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_HMMU0_MMU_REGS_H_ */
|
@ -0,0 +1,348 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_HMMU0_STLB_MASKS_H_
|
||||
#define ASIC_REG_DCORE0_HMMU0_STLB_MASKS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_HMMU0_STLB
|
||||
* (Prototype: STLB)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
/* DCORE0_HMMU0_STLB_BUSY */
|
||||
#define DCORE0_HMMU0_STLB_BUSY_BUSY_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_BUSY_BUSY_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID */
|
||||
#define DCORE0_HMMU0_STLB_ASID_ASID_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_ASID_MASK 0x3FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_HOP0_PA43_12 */
|
||||
#define DCORE0_HMMU0_STLB_HOP0_PA43_12_HOP0_PA43_12_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_HOP0_PA43_12_HOP0_PA43_12_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_HOP0_PA63_44 */
|
||||
#define DCORE0_HMMU0_STLB_HOP0_PA63_44_HOP0_PA63_44_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_HOP0_PA63_44_HOP0_PA63_44_MASK 0xFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_CACHE_INV */
|
||||
#define DCORE0_HMMU0_STLB_CACHE_INV_PRODUCER_INDEX_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_CACHE_INV_PRODUCER_INDEX_MASK 0xFF
|
||||
#define DCORE0_HMMU0_STLB_CACHE_INV_INDEX_MASK_SHIFT 8
|
||||
#define DCORE0_HMMU0_STLB_CACHE_INV_INDEX_MASK_MASK 0xFF00
|
||||
|
||||
/* DCORE0_HMMU0_STLB_CACHE_INV_BASE_39_8 */
|
||||
#define DCORE0_HMMU0_STLB_CACHE_INV_BASE_39_8_PA_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_CACHE_INV_BASE_39_8_PA_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_CACHE_INV_BASE_63_40 */
|
||||
#define DCORE0_HMMU0_STLB_CACHE_INV_BASE_63_40_PA_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_CACHE_INV_BASE_63_40_PA_MASK 0xFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_STLB_FEATURE_EN */
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_STLB_CTRL_MULTI_PAGE_SIZE_EN_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_STLB_CTRL_MULTI_PAGE_SIZE_EN_MASK 0x1
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_MULTI_PAGE_SIZE_EN_SHIFT 1
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_MULTI_PAGE_SIZE_EN_MASK 0x2
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_LOOKUP_EN_SHIFT 2
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_LOOKUP_EN_MASK 0x4
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_BYPASS_SHIFT 3
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_BYPASS_MASK 0x8
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_BANK_STOP_SHIFT 4
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_BANK_STOP_MASK 0x10
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_TRACE_EN_SHIFT 5
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_TRACE_EN_MASK 0x20
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_FOLLOWER_EN_SHIFT 6
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_FOLLOWER_EN_MASK 0x40
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_CACHING_EN_SHIFT 7
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_CACHING_EN_MASK 0x1F80
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_FOLLOWING_NUM_LIMIT_SHIFT 13
|
||||
#define DCORE0_HMMU0_STLB_STLB_FEATURE_EN_FOLLOWING_NUM_LIMIT_MASK 0xE000
|
||||
|
||||
/* DCORE0_HMMU0_STLB_STLB_AXI_CACHE */
|
||||
#define DCORE0_HMMU0_STLB_STLB_AXI_CACHE_STLB_CTRL_ARCACHE_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_STLB_AXI_CACHE_STLB_CTRL_ARCACHE_MASK 0xF
|
||||
#define DCORE0_HMMU0_STLB_STLB_AXI_CACHE_STLB_CTRL_AWCACHE_SHIFT 4
|
||||
#define DCORE0_HMMU0_STLB_STLB_AXI_CACHE_STLB_CTRL_AWCACHE_MASK 0xF0
|
||||
#define DCORE0_HMMU0_STLB_STLB_AXI_CACHE_INV_ARCACHE_SHIFT 8
|
||||
#define DCORE0_HMMU0_STLB_STLB_AXI_CACHE_INV_ARCACHE_MASK 0xF00
|
||||
|
||||
/* DCORE0_HMMU0_STLB_HOP_CONFIGURATION */
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_FIRST_HOP_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_FIRST_HOP_MASK 0x7
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_FIRST_LOOKUP_HOP_SMALL_P_SHIFT 4
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_FIRST_LOOKUP_HOP_SMALL_P_MASK 0x70
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_FIRST_LOOKUP_HOP_LARGE_P_SHIFT 8
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_FIRST_LOOKUP_HOP_LARGE_P_MASK 0x700
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_LAST_HOP_SHIFT 12
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_LAST_HOP_MASK 0x7000
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_FOLLOWER_HOP_SHIFT 16
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_FOLLOWER_HOP_MASK 0x70000
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_ONLY_LARGE_PAGE_SHIFT 20
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_ONLY_LARGE_PAGE_MASK 0x100000
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_LARGE_PAGE_INDICATION_BIT_SHIFT 21
|
||||
#define DCORE0_HMMU0_STLB_HOP_CONFIGURATION_LARGE_PAGE_INDICATION_BIT_MASK \
|
||||
0x7E00000
|
||||
|
||||
/* DCORE0_HMMU0_STLB_LINK_LIST_LOOKUP_MASK_63_32 */
|
||||
#define DCORE0_HMMU0_STLB_LINK_LIST_LOOKUP_MASK_63_32_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_LINK_LIST_LOOKUP_MASK_63_32_R_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_LINK_LIST_LOOKUP_MASK_31_0 */
|
||||
#define DCORE0_HMMU0_STLB_LINK_LIST_LOOKUP_MASK_31_0_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_LINK_LIST_LOOKUP_MASK_31_0_R_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_INV_ALL_START */
|
||||
#define DCORE0_HMMU0_STLB_INV_ALL_START_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_INV_ALL_START_R_MASK 0x1
|
||||
|
||||
/* DCORE0_HMMU0_STLB_INV_ALL_SET */
|
||||
#define DCORE0_HMMU0_STLB_INV_ALL_SET_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_INV_ALL_SET_R_MASK 0xFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_INV_PS */
|
||||
#define DCORE0_HMMU0_STLB_INV_PS_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_INV_PS_R_MASK 0x3
|
||||
|
||||
/* DCORE0_HMMU0_STLB_INV_CONSUMER_INDEX */
|
||||
#define DCORE0_HMMU0_STLB_INV_CONSUMER_INDEX_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_INV_CONSUMER_INDEX_R_MASK 0xFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_INV_HIT_COUNT */
|
||||
#define DCORE0_HMMU0_STLB_INV_HIT_COUNT_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_INV_HIT_COUNT_R_MASK 0x7FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_INV_SET */
|
||||
#define DCORE0_HMMU0_STLB_INV_SET_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_INV_SET_R_MASK 0xFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_SRAM_INIT */
|
||||
#define DCORE0_HMMU0_STLB_SRAM_INIT_BUSY_TAG_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_SRAM_INIT_BUSY_TAG_MASK 0x3
|
||||
#define DCORE0_HMMU0_STLB_SRAM_INIT_BUSY_SLICE_SHIFT 2
|
||||
#define DCORE0_HMMU0_STLB_SRAM_INIT_BUSY_SLICE_MASK 0xC
|
||||
#define DCORE0_HMMU0_STLB_SRAM_INIT_BUSY_DATA_SHIFT 4
|
||||
#define DCORE0_HMMU0_STLB_SRAM_INIT_BUSY_DATA_MASK 0x10
|
||||
|
||||
/* DCORE0_HMMU0_STLB_MEM_CACHE_INVALIDATION */
|
||||
|
||||
/* DCORE0_HMMU0_STLB_MEM_CACHE_INV_STATUS */
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_INV_STATUS_INVALIDATE_DONE_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_INV_STATUS_INVALIDATE_DONE_MASK 0x1
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_INV_STATUS_CACHE_IDLE_SHIFT 1
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_INV_STATUS_CACHE_IDLE_MASK 0x2
|
||||
|
||||
/* DCORE0_HMMU0_STLB_MEM_CACHE_BASE_38_7 */
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_BASE_38_7_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_BASE_38_7_R_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_MEM_CACHE_BASE_63_39 */
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_BASE_63_39_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_BASE_63_39_R_MASK 0x1FFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_MEM_CACHE_CONFIG */
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_CONFIG_CACHE_HOP_EN_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_CONFIG_CACHE_HOP_EN_MASK 0x3F
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_CONFIG_CACHE_HOP_PREFETCH_EN_SHIFT 6
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_CONFIG_CACHE_HOP_PREFETCH_EN_MASK 0xFC0
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_CONFIG_BYPASS_EN_SHIFT 12
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_CONFIG_BYPASS_EN_MASK 0x1000
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_CONFIG_RELEASE_INVALIDATE_SHIFT 13
|
||||
#define DCORE0_HMMU0_STLB_MEM_CACHE_CONFIG_RELEASE_INVALIDATE_MASK 0x2000
|
||||
|
||||
/* DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP5 */
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP5_MIN_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP5_MIN_MASK 0x1FF
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP5_MAX_SHIFT 9
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP5_MAX_MASK 0x3FE00
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP5_MASK_SHIFT 18
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP5_MASK_MASK 0x7FC0000
|
||||
|
||||
/* DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP4 */
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP4_MIN_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP4_MIN_MASK 0x1FF
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP4_MAX_SHIFT 9
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP4_MAX_MASK 0x3FE00
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP4_MASK_SHIFT 18
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP4_MASK_MASK 0x7FC0000
|
||||
|
||||
/* DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP3 */
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP3_MIN_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP3_MIN_MASK 0x1FF
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP3_MAX_SHIFT 9
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP3_MAX_MASK 0x3FE00
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP3_MASK_SHIFT 18
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP3_MASK_MASK 0x7FC0000
|
||||
|
||||
/* DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP2 */
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP2_MIN_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP2_MIN_MASK 0x1FF
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP2_MAX_SHIFT 9
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP2_MAX_MASK 0x3FE00
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP2_MASK_SHIFT 18
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP2_MASK_MASK 0x7FC0000
|
||||
|
||||
/* DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP1 */
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP1_MIN_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP1_MIN_MASK 0x1FF
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP1_MAX_SHIFT 9
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP1_MAX_MASK 0x3FE00
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP1_MASK_SHIFT 18
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP1_MASK_MASK 0x7FC0000
|
||||
|
||||
/* DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP0 */
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP0_MIN_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP0_MIN_MASK 0x1FF
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP0_MAX_SHIFT 9
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP0_MAX_MASK 0x3FE00
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP0_MASK_SHIFT 18
|
||||
#define DCORE0_HMMU0_STLB_SET_THRESHOLD_HOP0_MASK_MASK 0x7FC0000
|
||||
|
||||
/* DCORE0_HMMU0_STLB_MULTI_HIT_INTERRUPT_CLR */
|
||||
|
||||
/* DCORE0_HMMU0_STLB_MULTI_HIT_INTERRUPT_MASK */
|
||||
#define DCORE0_HMMU0_STLB_MULTI_HIT_INTERRUPT_MASK_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_MULTI_HIT_INTERRUPT_MASK_R_MASK 0x1
|
||||
|
||||
/* DCORE0_HMMU0_STLB_MEM_L0_CACHE_CFG */
|
||||
#define DCORE0_HMMU0_STLB_MEM_L0_CACHE_CFG_PLRU_EVICTION_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_MEM_L0_CACHE_CFG_PLRU_EVICTION_MASK 0x1
|
||||
#define DCORE0_HMMU0_STLB_MEM_L0_CACHE_CFG_CACHE_STOP_SHIFT 1
|
||||
#define DCORE0_HMMU0_STLB_MEM_L0_CACHE_CFG_CACHE_STOP_MASK 0x2
|
||||
#define DCORE0_HMMU0_STLB_MEM_L0_CACHE_CFG_INV_WRITEBACK_SHIFT 2
|
||||
#define DCORE0_HMMU0_STLB_MEM_L0_CACHE_CFG_INV_WRITEBACK_MASK 0x4
|
||||
|
||||
/* DCORE0_HMMU0_STLB_MEM_READ_ARPROT */
|
||||
#define DCORE0_HMMU0_STLB_MEM_READ_ARPROT_R_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_MEM_READ_ARPROT_R_MASK 0x7
|
||||
|
||||
/* DCORE0_HMMU0_STLB_RANGE_CACHE_INVALIDATION */
|
||||
#define \
|
||||
DCORE0_HMMU0_STLB_RANGE_CACHE_INVALIDATION_RANGE_INVALIDATION_ENABLE_SHIFT \
|
||||
0
|
||||
#define \
|
||||
DCORE0_HMMU0_STLB_RANGE_CACHE_INVALIDATION_RANGE_INVALIDATION_ENABLE_MASK \
|
||||
0x1
|
||||
#define DCORE0_HMMU0_STLB_RANGE_CACHE_INVALIDATION_INVALIDATION_ASID_EN_SHIFT 1
|
||||
#define DCORE0_HMMU0_STLB_RANGE_CACHE_INVALIDATION_INVALIDATION_ASID_EN_MASK 0x2
|
||||
#define DCORE0_HMMU0_STLB_RANGE_CACHE_INVALIDATION_INVALIDATION_ASID_SHIFT 2
|
||||
#define DCORE0_HMMU0_STLB_RANGE_CACHE_INVALIDATION_INVALIDATION_ASID_MASK 0xFFC
|
||||
|
||||
/* DCORE0_HMMU0_STLB_RANGE_INV_START_LSB */
|
||||
#define DCORE0_HMMU0_STLB_RANGE_INV_START_LSB_INV_START_LSB_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_RANGE_INV_START_LSB_INV_START_LSB_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_RANGE_INV_START_MSB */
|
||||
#define DCORE0_HMMU0_STLB_RANGE_INV_START_MSB_INV_START_MSB_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_RANGE_INV_START_MSB_INV_START_MSB_MASK 0xFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_RANGE_INV_END_LSB */
|
||||
#define DCORE0_HMMU0_STLB_RANGE_INV_END_LSB_INV_END_LSB_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_RANGE_INV_END_LSB_INV_END_LSB_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_RANGE_INV_END_MSB */
|
||||
#define DCORE0_HMMU0_STLB_RANGE_INV_END_MSB_INV_END_MSB_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_RANGE_INV_END_MSB_INV_END_MSB_MASK 0xFFFFF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCRAMBLER_CTRL */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCRAMBLER_CTRL_SCRAMBLER_SCRAM_EN_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCRAMBLER_CTRL_SCRAMBLER_SCRAM_EN_MASK 0x1
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_0 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_0_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_0_ASID_POLY_MATRIX_H3_MASK \
|
||||
0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_1 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_1_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_1_ASID_POLY_MATRIX_H3_MASK \
|
||||
0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_2 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_2_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_2_ASID_POLY_MATRIX_H3_MASK \
|
||||
0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_3 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_3_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_3_ASID_POLY_MATRIX_H3_MASK \
|
||||
0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_4 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_4_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_4_ASID_POLY_MATRIX_H3_MASK \
|
||||
0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_5 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_5_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_5_ASID_POLY_MATRIX_H3_MASK \
|
||||
0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_6 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_6_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_6_ASID_POLY_MATRIX_H3_MASK \
|
||||
0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_7 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_7_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_7_ASID_POLY_MATRIX_H3_MASK \
|
||||
0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_8 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_8_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_8_ASID_POLY_MATRIX_H3_MASK \
|
||||
0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_9 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_9_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_9_ASID_POLY_MATRIX_H3_MASK \
|
||||
0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_10 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_10_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_10_ASID_POLY_MATRIX_H3_MASK 0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_11 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_11_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_11_ASID_POLY_MATRIX_H3_MASK 0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_12 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_12_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_12_ASID_POLY_MATRIX_H3_MASK 0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_13 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_13_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_13_ASID_POLY_MATRIX_H3_MASK 0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_14 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_14_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_14_ASID_POLY_MATRIX_H3_MASK 0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_15 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_15_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_15_ASID_POLY_MATRIX_H3_MASK 0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_16 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_16_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_16_ASID_POLY_MATRIX_H3_MASK 0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_17 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_17_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_17_ASID_POLY_MATRIX_H3_MASK 0x1FF
|
||||
|
||||
/* DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_18 */
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_18_ASID_POLY_MATRIX_H3_SHIFT 0
|
||||
#define DCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_18_ASID_POLY_MATRIX_H3_MASK 0x1FF
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_HMMU0_STLB_MASKS_H_ */
|
@ -0,0 +1,141 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_HMMU0_STLB_REGS_H_
|
||||
#define ASIC_REG_DCORE0_HMMU0_STLB_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_HMMU0_STLB
|
||||
* (Prototype: STLB)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_BUSY 0x4081000
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID 0x4081004
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_HOP0_PA43_12 0x4081008
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_HOP0_PA63_44 0x408100C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_CACHE_INV 0x4081010
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_CACHE_INV_BASE_39_8 0x4081014
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_CACHE_INV_BASE_63_40 0x4081018
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_STLB_FEATURE_EN 0x408101C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_STLB_AXI_CACHE 0x4081020
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_HOP_CONFIGURATION 0x4081024
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_LINK_LIST_LOOKUP_MASK_63_32 0x4081028
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_LINK_LIST_LOOKUP_MASK_31_0 0x408102C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_INV_ALL_START 0x4081034
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_INV_ALL_SET 0x4081038
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_INV_PS 0x408103C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_INV_CONSUMER_INDEX 0x4081040
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_INV_HIT_COUNT 0x4081044
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_INV_SET 0x4081048
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_SRAM_INIT 0x408104C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_MEM_CACHE_INVALIDATION 0x4081050
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_MEM_CACHE_INV_STATUS 0x4081054
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_MEM_CACHE_BASE_38_7 0x4081058
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_MEM_CACHE_BASE_63_39 0x408105C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_MEM_CACHE_CONFIG 0x4081060
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_SET_THRESHOLD_HOP5 0x4081064
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_SET_THRESHOLD_HOP4 0x4081068
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_SET_THRESHOLD_HOP3 0x408106C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_SET_THRESHOLD_HOP2 0x4081070
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_SET_THRESHOLD_HOP1 0x4081074
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_SET_THRESHOLD_HOP0 0x4081078
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_MULTI_HIT_INTERRUPT_CLR 0x408107C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_MULTI_HIT_INTERRUPT_MASK 0x4081080
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_MEM_L0_CACHE_CFG 0x4081084
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_MEM_READ_ARPROT 0x4081088
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_RANGE_CACHE_INVALIDATION 0x408108C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_RANGE_INV_START_LSB 0x4081090
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_RANGE_INV_START_MSB 0x4081094
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_RANGE_INV_END_LSB 0x4081098
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_RANGE_INV_END_MSB 0x408109C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCRAMBLER_CTRL 0x4081100
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_0 0x4081104
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_1 0x4081108
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_2 0x408110C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_3 0x4081110
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_4 0x4081114
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_5 0x4081118
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_6 0x408111C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_7 0x4081120
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_8 0x4081124
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MATRIX_H3_9 0x4081128
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_10 0x408112C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_11 0x4081130
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_12 0x4081134
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_13 0x4081138
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_14 0x408113C
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_15 0x4081140
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_16 0x4081144
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_17 0x4081148
|
||||
|
||||
#define mmDCORE0_HMMU0_STLB_ASID_SCR_POLY_MAT_H3_18 0x408114C
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_HMMU0_STLB_REGS_H_ */
|
@ -0,0 +1,73 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_ACC_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_ACC_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_ACC
|
||||
* (Prototype: ACC)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_ACC_WBC0_AXI 0x40F8000
|
||||
|
||||
#define mmDCORE0_MME_ACC_WBC1_AXI 0x40F8004
|
||||
|
||||
#define mmDCORE0_MME_ACC_WBC0_RL 0x40F8008
|
||||
|
||||
#define mmDCORE0_MME_ACC_WBC1_RL 0x40F800C
|
||||
|
||||
#define mmDCORE0_MME_ACC_WBC_STALL 0x40F8010
|
||||
|
||||
#define mmDCORE0_MME_ACC_AWCACHE 0x40F8014
|
||||
|
||||
#define mmDCORE0_MME_ACC_AWPROT 0x40F8018
|
||||
|
||||
#define mmDCORE0_MME_ACC_AP_LFSR_POLY 0x40F801C
|
||||
|
||||
#define mmDCORE0_MME_ACC_AP_LFSR_SEED_WDATA 0x40F8020
|
||||
|
||||
#define mmDCORE0_MME_ACC_AP_LFSR_SEED_SEL 0x40F8024
|
||||
|
||||
#define mmDCORE0_MME_ACC_AP_LFSR_SEED_RDATA 0x40F8028
|
||||
|
||||
#define mmDCORE0_MME_ACC_AP_LFSR_CLOSE_CGATE_DLY 0x40F802C
|
||||
|
||||
#define mmDCORE0_MME_ACC_WBC_SRC_BP 0x40F8030
|
||||
|
||||
#define mmDCORE0_MME_ACC_CLK_GATE_EN 0x40F8034
|
||||
|
||||
#define mmDCORE0_MME_ACC_WBC_INFLIGHTS 0x40F8038
|
||||
|
||||
#define mmDCORE0_MME_ACC_HBW_CLK_ENABLER_DIS 0x40F803C
|
||||
|
||||
#define mmDCORE0_MME_ACC_E2E_CRDT_TOP0 0x40F8040
|
||||
|
||||
#define mmDCORE0_MME_ACC_E2E_CRDT_TOP1 0x40F8044
|
||||
|
||||
#define mmDCORE0_MME_ACC_INTR_CAUSE 0x40F8048
|
||||
|
||||
#define mmDCORE0_MME_ACC_INTR_MASK 0x40F804C
|
||||
|
||||
#define mmDCORE0_MME_ACC_INTR_CLEAR 0x40F8050
|
||||
|
||||
#define mmDCORE0_MME_ACC_WR_AXI_AGG_COUT0 0x40F8054
|
||||
|
||||
#define mmDCORE0_MME_ACC_WR_AXI_AGG_COUT1 0x40F8058
|
||||
|
||||
#define mmDCORE0_MME_ACC_BIST 0x40F805C
|
||||
|
||||
#define mmDCORE0_MME_ACC_WR_AXI_AGG_2P_BVALID 0x40F8060
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_ACC_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_MASTER_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_MASTER_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_MASTER
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_MASTER_ROI_BASE_OFFSET_0 0x40CB22C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_MASTER_ROI_BASE_OFFSET_1 0x40CB230
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_MASTER_ROI_BASE_OFFSET_2 0x40CB234
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_MASTER_ROI_BASE_OFFSET_3 0x40CB238
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_MASTER_ROI_BASE_OFFSET_4 0x40CB23C
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_MASTER_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_SLAVE_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_SLAVE_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_SLAVE
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_SLAVE_ROI_BASE_OFFSET_0 0x40CB240
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_SLAVE_ROI_BASE_OFFSET_1 0x40CB244
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_SLAVE_ROI_BASE_OFFSET_2 0x40CB248
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_SLAVE_ROI_BASE_OFFSET_3 0x40CB24C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_SLAVE_ROI_BASE_OFFSET_4 0x40CB250
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_COUT0_SLAVE_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_MASTER_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_MASTER_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_MASTER
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_MASTER_ROI_BASE_OFFSET_0 0x40CB254
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_MASTER_ROI_BASE_OFFSET_1 0x40CB258
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_MASTER_ROI_BASE_OFFSET_2 0x40CB25C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_MASTER_ROI_BASE_OFFSET_3 0x40CB260
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_MASTER_ROI_BASE_OFFSET_4 0x40CB264
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_MASTER_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_SLAVE_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_SLAVE_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_SLAVE
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_SLAVE_ROI_BASE_OFFSET_0 0x40CB268
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_SLAVE_ROI_BASE_OFFSET_1 0x40CB26C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_SLAVE_ROI_BASE_OFFSET_2 0x40CB270
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_SLAVE_ROI_BASE_OFFSET_3 0x40CB274
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_SLAVE_ROI_BASE_OFFSET_4 0x40CB278
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_COUT1_SLAVE_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN0_MASTER_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN0_MASTER_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_IN0_MASTER
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN0_MASTER_ROI_BASE_OFFSET_0 0x40CB15C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN0_MASTER_ROI_BASE_OFFSET_1 0x40CB160
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN0_MASTER_ROI_BASE_OFFSET_2 0x40CB164
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN0_MASTER_ROI_BASE_OFFSET_3 0x40CB168
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN0_MASTER_ROI_BASE_OFFSET_4 0x40CB16C
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN0_MASTER_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN0_SLAVE_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN0_SLAVE_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_IN0_SLAVE
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN0_SLAVE_ROI_BASE_OFFSET_0 0x40CB170
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN0_SLAVE_ROI_BASE_OFFSET_1 0x40CB174
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN0_SLAVE_ROI_BASE_OFFSET_2 0x40CB178
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN0_SLAVE_ROI_BASE_OFFSET_3 0x40CB17C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN0_SLAVE_ROI_BASE_OFFSET_4 0x40CB180
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN0_SLAVE_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN1_MASTER_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN1_MASTER_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_IN1_MASTER
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN1_MASTER_ROI_BASE_OFFSET_0 0x40CB184
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN1_MASTER_ROI_BASE_OFFSET_1 0x40CB188
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN1_MASTER_ROI_BASE_OFFSET_2 0x40CB18C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN1_MASTER_ROI_BASE_OFFSET_3 0x40CB190
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN1_MASTER_ROI_BASE_OFFSET_4 0x40CB194
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN1_MASTER_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN1_SLAVE_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN1_SLAVE_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_IN1_SLAVE
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN1_SLAVE_ROI_BASE_OFFSET_0 0x40CB198
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN1_SLAVE_ROI_BASE_OFFSET_1 0x40CB19C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN1_SLAVE_ROI_BASE_OFFSET_2 0x40CB1A0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN1_SLAVE_ROI_BASE_OFFSET_3 0x40CB1A4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN1_SLAVE_ROI_BASE_OFFSET_4 0x40CB1A8
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN1_SLAVE_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN2_MASTER_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN2_MASTER_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_IN2_MASTER
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN2_MASTER_ROI_BASE_OFFSET_0 0x40CB1AC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN2_MASTER_ROI_BASE_OFFSET_1 0x40CB1B0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN2_MASTER_ROI_BASE_OFFSET_2 0x40CB1B4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN2_MASTER_ROI_BASE_OFFSET_3 0x40CB1B8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN2_MASTER_ROI_BASE_OFFSET_4 0x40CB1BC
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN2_MASTER_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN2_SLAVE_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN2_SLAVE_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_IN2_SLAVE
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN2_SLAVE_ROI_BASE_OFFSET_0 0x40CB1C0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN2_SLAVE_ROI_BASE_OFFSET_1 0x40CB1C4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN2_SLAVE_ROI_BASE_OFFSET_2 0x40CB1C8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN2_SLAVE_ROI_BASE_OFFSET_3 0x40CB1CC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN2_SLAVE_ROI_BASE_OFFSET_4 0x40CB1D0
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN2_SLAVE_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN3_MASTER_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN3_MASTER_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_IN3_MASTER
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN3_MASTER_ROI_BASE_OFFSET_0 0x40CB1D4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN3_MASTER_ROI_BASE_OFFSET_1 0x40CB1D8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN3_MASTER_ROI_BASE_OFFSET_2 0x40CB1DC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN3_MASTER_ROI_BASE_OFFSET_3 0x40CB1E0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN3_MASTER_ROI_BASE_OFFSET_4 0x40CB1E4
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN3_MASTER_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN3_SLAVE_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN3_SLAVE_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_IN3_SLAVE
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN3_SLAVE_ROI_BASE_OFFSET_0 0x40CB1E8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN3_SLAVE_ROI_BASE_OFFSET_1 0x40CB1EC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN3_SLAVE_ROI_BASE_OFFSET_2 0x40CB1F0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN3_SLAVE_ROI_BASE_OFFSET_3 0x40CB1F4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN3_SLAVE_ROI_BASE_OFFSET_4 0x40CB1F8
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN3_SLAVE_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN4_MASTER_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN4_MASTER_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_IN4_MASTER
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN4_MASTER_ROI_BASE_OFFSET_0 0x40CB1FC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN4_MASTER_ROI_BASE_OFFSET_1 0x40CB200
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN4_MASTER_ROI_BASE_OFFSET_2 0x40CB204
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN4_MASTER_ROI_BASE_OFFSET_3 0x40CB208
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN4_MASTER_ROI_BASE_OFFSET_4 0x40CB20C
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN4_MASTER_REGS_H_ */
|
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN4_SLAVE_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN4_SLAVE_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_AGU_IN4_SLAVE
|
||||
* (Prototype: MME_AGU_CORE)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN4_SLAVE_ROI_BASE_OFFSET_0 0x40CB210
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN4_SLAVE_ROI_BASE_OFFSET_1 0x40CB214
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN4_SLAVE_ROI_BASE_OFFSET_2 0x40CB218
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN4_SLAVE_ROI_BASE_OFFSET_3 0x40CB21C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_AGU_IN4_SLAVE_ROI_BASE_OFFSET_4 0x40CB220
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_AGU_IN4_SLAVE_REGS_H_ */
|
@ -0,0 +1,39 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_BASE_ADDR_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_BASE_ADDR_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_BASE_ADDR
|
||||
* (Prototype: MME_ADDRESS_DESCRIPTOR)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_BASE_ADDR_COUT1_LOW 0x40CB008
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_BASE_ADDR_COUT1_HIGH 0x40CB00C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_BASE_ADDR_COUT0_LOW 0x40CB010
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_BASE_ADDR_COUT0_HIGH 0x40CB014
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_BASE_ADDR_A_LOW 0x40CB018
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_BASE_ADDR_A_HIGH 0x40CB01C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_BASE_ADDR_B_LOW 0x40CB020
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_BASE_ADDR_B_HIGH 0x40CB024
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_BASE_ADDR_REGS_H_ */
|
@ -0,0 +1,73 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END
|
||||
* (Prototype: MME_NON_TENSOR_DESCRIPTOR)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_CONV_KERNEL_SIZE_MINUS_1 \
|
||||
0x40CB280
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_CONV_LOW 0x40CB284
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_CONV_HIGH 0x40CB288
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_OUTER_LOOP 0x40CB28C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_NUM_ITERATIONS_MINUS_1 \
|
||||
0x40CB290
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_SB_REPEAT 0x40CB294
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_FP8_BIAS 0x40CB298
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_RATE_LIMITER 0x40CB29C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_USER_DATA 0x40CB2A0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_PERF_EVT_IN 0x40CB2A4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_PERF_EVT_OUT 0x40CB2A8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_PCU 0x40CB2AC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_SLAVE_SYNC_OBJ0_ADDR 0x40CB2B0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_SLAVE_SYNC_OBJ1_ADDR 0x40CB2B4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_POWER_LOOP 0x40CB2B8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_SPARE0_MASTER 0x40CB2BC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_SPARE1_MASTER 0x40CB2C0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_SPARE2_MASTER 0x40CB2C4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_SPARE3_MASTER 0x40CB2C8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_SPARE0_SLAVE 0x40CB2CC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_SPARE1_SLAVE 0x40CB2D0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_SPARE2_SLAVE 0x40CB2D4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_SPARE3_SLAVE 0x40CB2D8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_WKL_ID 0x40CB2DC
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_END_REGS_H_ */
|
@ -0,0 +1,35 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_START_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_START_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_START
|
||||
* (Prototype: MME_NON_TENSOR_DESCRIPTOR_START)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_START_BRAINS_LOW 0x40CB028
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_START_BRAINS_HIGH 0x40CB02C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_START_HEADER_LOW 0x40CB030
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_START_HEADER_HIGH 0x40CB034
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_START_EUS_MASTER 0x40CB038
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_START_EUS_SLAVE 0x40CB03C
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_NON_TENSOR_START_REGS_H_ */
|
@ -0,0 +1,67 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_TENSOR_A_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_TENSOR_A_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_TENSOR_A
|
||||
* (Prototype: MME_TENSOR)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_VALID_ELEMENTS_0 0x40CB040
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_VALID_ELEMENTS_1 0x40CB044
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_VALID_ELEMENTS_2 0x40CB048
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_VALID_ELEMENTS_3 0x40CB04C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_VALID_ELEMENTS_4 0x40CB050
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_LOOP_STRIDE_0 0x40CB054
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_LOOP_STRIDE_1 0x40CB058
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_LOOP_STRIDE_2 0x40CB05C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_LOOP_STRIDE_3 0x40CB060
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_LOOP_STRIDE_4 0x40CB064
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_ROI_SIZE_0 0x40CB068
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_ROI_SIZE_1 0x40CB06C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_ROI_SIZE_2 0x40CB070
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_ROI_SIZE_3 0x40CB074
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_SPATIAL_STRIDES_0 0x40CB078
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_SPATIAL_STRIDES_1 0x40CB07C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_SPATIAL_STRIDES_2 0x40CB080
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_SPATIAL_STRIDES_3 0x40CB084
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_START_OFFSET_0 0x40CB088
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_START_OFFSET_1 0x40CB08C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_START_OFFSET_2 0x40CB090
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_A_START_OFFSET_3 0x40CB094
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_TENSOR_A_REGS_H_ */
|
@ -0,0 +1,67 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_TENSOR_B_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_TENSOR_B_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_TENSOR_B
|
||||
* (Prototype: MME_TENSOR)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_VALID_ELEMENTS_0 0x40CB098
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_VALID_ELEMENTS_1 0x40CB09C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_VALID_ELEMENTS_2 0x40CB0A0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_VALID_ELEMENTS_3 0x40CB0A4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_VALID_ELEMENTS_4 0x40CB0A8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_LOOP_STRIDE_0 0x40CB0AC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_LOOP_STRIDE_1 0x40CB0B0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_LOOP_STRIDE_2 0x40CB0B4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_LOOP_STRIDE_3 0x40CB0B8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_LOOP_STRIDE_4 0x40CB0BC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_ROI_SIZE_0 0x40CB0C0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_ROI_SIZE_1 0x40CB0C4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_ROI_SIZE_2 0x40CB0C8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_ROI_SIZE_3 0x40CB0CC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_SPATIAL_STRIDES_0 0x40CB0D0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_SPATIAL_STRIDES_1 0x40CB0D4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_SPATIAL_STRIDES_2 0x40CB0D8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_SPATIAL_STRIDES_3 0x40CB0DC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_START_OFFSET_0 0x40CB0E0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_START_OFFSET_1 0x40CB0E4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_START_OFFSET_2 0x40CB0E8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_B_START_OFFSET_3 0x40CB0EC
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_TENSOR_B_REGS_H_ */
|
@ -0,0 +1,67 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT
|
||||
* (Prototype: MME_TENSOR)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_VALID_ELEMENTS_0 0x40CB0F0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_VALID_ELEMENTS_1 0x40CB0F4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_VALID_ELEMENTS_2 0x40CB0F8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_VALID_ELEMENTS_3 0x40CB0FC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_VALID_ELEMENTS_4 0x40CB100
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_LOOP_STRIDE_0 0x40CB104
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_LOOP_STRIDE_1 0x40CB108
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_LOOP_STRIDE_2 0x40CB10C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_LOOP_STRIDE_3 0x40CB110
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_LOOP_STRIDE_4 0x40CB114
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_ROI_SIZE_0 0x40CB118
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_ROI_SIZE_1 0x40CB11C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_ROI_SIZE_2 0x40CB120
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_ROI_SIZE_3 0x40CB124
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_SPATIAL_STRIDES_0 0x40CB128
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_SPATIAL_STRIDES_1 0x40CB12C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_SPATIAL_STRIDES_2 0x40CB130
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_SPATIAL_STRIDES_3 0x40CB134
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_START_OFFSET_0 0x40CB138
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_START_OFFSET_1 0x40CB13C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_START_OFFSET_2 0x40CB140
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_START_OFFSET_3 0x40CB144
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_ARCH_TENSOR_COUT_REGS_H_ */
|
@ -0,0 +1,468 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_MASKS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_MASKS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO
|
||||
* (Prototype: MME_CTRL_LO)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_ARCH_STATUS */
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_AGU_IN_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_AGU_IN_MASK 0x1F
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_EU_SHIFT 5
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_EU_MASK 0x20
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_AP_SHIFT 6
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_AP_MASK 0x40
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_AGU_COUT_SHIFT 7
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_AGU_COUT_MASK 0x180
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_EMPTY_SHIFT 9
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_EMPTY_MASK 0x3E00
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_AGU_COUT_SM_IDLE_SHIFT 14
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_AGU_COUT_SM_IDLE_MASK 0xC000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_WBC_AXI_IDLE_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_WBC_AXI_IDLE_MASK 0x30000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_AXI_IDLE_SHIFT 18
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_AXI_IDLE_MASK 0x7C0000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_ACCUM_FREE_SHIFT 23
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_ACCUM_FREE_MASK 0x3800000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_IDLE_SHIFT 30
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_IDLE_MASK 0x40000000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_RDY_SHIFT 31
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_RDY_MASK 0x80000000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_CMD */
|
||||
#define DCORE0_MME_CTRL_LO_CMD_AGU_IN_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_CMD_AGU_IN_MASK 0x1F
|
||||
#define DCORE0_MME_CTRL_LO_CMD_EU_SHIFT 5
|
||||
#define DCORE0_MME_CTRL_LO_CMD_EU_MASK 0x20
|
||||
#define DCORE0_MME_CTRL_LO_CMD_AP_SHIFT 6
|
||||
#define DCORE0_MME_CTRL_LO_CMD_AP_MASK 0x40
|
||||
#define DCORE0_MME_CTRL_LO_CMD_AGU_COUT_SHIFT 7
|
||||
#define DCORE0_MME_CTRL_LO_CMD_AGU_COUT_MASK 0x180
|
||||
#define DCORE0_MME_CTRL_LO_CMD_COPY_AND_INC_SHIFT 9
|
||||
#define DCORE0_MME_CTRL_LO_CMD_COPY_AND_INC_MASK 0x200
|
||||
#define DCORE0_MME_CTRL_LO_CMD_DESC_SEL_SHIFT 10
|
||||
#define DCORE0_MME_CTRL_LO_CMD_DESC_SEL_MASK 0xC00
|
||||
#define DCORE0_MME_CTRL_LO_CMD_MASK_IDLE_IND_SHIFT 12
|
||||
#define DCORE0_MME_CTRL_LO_CMD_MASK_IDLE_IND_MASK 0x1000
|
||||
#define DCORE0_MME_CTRL_LO_CMD_AGU_OUT1_FROM_AGU0_DW0_SHIFT 13
|
||||
#define DCORE0_MME_CTRL_LO_CMD_AGU_OUT1_FROM_AGU0_DW0_MASK 0x2000
|
||||
#define DCORE0_MME_CTRL_LO_CMD_AGU_OUT1_FROM_AGU0_DW1_4_SHIFT 14
|
||||
#define DCORE0_MME_CTRL_LO_CMD_AGU_OUT1_FROM_AGU0_DW1_4_MASK 0x4000
|
||||
#define DCORE0_MME_CTRL_LO_CMD_NULL_DESC_SHIFT 15
|
||||
#define DCORE0_MME_CTRL_LO_CMD_NULL_DESC_MASK 0x8000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0 */
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SIGNAL_MASK0_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SIGNAL_MASK0_MASK 0x3F
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SIGNAL_EN0_SHIFT 6
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SIGNAL_EN0_MASK 0x40
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SIGNAL_MASK1_SHIFT 8
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SIGNAL_MASK1_MASK 0x3F00
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SIGNAL_EN1_SHIFT 14
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SIGNAL_EN1_MASK 0x4000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_MASTER_WAIT_SLAVE_FENCE_SHIFT 15
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_MASTER_WAIT_SLAVE_FENCE_MASK 0x8000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SLAVE_SEND_FENCE2MASTER_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SLAVE_SEND_FENCE2MASTER_MASK \
|
||||
0x10000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SLAVE_SIGNAL_EN_SHIFT 17
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SLAVE_SIGNAL_EN_MASK 0x20000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SLAVE0_USE_SLV_ADR_SHIFT 18
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SLAVE0_USE_SLV_ADR_MASK 0x40000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SLAVE1_USE_SLV_ADR_SHIFT 19
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SLAVE1_USE_SLV_ADR_MASK 0x80000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SLAVE0_USE_MSTR_ADR_PLUS4_SHIFT 20
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SLAVE0_USE_MSTR_ADR_PLUS4_MASK \
|
||||
0x100000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SLAVE1_USE_MSTR_ADR_PLUS4_SHIFT 21
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0_SLAVE1_USE_MSTR_ADR_PLUS4_MASK \
|
||||
0x200000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_ADDR0 */
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_ADDR0_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_ADDR0_V_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL0 */
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL0_SO_VALUE_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL0_SO_VALUE_MASK 0x7FFF
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL0_SO_RESERVED_SHIFT 15
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL0_SO_RESERVED_MASK 0x3FFF8000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL0_SO_PERF_EN_SHIFT 30
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL0_SO_PERF_EN_MASK 0x40000000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL0_SO_OP_SHIFT 31
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL0_SO_OP_MASK 0x80000000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_ADDR1 */
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_ADDR1_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_ADDR1_V_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL1 */
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL1_SO_VALUE_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL1_SO_VALUE_MASK 0x7FFF
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL1_SO_RESERVED_SHIFT 15
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL1_SO_RESERVED_MASK 0x3FFF8000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL1_SO_PERF_EN_SHIFT 30
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL1_SO_PERF_EN_MASK 0x40000000
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL1_SO_OP_SHIFT 31
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL1_SO_OP_MASK 0x80000000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_ARCH_A_SS */
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_A_SS_MINUS_1_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_A_SS_MINUS_1_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_ARCH_B_SS */
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_B_SS_MINUS_1_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_B_SS_MINUS_1_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_ARCH_COUT_SS */
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_COUT_SS_MINUS_1_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_ARCH_COUT_SS_MINUS_1_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_QM_STALL */
|
||||
#define DCORE0_MME_CTRL_LO_QM_STALL_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_QM_STALL_V_MASK 0x1
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_LOG_SHADOW_LO */
|
||||
#define DCORE0_MME_CTRL_LO_LOG_SHADOW_LO_MASK_0_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_LOG_SHADOW_LO_MASK_0_MASK 0x1FF
|
||||
#define DCORE0_MME_CTRL_LO_LOG_SHADOW_LO_MASK_1_SHIFT 9
|
||||
#define DCORE0_MME_CTRL_LO_LOG_SHADOW_LO_MASK_1_MASK 0x3FE00
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_LOG_SHADOW_HI */
|
||||
#define DCORE0_MME_CTRL_LO_LOG_SHADOW_HI_MASK_2_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_LOG_SHADOW_HI_MASK_2_MASK 0x1FF
|
||||
#define DCORE0_MME_CTRL_LO_LOG_SHADOW_HI_MASK_3_SHIFT 9
|
||||
#define DCORE0_MME_CTRL_LO_LOG_SHADOW_HI_MASK_3_MASK 0x3FE00
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_SYNC_OBJECT_FIFO_TH */
|
||||
#define DCORE0_MME_CTRL_LO_SYNC_OBJECT_FIFO_TH_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_SYNC_OBJECT_FIFO_TH_V_MASK 0x1F
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_REDUN */
|
||||
#define DCORE0_MME_CTRL_LO_REDUN_FMA_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_REDUN_FMA_MASK 0x3F
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EUS_LOCAL_FIFO_TH */
|
||||
#define DCORE0_MME_CTRL_LO_EUS_LOCAL_FIFO_TH_FIFO0_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EUS_LOCAL_FIFO_TH_FIFO0_MASK 0x1F
|
||||
#define DCORE0_MME_CTRL_LO_EUS_LOCAL_FIFO_TH_FIFO1_SHIFT 5
|
||||
#define DCORE0_MME_CTRL_LO_EUS_LOCAL_FIFO_TH_FIFO1_MASK 0x3E0
|
||||
#define DCORE0_MME_CTRL_LO_EUS_LOCAL_FIFO_TH_FIFO2_SHIFT 10
|
||||
#define DCORE0_MME_CTRL_LO_EUS_LOCAL_FIFO_TH_FIFO2_MASK 0x7C00
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW0 */
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW0_FP_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW0_FP_MASK 0xFF
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW0_FP_PE0_SHIFT 8
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW0_FP_PE0_MASK 0x1F00
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW0_FP_PE1_SHIFT 13
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW0_FP_PE1_MASK 0x3E000
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW0_FP_PE2_SHIFT 18
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW0_FP_PE2_MASK 0x7C0000
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW0_FP_PE3_SHIFT 23
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW0_FP_PE3_MASK 0xF800000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW1 */
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW1_FP_PE4_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW1_FP_PE4_MASK 0x1F
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW1_FP_PE_HI_SHIFT 5
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW1_FP_PE_HI_MASK 0x3E0
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_F16 */
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_F16_DLY_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_F16_DLY_MASK 0xFFF
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_F16_EN_SHIFT 31
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_F16_EN_MASK 0x80000000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_F8 */
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_F8_DLY_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_F8_DLY_MASK 0xFFF
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_F8_EN_SHIFT 31
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_F8_EN_MASK 0x80000000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_FP32 */
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_FP32_DLY_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_FP32_DLY_MASK 0xFFF
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_FP32_EN_SHIFT 31
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_FP32_EN_MASK 0x80000000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_FP32I */
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_FP32I_DLY_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_FP32I_DLY_MASK 0xFFF
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_FP32I_EN_SHIFT 31
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_FP32I_EN_MASK 0x80000000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_TF32 */
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_TF32_DLY_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_TF32_DLY_MASK 0xFFF
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_TF32_EN_SHIFT 31
|
||||
#define DCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_TF32_EN_MASK 0x80000000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_RL_DESC0 */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_DESC0_RL_RST_TOKEN_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_DESC0_RL_RST_TOKEN_MASK 0xFFFF
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_DESC0_RL_TIMEOUT_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_DESC0_RL_TIMEOUT_MASK 0xFF0000
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_DESC0_RL_DUMMY2REAL_PERIOD_SHIFT 24
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_DESC0_RL_DUMMY2REAL_PERIOD_MASK 0xFF000000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_RL_TOKEN_UPDATE */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_TOKEN_UPDATE_INC_VAL_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_TOKEN_UPDATE_INC_VAL_MASK 0xFFFF
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_TOKEN_UPDATE_DEC_VAL_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_TOKEN_UPDATE_DEC_VAL_MASK 0xFFFF0000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_RL_TH */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_TH_POOL_TH_DEC_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_TH_POOL_TH_DEC_MASK 0xFFFF
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_TH_DUMMY_REAL_DIFF_TH_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_TH_DUMMY_REAL_DIFF_TH_MASK 0xFFFF0000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_RL_MIN */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_MIN_AVG_MIN_TO_FORCE_DUMMY_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_MIN_AVG_MIN_TO_FORCE_DUMMY_MASK 0xFFFF
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_MIN_TOKEN_MIN_VAL_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_MIN_TOKEN_MIN_VAL_MASK 0xFFFF0000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_RL_CTRL_EN */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_CTRL_EN_PCU_DISABLE_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_CTRL_EN_PCU_DISABLE_MASK 0x1
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_CTRL_EN_MIN_VAL_PROT_EN_SHIFT 1
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_CTRL_EN_MIN_VAL_PROT_EN_MASK 0x2
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_RL_HISTORY_LOG_SIZE */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_HISTORY_LOG_SIZE_ALL_MACS_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_HISTORY_LOG_SIZE_ALL_MACS_MASK 0x7
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_HISTORY_LOG_SIZE_REAL_MACS_SHIFT 3
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_HISTORY_LOG_SIZE_REAL_MACS_MASK 0x18
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DUMMY_A_BF16 */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_BF16_ODD_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_BF16_ODD_MASK 0xFFFF
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_BF16_EVEN_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_BF16_EVEN_MASK 0xFFFF0000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DUMMY_B_BF16 */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_BF16_ODD_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_BF16_ODD_MASK 0xFFFF
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_BF16_EVEN_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_BF16_EVEN_MASK 0xFFFF0000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP16 */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP16_ODD_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP16_ODD_MASK 0xFFFF
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP16_EVEN_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP16_EVEN_MASK 0xFFFF0000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP16 */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP16_ODD_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP16_ODD_MASK 0xFFFF
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP16_EVEN_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP16_EVEN_MASK 0xFFFF0000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DUMMY_F8 */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_F8_A_VAL_ODD_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_F8_A_VAL_ODD_MASK 0xFF
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_F8_A_VAL_EVEN_SHIFT 8
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_F8_A_VAL_EVEN_MASK 0xFF00
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_F8_B_VAL_ODD_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_F8_B_VAL_ODD_MASK 0xFF0000
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_F8_B_VAL_EVEN_SHIFT 24
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_F8_B_VAL_EVEN_MASK 0xFF000000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP32_ODD */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP32_ODD_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP32_ODD_V_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP32_EVEN */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP32_EVEN_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP32_EVEN_V_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP32_ODD */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP32_ODD_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP32_ODD_V_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP32_EVEN */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP32_EVEN_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP32_EVEN_V_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DUMMY_A_TF32_ODD */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_TF32_ODD_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_TF32_ODD_V_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DUMMY_A_TF32_EVEN */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_TF32_EVEN_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_A_TF32_EVEN_V_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DUMMY_B_TF32_ODD */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_TF32_ODD_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_TF32_ODD_V_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DUMMY_B_TF32_EVEN */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_TF32_EVEN_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DUMMY_B_TF32_EVEN_V_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PROT */
|
||||
#define DCORE0_MME_CTRL_LO_PROT_VALUE_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PROT_VALUE_MASK 0x7
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EU */
|
||||
#define DCORE0_MME_CTRL_LO_EU_POWER_SAVE_DISABLE_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EU_POWER_SAVE_DISABLE_MASK 0x1
|
||||
#define DCORE0_MME_CTRL_LO_EU_FP_PYR_CLOSE_CGATE_EN_SHIFT 1
|
||||
#define DCORE0_MME_CTRL_LO_EU_FP_PYR_CLOSE_CGATE_EN_MASK 0x2
|
||||
#define DCORE0_MME_CTRL_LO_EU_FP_CLS_CLOSE_CGATE_EN_SHIFT 2
|
||||
#define DCORE0_MME_CTRL_LO_EU_FP_CLS_CLOSE_CGATE_EN_MASK 0x4
|
||||
#define DCORE0_MME_CTRL_LO_EU_FP_CLOSE_CGATE_DLY_SHIFT 8
|
||||
#define DCORE0_MME_CTRL_LO_EU_FP_CLOSE_CGATE_DLY_MASK 0xFFF00
|
||||
#define DCORE0_MME_CTRL_LO_EU_FP_CLOSE_CGATE_ON_DESC_SHIFT 20
|
||||
#define DCORE0_MME_CTRL_LO_EU_FP_CLOSE_CGATE_ON_DESC_MASK 0x100000
|
||||
#define DCORE0_MME_CTRL_LO_EU_FP_ROLLUP_CDC_STALL_DIS_SHIFT 21
|
||||
#define DCORE0_MME_CTRL_LO_EU_FP_ROLLUP_CDC_STALL_DIS_MASK 0x200000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_SBTE */
|
||||
#define DCORE0_MME_CTRL_LO_SBTE_CLOSE_CGATE_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_SBTE_CLOSE_CGATE_MASK 0x1F
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_AGU_SM_INFLIGHT_CNTR */
|
||||
#define DCORE0_MME_CTRL_LO_AGU_SM_INFLIGHT_CNTR_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_AGU_SM_INFLIGHT_CNTR_V_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_AGU_SM_TOTAL_CNTR */
|
||||
#define DCORE0_MME_CTRL_LO_AGU_SM_TOTAL_CNTR_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_AGU_SM_TOTAL_CNTR_V_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_RL_SAT_SEC */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_SAT_SEC_VAL_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_SAT_SEC_VAL_MASK 0xFFFFF
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_SAT_SEC_SEL_SHIFT 31
|
||||
#define DCORE0_MME_CTRL_LO_PCU_RL_SAT_SEC_SEL_MASK 0x80000000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_FMA_FUNC_REDUN_CLK_EN32 */
|
||||
#define DCORE0_MME_CTRL_LO_FMA_FUNC_REDUN_CLK_EN32_V_NMB__SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_FMA_FUNC_REDUN_CLK_EN32_V_NMB__MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_FMA_FUNC_REDUN_CLK_EN33 */
|
||||
#define DCORE0_MME_CTRL_LO_FMA_FUNC_REDUN_CLK_EN33_V_NMB__SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_FMA_FUNC_REDUN_CLK_EN33_V_NMB__MASK 0x1
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EU_ISOLATION_DIS */
|
||||
#define DCORE0_MME_CTRL_LO_EU_ISOLATION_DIS_FMA_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EU_ISOLATION_DIS_FMA_MASK 0x1
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_QM_SLV_CLK_EN */
|
||||
#define DCORE0_MME_CTRL_LO_QM_SLV_CLK_EN_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_QM_SLV_CLK_EN_V_MASK 0x1
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_HBW_CLK_ENABLER_DIS */
|
||||
#define DCORE0_MME_CTRL_LO_HBW_CLK_ENABLER_DIS_AXI_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_HBW_CLK_ENABLER_DIS_AXI_MASK 0x1
|
||||
#define DCORE0_MME_CTRL_LO_HBW_CLK_ENABLER_DIS_APB_SHIFT 1
|
||||
#define DCORE0_MME_CTRL_LO_HBW_CLK_ENABLER_DIS_APB_MASK 0x2
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_AGU */
|
||||
#define DCORE0_MME_CTRL_LO_AGU_COUT_H_FROM_SPATIAL_LOOP_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_AGU_COUT_H_FROM_SPATIAL_LOOP_MASK 0x1
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_QM */
|
||||
#define DCORE0_MME_CTRL_LO_QM_STOP_ON_SBTE_ERR_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_QM_STOP_ON_SBTE_ERR_MASK 0x1
|
||||
#define DCORE0_MME_CTRL_LO_QM_EXT_ADDR_ERR_EN_SHIFT 1
|
||||
#define DCORE0_MME_CTRL_LO_QM_EXT_ADDR_ERR_EN_MASK 0x2
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EARLY_RELEASE_STATUS */
|
||||
#define DCORE0_MME_CTRL_LO_EARLY_RELEASE_STATUS_AGU_COUT0_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EARLY_RELEASE_STATUS_AGU_COUT0_MASK 0xF
|
||||
#define DCORE0_MME_CTRL_LO_EARLY_RELEASE_STATUS_AGU_COUT1_SHIFT 4
|
||||
#define DCORE0_MME_CTRL_LO_EARLY_RELEASE_STATUS_AGU_COUT1_MASK 0xF0
|
||||
#define DCORE0_MME_CTRL_LO_EARLY_RELEASE_STATUS_AP_BRAIN_SHIFT 8
|
||||
#define DCORE0_MME_CTRL_LO_EARLY_RELEASE_STATUS_AP_BRAIN_MASK 0xF00
|
||||
#define DCORE0_MME_CTRL_LO_EARLY_RELEASE_STATUS_EU_BRAIN_SHIFT 12
|
||||
#define DCORE0_MME_CTRL_LO_EARLY_RELEASE_STATUS_EU_BRAIN_MASK 0xF000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_INTR_CAUSE */
|
||||
#define DCORE0_MME_CTRL_LO_INTR_CAUSE_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_INTR_CAUSE_V_MASK 0xFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_INTR_MASK */
|
||||
#define DCORE0_MME_CTRL_LO_INTR_MASK_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_INTR_MASK_V_MASK 0x3FFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_INTR_CLEAR */
|
||||
#define DCORE0_MME_CTRL_LO_INTR_CLEAR_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_INTR_CLEAR_V_MASK 0xFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_REDUN_PSOC_SEL_SEC */
|
||||
#define DCORE0_MME_CTRL_LO_REDUN_PSOC_SEL_SEC_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_REDUN_PSOC_SEL_SEC_V_MASK 0x1
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_BIST */
|
||||
#define DCORE0_MME_CTRL_LO_BIST_FUNC_MODE_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_BIST_FUNC_MODE_MASK 0x1
|
||||
#define DCORE0_MME_CTRL_LO_BIST_APB_SW_MODE_SHIFT 1
|
||||
#define DCORE0_MME_CTRL_LO_BIST_APB_SW_MODE_MASK 0x2
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EU_RL_ENABLE */
|
||||
#define DCORE0_MME_CTRL_LO_EU_RL_ENABLE_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EU_RL_ENABLE_V_MASK 0x1
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EU_RL_TOKEN_SEL */
|
||||
#define DCORE0_MME_CTRL_LO_EU_RL_TOKEN_SEL_STAT_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EU_RL_TOKEN_SEL_STAT_MASK 0x1
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_EU_RL_CFG */
|
||||
#define DCORE0_MME_CTRL_LO_EU_RL_CFG_RST_TOKEN_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_EU_RL_CFG_RST_TOKEN_MASK 0xFF
|
||||
#define DCORE0_MME_CTRL_LO_EU_RL_CFG_TIMEOUT_SHIFT 8
|
||||
#define DCORE0_MME_CTRL_LO_EU_RL_CFG_TIMEOUT_MASK 0xFF00
|
||||
#define DCORE0_MME_CTRL_LO_EU_RL_CFG_SATURATION_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_EU_RL_CFG_SATURATION_MASK 0xFF0000
|
||||
#define DCORE0_MME_CTRL_LO_EU_RL_CFG_DATA_SIZE_SHIFT 24
|
||||
#define DCORE0_MME_CTRL_LO_EU_RL_CFG_DATA_SIZE_MASK 0xFF000000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DBG_DW0 */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW0_FSM_STATE_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW0_FSM_STATE_MASK 0x1
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW0_REAL_POOL_TOKENS_SHIFT 8
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW0_REAL_POOL_TOKENS_MASK 0xFFFFF00
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DBG_DW1 */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW1_ALL_POOL_TOKENS_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW1_ALL_POOL_TOKENS_MASK 0xFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DBG_DW2 */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW2_BUBBLE_CYC_CNTR_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW2_BUBBLE_CYC_CNTR_MASK 0xFFFF
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW2_DUMMY_CYC_CNTR_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW2_DUMMY_CYC_CNTR_MASK 0xFFFF0000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DBG_DW3 */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW3_REAL_MACS_HISTORY_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW3_REAL_MACS_HISTORY_MASK 0xFFFF
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW3_ALL_MACS_HISTORY_SHIFT 16
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_DW3_ALL_MACS_HISTORY_MASK 0xFFFF0000
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_PCU_DBG_WKL_ID */
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_WKL_ID_B_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_PCU_DBG_WKL_ID_B_MASK 0xFFFFFFFF
|
||||
|
||||
/* DCORE0_MME_CTRL_LO_ETF_MEM_WRAP_RM */
|
||||
#define DCORE0_MME_CTRL_LO_ETF_MEM_WRAP_RM_V_SHIFT 0
|
||||
#define DCORE0_MME_CTRL_LO_ETF_MEM_WRAP_RM_V_MASK 0x3FFFFFFF
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_MASKS_H_ */
|
@ -0,0 +1,61 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_MME_AXUSER_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_MME_AXUSER_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO_MME_AXUSER
|
||||
* (Prototype: AXUSER)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_ASID 0x40CBE00
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_MMU_BP 0x40CBE04
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_STRONG_ORDER 0x40CBE08
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_NO_SNOOP 0x40CBE0C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_WR_REDUCTION 0x40CBE10
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_RD_ATOMIC 0x40CBE14
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_QOS 0x40CBE18
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_RSVD 0x40CBE1C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_EMEM_CPAGE 0x40CBE20
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_CORE 0x40CBE24
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_E2E_COORD 0x40CBE28
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_WR_OVRD_LO 0x40CBE30
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_WR_OVRD_HI 0x40CBE34
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_RD_OVRD_LO 0x40CBE38
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_HB_RD_OVRD_HI 0x40CBE3C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_LB_COORD 0x40CBE40
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_LB_LOCK 0x40CBE44
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_LB_RSVD 0x40CBE48
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_MME_AXUSER_LB_OVRD 0x40CBE4C
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_MME_AXUSER_REGS_H_ */
|
@ -0,0 +1,163 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_CTRL_LO_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_CTRL_LO_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_CTRL_LO
|
||||
* (Prototype: MME_CTRL_LO)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_STATUS 0x40CB000
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_CMD 0x40CB004
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_DW0 0x40CB148
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_ADDR0 0x40CB14C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL0 0x40CB150
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_ADDR1 0x40CB154
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_SYNC_OBJ_VAL1 0x40CB158
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_A_SS 0x40CB224
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_B_SS 0x40CB228
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ARCH_COUT_SS 0x40CB27C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_QM_STALL 0x40CB400
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_LOG_SHADOW_LO 0x40CB404
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_LOG_SHADOW_HI 0x40CB408
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_SYNC_OBJECT_FIFO_TH 0x40CB40C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_REDUN 0x40CB410
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EUS_LOCAL_FIFO_TH 0x40CB414
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW0 0x40CB418
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EUS_ROLLUP_DLY_DW1 0x40CB41C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_F16 0x40CB420
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_F8 0x40CB424
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_FP32 0x40CB428
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_FP32I 0x40CB42C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EUS_ROLLUP_CD_PROT_TF32 0x40CB430
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_RL_DESC0 0x40CB434
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_RL_TOKEN_UPDATE 0x40CB438
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_RL_TH 0x40CB43C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_RL_MIN 0x40CB440
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_RL_CTRL_EN 0x40CB444
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_RL_HISTORY_LOG_SIZE 0x40CB448
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DUMMY_A_BF16 0x40CB44C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DUMMY_B_BF16 0x40CB450
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP16 0x40CB454
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP16 0x40CB458
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DUMMY_F8 0x40CB45C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP32_ODD 0x40CB460
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DUMMY_A_FP32_EVEN 0x40CB464
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP32_ODD 0x40CB468
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DUMMY_B_FP32_EVEN 0x40CB46C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DUMMY_A_TF32_ODD 0x40CB470
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DUMMY_A_TF32_EVEN 0x40CB474
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DUMMY_B_TF32_ODD 0x40CB478
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DUMMY_B_TF32_EVEN 0x40CB47C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PROT 0x40CB480
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EU 0x40CB484
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_SBTE 0x40CB488
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_AGU_SM_INFLIGHT_CNTR 0x40CB48C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_AGU_SM_TOTAL_CNTR 0x40CB490
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_RL_SAT_SEC 0x40CB494
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_FMA_FUNC_REDUN_CLK_EN32 0x40CB498
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_FMA_FUNC_REDUN_CLK_EN33 0x40CB49C
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EU_ISOLATION_DIS 0x40CB4A0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_QM_SLV_CLK_EN 0x40CB4A4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_HBW_CLK_ENABLER_DIS 0x40CB4A8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_AGU 0x40CB4AC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_QM 0x40CB4B0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EARLY_RELEASE_STATUS 0x40CB4B4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_INTR_CAUSE 0x40CB4B8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_INTR_MASK 0x40CB4BC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_INTR_CLEAR 0x40CB4C0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_REDUN_PSOC_SEL_SEC 0x40CB4C4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_BIST 0x40CB4C8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EU_RL_ENABLE 0x40CB4CC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EU_RL_TOKEN_SEL 0x40CB4D0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_EU_RL_CFG 0x40CB4D4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DBG_DW0 0x40CB4D8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DBG_DW1 0x40CB4DC
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DBG_DW2 0x40CB4E0
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DBG_DW3 0x40CB4E4
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_PCU_DBG_WKL_ID 0x40CB4E8
|
||||
|
||||
#define mmDCORE0_MME_CTRL_LO_ETF_MEM_WRAP_RM 0x40CB4EC
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_CTRL_LO_REGS_H_ */
|
@ -0,0 +1,567 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_QM_ARC_ACP_ENG_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_QM_ARC_ACP_ENG_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_QM_ARC_ACP_ENG
|
||||
* (Prototype: ARC_ACP_ENG)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_0 0x40CF000
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_1 0x40CF004
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_2 0x40CF008
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_3 0x40CF00C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_4 0x40CF010
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_5 0x40CF014
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_6 0x40CF018
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_7 0x40CF01C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_8 0x40CF020
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_9 0x40CF024
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_10 0x40CF028
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_11 0x40CF02C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_12 0x40CF030
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_13 0x40CF034
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_14 0x40CF038
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_15 0x40CF03C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_16 0x40CF040
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_17 0x40CF044
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_18 0x40CF048
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_19 0x40CF04C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_20 0x40CF050
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_21 0x40CF054
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_22 0x40CF058
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_23 0x40CF05C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_24 0x40CF060
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_25 0x40CF064
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_26 0x40CF068
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_27 0x40CF06C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_28 0x40CF070
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_29 0x40CF074
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_30 0x40CF078
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_31 0x40CF07C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_32 0x40CF080
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_33 0x40CF084
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_34 0x40CF088
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_35 0x40CF08C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_36 0x40CF090
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_37 0x40CF094
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_38 0x40CF098
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_39 0x40CF09C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_40 0x40CF0A0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_41 0x40CF0A4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_42 0x40CF0A8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_43 0x40CF0AC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_44 0x40CF0B0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_45 0x40CF0B4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_46 0x40CF0B8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_47 0x40CF0BC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_48 0x40CF0C0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_49 0x40CF0C4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_50 0x40CF0C8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_51 0x40CF0CC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_52 0x40CF0D0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_53 0x40CF0D4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_54 0x40CF0D8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_55 0x40CF0DC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_56 0x40CF0E0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_57 0x40CF0E4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_58 0x40CF0E8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_59 0x40CF0EC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_60 0x40CF0F0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_61 0x40CF0F4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_62 0x40CF0F8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PI_REG_63 0x40CF0FC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_0 0x40CF100
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_1 0x40CF104
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_2 0x40CF108
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_3 0x40CF10C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_4 0x40CF110
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_5 0x40CF114
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_6 0x40CF118
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_7 0x40CF11C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_8 0x40CF120
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_9 0x40CF124
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_10 0x40CF128
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_11 0x40CF12C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_12 0x40CF130
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_13 0x40CF134
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_14 0x40CF138
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_15 0x40CF13C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_16 0x40CF140
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_17 0x40CF144
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_18 0x40CF148
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_19 0x40CF14C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_20 0x40CF150
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_21 0x40CF154
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_22 0x40CF158
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_23 0x40CF15C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_24 0x40CF160
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_25 0x40CF164
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_26 0x40CF168
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_27 0x40CF16C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_28 0x40CF170
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_29 0x40CF174
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_30 0x40CF178
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_31 0x40CF17C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_32 0x40CF180
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_33 0x40CF184
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_34 0x40CF188
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_35 0x40CF18C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_36 0x40CF190
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_37 0x40CF194
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_38 0x40CF198
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_39 0x40CF19C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_40 0x40CF1A0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_41 0x40CF1A4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_42 0x40CF1A8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_43 0x40CF1AC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_44 0x40CF1B0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_45 0x40CF1B4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_46 0x40CF1B8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_47 0x40CF1BC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_48 0x40CF1C0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_49 0x40CF1C4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_50 0x40CF1C8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_51 0x40CF1CC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_52 0x40CF1D0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_53 0x40CF1D4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_54 0x40CF1D8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_55 0x40CF1DC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_56 0x40CF1E0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_57 0x40CF1E4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_58 0x40CF1E8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_59 0x40CF1EC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_60 0x40CF1F0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_61 0x40CF1F4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_62 0x40CF1F8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_CI_REG_63 0x40CF1FC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_0 0x40CF200
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_1 0x40CF204
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_2 0x40CF208
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_3 0x40CF20C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_4 0x40CF210
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_5 0x40CF214
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_6 0x40CF218
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_7 0x40CF21C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_8 0x40CF220
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_9 0x40CF224
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_10 0x40CF228
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_11 0x40CF22C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_12 0x40CF230
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_13 0x40CF234
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_14 0x40CF238
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_15 0x40CF23C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_16 0x40CF240
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_17 0x40CF244
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_18 0x40CF248
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_19 0x40CF24C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_20 0x40CF250
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_21 0x40CF254
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_22 0x40CF258
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_23 0x40CF25C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_24 0x40CF260
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_25 0x40CF264
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_26 0x40CF268
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_27 0x40CF26C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_28 0x40CF270
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_29 0x40CF274
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_30 0x40CF278
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_31 0x40CF27C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_32 0x40CF280
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_33 0x40CF284
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_34 0x40CF288
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_35 0x40CF28C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_36 0x40CF290
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_37 0x40CF294
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_38 0x40CF298
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_39 0x40CF29C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_40 0x40CF2A0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_41 0x40CF2A4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_42 0x40CF2A8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_43 0x40CF2AC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_44 0x40CF2B0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_45 0x40CF2B4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_46 0x40CF2B8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_47 0x40CF2BC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_48 0x40CF2C0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_49 0x40CF2C4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_50 0x40CF2C8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_51 0x40CF2CC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_52 0x40CF2D0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_53 0x40CF2D4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_54 0x40CF2D8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_55 0x40CF2DC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_56 0x40CF2E0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_57 0x40CF2E4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_58 0x40CF2E8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_59 0x40CF2EC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_60 0x40CF2F0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_61 0x40CF2F4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_62 0x40CF2F8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_PR_REG_63 0x40CF2FC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_0 0x40CF300
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_1 0x40CF304
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_2 0x40CF308
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_3 0x40CF30C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_4 0x40CF310
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_5 0x40CF314
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_6 0x40CF318
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_7 0x40CF31C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_8 0x40CF320
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_9 0x40CF324
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_10 0x40CF328
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_11 0x40CF32C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_12 0x40CF330
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_13 0x40CF334
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_14 0x40CF338
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_15 0x40CF33C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_16 0x40CF340
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_17 0x40CF344
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_18 0x40CF348
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_19 0x40CF34C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_20 0x40CF350
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_21 0x40CF354
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_22 0x40CF358
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_23 0x40CF35C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_24 0x40CF360
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_25 0x40CF364
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_26 0x40CF368
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_27 0x40CF36C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_28 0x40CF370
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_29 0x40CF374
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_30 0x40CF378
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_31 0x40CF37C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_32 0x40CF380
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_33 0x40CF384
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_34 0x40CF388
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_35 0x40CF38C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_36 0x40CF390
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_37 0x40CF394
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_38 0x40CF398
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_39 0x40CF39C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_40 0x40CF3A0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_41 0x40CF3A4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_42 0x40CF3A8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_43 0x40CF3AC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_44 0x40CF3B0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_45 0x40CF3B4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_46 0x40CF3B8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_47 0x40CF3BC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_48 0x40CF3C0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_49 0x40CF3C4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_50 0x40CF3C8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_51 0x40CF3CC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_52 0x40CF3D0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_53 0x40CF3D4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_54 0x40CF3D8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_55 0x40CF3DC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_56 0x40CF3E0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_57 0x40CF3E4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_58 0x40CF3E8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_59 0x40CF3EC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_60 0x40CF3F0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_61 0x40CF3F4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_62 0x40CF3F8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_MK_REG_63 0x40CF3FC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_SELECTED_QUEUE_ID 0x40CF400
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_GRANTS_WEIGHT_PRIO_0 0x40CF404
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_GRANTS_WEIGHT_PRIO_1 0x40CF408
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_GRANTS_WEIGHT_PRIO_2 0x40CF40C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_GRANTS_COUNTER_PRIO_0 0x40CF410
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_GRANTS_COUNTER_PRIO_1 0x40CF414
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_GRANTS_COUNTER_PRIO_2 0x40CF418
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_DBG_PRIO_OUT_CNT_0 0x40CF41C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_DBG_PRIO_OUT_CNT_1 0x40CF420
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_DBG_PRIO_OUT_CNT_2 0x40CF424
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_DBG_PRIO_OUT_CNT_3 0x40CF428
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_DBG_PRIO_RD_CNT_0 0x40CF42C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_DBG_PRIO_RD_CNT_1 0x40CF430
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_DBG_PRIO_RD_CNT_2 0x40CF434
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_DBG_PRIO_RD_CNT_3 0x40CF438
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_ACP_ENG_ACP_DBG_REG 0x40CF43C
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_QM_ARC_ACP_ENG_REGS_H_ */
|
@ -0,0 +1,591 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_QM_ARC_AUX_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_QM_ARC_AUX_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_QM_ARC_AUX
|
||||
* (Prototype: QMAN_ARC_AUX)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_RUN_HALT_REQ 0x40C8100
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_RUN_HALT_ACK 0x40C8104
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_RST_VEC_ADDR 0x40C8108
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DBG_MODE 0x40C810C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CLUSTER_NUM 0x40C8110
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_NUM 0x40C8114
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_WAKE_UP_EVENT 0x40C8118
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_SYS_ADDR_BASE 0x40C811C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CTI_AP_STS 0x40C8120
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CTI_CFG_MUX_SEL 0x40C8124
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_RST 0x40C8128
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_RST_REQ 0x40C812C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SRAM_LSB_ADDR 0x40C8130
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SRAM_MSB_ADDR 0x40C8134
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_PCIE_LSB_ADDR 0x40C8138
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_PCIE_MSB_ADDR 0x40C813C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CFG_LSB_ADDR 0x40C8140
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CFG_MSB_ADDR 0x40C8144
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_HBM0_LSB_ADDR 0x40C8150
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_HBM0_MSB_ADDR 0x40C8154
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_HBM1_LSB_ADDR 0x40C8158
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_HBM1_MSB_ADDR 0x40C815C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_HBM2_LSB_ADDR 0x40C8160
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_HBM2_MSB_ADDR 0x40C8164
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_HBM3_LSB_ADDR 0x40C8168
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_HBM3_MSB_ADDR 0x40C816C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_HBM0_OFFSET 0x40C8170
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_HBM1_OFFSET 0x40C8174
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_HBM2_OFFSET 0x40C8178
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_HBM3_OFFSET 0x40C817C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_0 0x40C8180
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_1 0x40C8184
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_2 0x40C8188
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_3 0x40C818C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_4 0x40C8190
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_5 0x40C8194
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_LSB_ADDR_6 0x40C8198
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_0 0x40C819C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_1 0x40C81A0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_2 0x40C81A4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_3 0x40C81A8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_4 0x40C81AC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_5 0x40C81B0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_PURPOSE_MSB_ADDR_6 0x40C81B4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_CBU_AWCACHE_OVR 0x40C81B8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_LBU_AWCACHE_OVR 0x40C81BC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CONTEXT_ID_0 0x40C81C0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CONTEXT_ID_1 0x40C81C4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CONTEXT_ID_2 0x40C81C8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CONTEXT_ID_3 0x40C81CC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CONTEXT_ID_4 0x40C81D0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CONTEXT_ID_5 0x40C81D4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CONTEXT_ID_6 0x40C81D8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CONTEXT_ID_7 0x40C81DC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CID_OFFSET_0 0x40C81E0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CID_OFFSET_1 0x40C81E4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CID_OFFSET_2 0x40C81E8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CID_OFFSET_3 0x40C81EC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CID_OFFSET_4 0x40C81F0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CID_OFFSET_5 0x40C81F4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CID_OFFSET_6 0x40C81F8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CID_OFFSET_7 0x40C81FC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_0 0x40C8200
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_1 0x40C8204
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_2 0x40C8208
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_3 0x40C820C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_4 0x40C8210
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_5 0x40C8214
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_6 0x40C8218
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_7 0x40C821C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_8 0x40C8220
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_9 0x40C8224
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_10 0x40C8228
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_11 0x40C822C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_12 0x40C8230
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_13 0x40C8234
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_14 0x40C8238
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SW_INTR_15 0x40C823C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_IRQ_INTR_MASK_0 0x40C8280
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_IRQ_INTR_MASK_1 0x40C8284
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_SEI_INTR_STS 0x40C8290
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_SEI_INTR_CLR 0x40C8294
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_SEI_INTR_MASK 0x40C8298
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_EXCPTN_CAUSE 0x40C829C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SEI_INTR_HALT_EN 0x40C82A0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_SEI_INTR_HALT_MASK 0x40C82A4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_QMAN_SEI_INTR_HALT_MASK 0x40C82A8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REI_INTR_STS 0x40C82B0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REI_INTR_CLR 0x40C82B4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REI_INTR_MASK 0x40C82B8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_ECC_ERR_ADDR 0x40C82BC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_ECC_SYNDROME 0x40C82C0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_I_CACHE_ECC_ERR_ADDR 0x40C82C4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_I_CACHE_ECC_SYNDROME 0x40C82C8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_D_CACHE_ECC_ERR_ADDR 0x40C82CC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_D_CACHE_ECC_SYNDROME 0x40C82D0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBW_TRMINATE_AWADDR_ERR 0x40C82E0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBW_TRMINATE_ARADDR_ERR 0x40C82E4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CFG_LBW_TERMINATE_BRESP 0x40C82E8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CFG_LBW_TERMINATE_RRESP 0x40C82EC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CFG_LBW_TERMINATE_AXLEN 0x40C82F0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CFG_LBW_TERMINATE_AXSIZE 0x40C82F4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SCRATCHPAD_0 0x40C8300
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SCRATCHPAD_1 0x40C8304
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SCRATCHPAD_2 0x40C8308
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SCRATCHPAD_3 0x40C830C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SCRATCHPAD_4 0x40C8310
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SCRATCHPAD_5 0x40C8314
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SCRATCHPAD_6 0x40C8318
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_SCRATCHPAD_7 0x40C831C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_TOTAL_CBU_WR_CNT 0x40C8320
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_INFLIGHT_CBU_WR_CNT 0x40C8324
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_TOTAL_CBU_RD_CNT 0x40C8328
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_INFLIGHT_CBU_RD_CNT 0x40C832C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_TOTAL_LBU_WR_CNT 0x40C8330
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_INFLIGHT_LBU_WR_CNT 0x40C8334
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_TOTAL_LBU_RD_CNT 0x40C8338
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_INFLIGHT_LBU_RD_CNT 0x40C833C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_ARUSER_OVR 0x40C8350
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_ARUSER_OVR_EN 0x40C8354
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_AWUSER_OVR 0x40C8358
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_AWUSER_OVR_EN 0x40C835C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_ARUSER_MSB_OVR 0x40C8360
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_ARUSER_MSB_OVR_EN 0x40C8364
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_AWUSER_MSB_OVR 0x40C8368
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_AWUSER_MSB_OVR_EN 0x40C836C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_AXCACHE_OVR 0x40C8370
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_LOCK_OVR 0x40C8374
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_PROT_OVR 0x40C8378
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_MAX_OUTSTANDING 0x40C837C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_EARLY_BRESP_EN 0x40C8380
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORCE_RSP_OK 0x40C8384
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_NO_WR_INFLIGHT 0x40C838C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_SEI_INTR_ID 0x40C8390
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBU_ARUSER_OVR 0x40C8400
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBU_ARUSER_OVR_EN 0x40C8404
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBU_AWUSER_OVR 0x40C8408
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBU_AWUSER_OVR_EN 0x40C840C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBU_AXCACHE_OVR 0x40C8420
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBU_LOCK_OVR 0x40C8424
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBU_PROT_OVR 0x40C8428
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBU_MAX_OUTSTANDING 0x40C842C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBU_EARLY_BRESP_EN 0x40C8430
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBU_FORCE_RSP_OK 0x40C8434
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBU_NO_WR_INFLIGHT 0x40C843C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBU_SEI_INTR_ID 0x40C8440
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_0 0x40C8500
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_1 0x40C8504
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_2 0x40C8508
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_3 0x40C850C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_4 0x40C8510
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_5 0x40C8514
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_6 0x40C8518
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_BASE_ADDR_7 0x40C851C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_SIZE_0 0x40C8520
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_SIZE_1 0x40C8524
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_SIZE_2 0x40C8528
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_SIZE_3 0x40C852C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_SIZE_4 0x40C8530
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_SIZE_5 0x40C8534
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_SIZE_6 0x40C8538
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_SIZE_7 0x40C853C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PI_0 0x40C8540
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PI_1 0x40C8544
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PI_2 0x40C8548
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PI_3 0x40C854C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PI_4 0x40C8550
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PI_5 0x40C8554
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PI_6 0x40C8558
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PI_7 0x40C855C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_CI_0 0x40C8560
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_CI_1 0x40C8564
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_CI_2 0x40C8568
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_CI_3 0x40C856C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_CI_4 0x40C8570
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_CI_5 0x40C8574
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_CI_6 0x40C8578
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_CI_7 0x40C857C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_0 0x40C8580
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_1 0x40C8584
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_2 0x40C8588
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_3 0x40C858C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_4 0x40C8590
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_5 0x40C8594
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_6 0x40C8598
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_PUSH_REG_7 0x40C859C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_0 0x40C85A0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_1 0x40C85A4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_2 0x40C85A8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_3 0x40C85AC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_4 0x40C85B0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_5 0x40C85B4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_6 0x40C85B8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_MAX_OCCUPANCY_7 0x40C85BC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_0 0x40C85C0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_1 0x40C85C4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_2 0x40C85C8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_3 0x40C85CC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_4 0x40C85D0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_5 0x40C85D4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_6 0x40C85D8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_VALID_ENTRIES_7 0x40C85DC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_GENERAL_Q_VLD_ENTRY_MASK 0x40C85E0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_NIC_Q_VLD_ENTRY_MASK 0x40C85E4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_DROP_EN 0x40C8620
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_WARN_MSG 0x40C8624
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_QUEUE_ALERT_MSG 0x40C8628
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_GEN_AXI_AWPROT 0x40C8630
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_GEN_AXI_AWUSER 0x40C8634
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_GEN_AXI_AWBURST 0x40C8638
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_GEN_AXI_AWLOCK 0x40C863C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_GEN_AXI_AWCACHE 0x40C8640
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_WRR_ARB_WEIGHT 0x40C8644
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_Q_PUSH_FIFO_FULL_CFG 0x40C8648
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_Q_PUSH_FIFO_CNT 0x40C864C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_QMAN_CQ_IFIFO_SHADOW_CI 0x40C8650
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_QMAN_ARC_CQ_IFIFO_SHADOW_CI 0x40C8654
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_QMAN_CQ_SHADOW_CI 0x40C8658
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_QMAN_ARC_CQ_SHADOW_CI 0x40C865C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_AUX2APB_PROT 0x40C8700
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBW_FORK_WIN_EN 0x40C8704
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_QMAN_LBW_FORK_BASE_ADDR0 0x40C8708
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_QMAN_LBW_FORK_ADDR_MASK0 0x40C870C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_QMAN_LBW_FORK_BASE_ADDR1 0x40C8710
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_QMAN_LBW_FORK_ADDR_MASK1 0x40C8714
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_FARM_LBW_FORK_BASE_ADDR0 0x40C8718
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_FARM_LBW_FORK_ADDR_MASK0 0x40C871C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_FARM_LBW_FORK_BASE_ADDR1 0x40C8720
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_FARM_LBW_FORK_ADDR_MASK1 0x40C8724
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBW_APB_FORK_MAX_ADDR0 0x40C8728
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_LBW_APB_FORK_MAX_ADDR1 0x40C872C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_ACC_ENGS_LBW_FORK_MASK 0x40C8730
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_DUP_ENG_LBW_FORK_ADDR 0x40C8734
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_ACP_ENG_LBW_FORK_ADDR 0x40C8738
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_ACC_ENGS_VIRTUAL_ADDR 0x40C873C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_WIN_EN 0x40C8740
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_BASE_ADDR0_LSB 0x40C8750
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_BASE_ADDR0_MSB 0x40C8754
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_ADDR_MASK0_LSB 0x40C8758
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_ADDR_MASK0_MSB 0x40C875C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_BASE_ADDR1_LSB 0x40C8760
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_BASE_ADDR1_MSB 0x40C8764
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_ADDR_MASK1_LSB 0x40C8768
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_ADDR_MASK1_MSB 0x40C876C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_BASE_ADDR2_LSB 0x40C8770
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_BASE_ADDR2_MSB 0x40C8774
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_ADDR_MASK2_LSB 0x40C8778
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_ADDR_MASK2_MSB 0x40C877C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_BASE_ADDR3_LSB 0x40C8780
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_BASE_ADDR3_MSB 0x40C8784
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_ADDR_MASK3_LSB 0x40C8788
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_FORK_ADDR_MASK3_MSB 0x40C878C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_TRMINATE_ARADDR_LSB 0x40C8790
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CBU_TRMINATE_ARADDR_MSB 0x40C8794
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CFG_CBU_TERMINATE_BRESP 0x40C8798
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CFG_CBU_TERMINATE_RRESP 0x40C879C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_0 0x40C8800
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_1 0x40C8804
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_2 0x40C8808
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_3 0x40C880C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_4 0x40C8810
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_5 0x40C8814
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_6 0x40C8818
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_7 0x40C881C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_8 0x40C8820
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_9 0x40C8824
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_10 0x40C8828
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_11 0x40C882C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_12 0x40C8830
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_13 0x40C8834
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_14 0x40C8838
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_REGION_CFG_15 0x40C883C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_TRMINATE_AWADDR_ERR 0x40C8840
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_DCCM_TRMINATE_ARADDR_ERR 0x40C8844
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CFG_DCCM_TERMINATE_BRESP 0x40C8848
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CFG_DCCM_TERMINATE_RRESP 0x40C884C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CFG_DCCM_TERMINATE_EN 0x40C8850
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_CFG_DCCM_SECURE_REGION 0x40C8854
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_AXI_ORDERING_WR_IF_CNT 0x40C8900
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_AXI_ORDERING_CTL 0x40C8904
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_AXI_ORDERING_ADDR_MSK 0x40C8908
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_AXI_ORDERING_ADDR 0x40C890C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_ARC_ACC_ENGS_BUSER 0x40C8910
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_AUX_MME_ARC_UPPER_DCCM_EN 0x40C8920
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_QM_ARC_AUX_REGS_H_ */
|
@ -0,0 +1,61 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_QM_ARC_DUP_ENG_AXUSER_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_QM_ARC_DUP_ENG_AXUSER_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_QM_ARC_DUP_ENG_AXUSER
|
||||
* (Prototype: AXUSER)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_ASID 0x40C9900
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_MMU_BP 0x40C9904
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_STRONG_ORDER 0x40C9908
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_NO_SNOOP 0x40C990C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_WR_REDUCTION 0x40C9910
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_RD_ATOMIC 0x40C9914
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_QOS 0x40C9918
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_RSVD 0x40C991C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_EMEM_CPAGE 0x40C9920
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_CORE 0x40C9924
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_E2E_COORD 0x40C9928
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_WR_OVRD_LO 0x40C9930
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_WR_OVRD_HI 0x40C9934
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_RD_OVRD_LO 0x40C9938
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_HB_RD_OVRD_HI 0x40C993C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_LB_COORD 0x40C9940
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_LB_LOCK 0x40C9944
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_LB_RSVD 0x40C9948
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_AXUSER_LB_OVRD 0x40C994C
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_QM_ARC_DUP_ENG_AXUSER_REGS_H_ */
|
@ -0,0 +1,575 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_QM_ARC_DUP_ENG_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_QM_ARC_DUP_ENG_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_QM_ARC_DUP_ENG
|
||||
* (Prototype: ARC_DUP_ENG)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_0 0x40C9000
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_1 0x40C9004
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_2 0x40C9008
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_3 0x40C900C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_4 0x40C9010
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_5 0x40C9014
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_6 0x40C9018
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_7 0x40C901C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_8 0x40C9020
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_9 0x40C9024
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_10 0x40C9028
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_11 0x40C902C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_12 0x40C9030
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_13 0x40C9034
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_14 0x40C9038
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_15 0x40C903C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_16 0x40C9040
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_17 0x40C9044
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_18 0x40C9048
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_19 0x40C904C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_20 0x40C9050
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_21 0x40C9054
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_22 0x40C9058
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_23 0x40C905C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_ADDR_24 0x40C9060
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_MME_ENG_ADDR_0 0x40C9064
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_MME_ENG_ADDR_1 0x40C9068
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_MME_ENG_ADDR_2 0x40C906C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_MME_ENG_ADDR_3 0x40C9070
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_0 0x40C9074
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_1 0x40C9078
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_2 0x40C907C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_3 0x40C9080
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_4 0x40C9084
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_5 0x40C9088
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_6 0x40C908C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_7 0x40C9090
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_8 0x40C9094
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_9 0x40C9098
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_10 0x40C909C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_11 0x40C90A0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_12 0x40C90A4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_13 0x40C90A8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_14 0x40C90AC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_15 0x40C90B0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_16 0x40C90B4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_17 0x40C90B8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_18 0x40C90BC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_19 0x40C90C0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_20 0x40C90C4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_21 0x40C90C8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_22 0x40C90CC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_ADDR_23 0x40C90D0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_EDMA_ENG_ADDR_0 0x40C90D4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_EDMA_ENG_ADDR_1 0x40C90D8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_EDMA_ENG_ADDR_2 0x40C90DC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_EDMA_ENG_ADDR_3 0x40C90E0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_EDMA_ENG_ADDR_4 0x40C90E4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_EDMA_ENG_ADDR_5 0x40C90E8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_EDMA_ENG_ADDR_6 0x40C90EC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_EDMA_ENG_ADDR_7 0x40C90F0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_PDMA_ENG_ADDR_0 0x40C90F4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_PDMA_ENG_ADDR_1 0x40C90F8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_ROT_ENG_ADDR_0 0x40C90FC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_ROT_ENG_ADDR_1 0x40C9100
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_0 0x40C9104
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_1 0x40C9108
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_2 0x40C910C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_3 0x40C9110
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_4 0x40C9114
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_5 0x40C9118
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_6 0x40C911C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_7 0x40C9120
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_8 0x40C9124
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_9 0x40C9128
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_10 0x40C912C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_11 0x40C9130
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_12 0x40C9134
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_13 0x40C9138
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_14 0x40C913C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_ADDR_15 0x40C9140
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TPC_ENG_MASK 0x40C9200
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_MME_ENG_MASK 0x40C9204
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_EDMA_ENG_MASK 0x40C9208
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_PDMA_ENG_MASK 0x40C920C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_ROT_ENG_MASK 0x40C9210
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_RSVD_ENG_MASK 0x40C9214
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_MASK_0 0x40C9218
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_MASK_1 0x40C921C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_MASK_2 0x40C9220
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_MASK_3 0x40C9224
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_MASK_4 0x40C9228
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_MASK_5 0x40C922C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_MASK_6 0x40C9230
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_NIC_ENG_MASK_7 0x40C9234
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_0 0x40C9238
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_1 0x40C923C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_2 0x40C9240
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_3 0x40C9244
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_4 0x40C9248
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_5 0x40C924C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_6 0x40C9250
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_7 0x40C9254
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_8 0x40C9258
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_9 0x40C925C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_10 0x40C9260
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_11 0x40C9264
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_12 0x40C9268
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_0_13 0x40C926C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_1_0 0x40C9288
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_1_1 0x40C928C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_1_2 0x40C9290
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_1_3 0x40C9294
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_1_4 0x40C9298
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_1_5 0x40C929C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_2_0 0x40C92A0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_2_1 0x40C92A4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_2_2 0x40C92A8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_2_3 0x40C92AC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_2_4 0x40C92B0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_2_5 0x40C92B4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_3_0 0x40C92B8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_3_1 0x40C92BC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_3_2 0x40C92C0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_3_3 0x40C92C4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_3_4 0x40C92C8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_TRANS_DATA_Q_3_5 0x40C92CC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GENERAL_CFG 0x40C92D0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_BP_CFG 0x40C92D4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_0 0x40C92D8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_1 0x40C92DC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_2 0x40C92E0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_3 0x40C92E4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_4 0x40C92E8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_5 0x40C92EC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_6 0x40C92F0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_7 0x40C92F4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_8 0x40C92F8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_9 0x40C92FC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_10 0x40C9300
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_11 0x40C9304
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_12 0x40C9308
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_GRP_ENG_ADDR_OFFSET_13 0x40C930C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_DBG_IN_GRP_TRANS_0 0x40C94A0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_DBG_IN_GRP_TRANS_1 0x40C94A4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_DBG_IN_GRP_TRANS_2 0x40C94A8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_DBG_STS 0x40C94AC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_DUP_DBG_OUT_RQ_CNT 0x40C94B0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_0 0x40C94B4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_1 0x40C94B8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_2 0x40C94BC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_3 0x40C94C0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_4 0x40C94C4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_5 0x40C94C8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_6 0x40C94CC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_7 0x40C94D0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_8 0x40C94D4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_9 0x40C94D8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_10 0x40C94DC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_11 0x40C94E0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_12 0x40C94E4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_13 0x40C94E8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_14 0x40C94EC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_15 0x40C94F0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_16 0x40C94F4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_17 0x40C94F8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_18 0x40C94FC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_19 0x40C9500
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_20 0x40C9504
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_21 0x40C9508
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_22 0x40C950C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_23 0x40C9510
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_24 0x40C9514
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_25 0x40C9518
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_26 0x40C951C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_27 0x40C9520
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_28 0x40C9524
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_29 0x40C9528
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_30 0x40C952C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_31 0x40C9530
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_32 0x40C9534
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_33 0x40C9538
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_34 0x40C953C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_35 0x40C9540
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_36 0x40C9544
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_37 0x40C9548
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_38 0x40C954C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_39 0x40C9550
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_40 0x40C9554
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_41 0x40C9558
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_42 0x40C955C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_43 0x40C9560
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_44 0x40C9564
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_45 0x40C9568
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_46 0x40C956C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_47 0x40C9570
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_48 0x40C9574
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_49 0x40C9578
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_50 0x40C957C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_51 0x40C9580
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_52 0x40C9584
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_53 0x40C9588
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_54 0x40C958C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_55 0x40C9590
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_56 0x40C9594
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_57 0x40C9598
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_58 0x40C959C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_59 0x40C95A0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_60 0x40C95A4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_61 0x40C95A8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_62 0x40C95AC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CONTEXT_ID_63 0x40C95B0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_0 0x40C95B4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_1 0x40C95B8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_2 0x40C95BC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_3 0x40C95C0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_4 0x40C95C4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_5 0x40C95C8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_6 0x40C95CC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_7 0x40C95D0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_8 0x40C95D4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_9 0x40C95D8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_10 0x40C95DC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_11 0x40C95E0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_12 0x40C95E4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_13 0x40C95E8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_14 0x40C95EC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_15 0x40C95F0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_16 0x40C95F4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_17 0x40C95F8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_18 0x40C95FC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_19 0x40C9600
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_20 0x40C9604
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_21 0x40C9608
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_22 0x40C960C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_23 0x40C9610
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_24 0x40C9614
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_25 0x40C9618
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_26 0x40C961C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_27 0x40C9620
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_28 0x40C9624
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_29 0x40C9628
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_30 0x40C962C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_31 0x40C9630
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_32 0x40C9634
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_33 0x40C9638
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_34 0x40C963C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_35 0x40C9640
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_36 0x40C9644
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_37 0x40C9648
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_38 0x40C964C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_39 0x40C9650
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_40 0x40C9654
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_41 0x40C9658
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_42 0x40C965C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_43 0x40C9660
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_44 0x40C9664
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_45 0x40C9668
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_46 0x40C966C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_47 0x40C9670
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_48 0x40C9674
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_49 0x40C9678
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_50 0x40C967C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_51 0x40C9680
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_52 0x40C9684
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_53 0x40C9688
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_54 0x40C968C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_55 0x40C9690
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_56 0x40C9694
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_57 0x40C9698
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_58 0x40C969C
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_59 0x40C96A0
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_60 0x40C96A4
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_61 0x40C96A8
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_62 0x40C96AC
|
||||
|
||||
#define mmDCORE0_MME_QM_ARC_DUP_ENG_ARC_CID_OFFSET_63 0x40C96B0
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_QM_ARC_DUP_ENG_REGS_H_ */
|
@ -0,0 +1,61 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2020 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/************************************
|
||||
** This is an auto-generated file **
|
||||
** DO NOT EDIT BELOW **
|
||||
************************************/
|
||||
|
||||
#ifndef ASIC_REG_DCORE0_MME_QM_AXUSER_NONSECURED_REGS_H_
|
||||
#define ASIC_REG_DCORE0_MME_QM_AXUSER_NONSECURED_REGS_H_
|
||||
|
||||
/*
|
||||
*****************************************
|
||||
* DCORE0_MME_QM_AXUSER_NONSECURED
|
||||
* (Prototype: AXUSER)
|
||||
*****************************************
|
||||
*/
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_ASID 0x40CAB80
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_MMU_BP 0x40CAB84
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_STRONG_ORDER 0x40CAB88
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_NO_SNOOP 0x40CAB8C
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_WR_REDUCTION 0x40CAB90
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_RD_ATOMIC 0x40CAB94
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_QOS 0x40CAB98
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_RSVD 0x40CAB9C
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_EMEM_CPAGE 0x40CABA0
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_CORE 0x40CABA4
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_E2E_COORD 0x40CABA8
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_WR_OVRD_LO 0x40CABB0
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_WR_OVRD_HI 0x40CABB4
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_RD_OVRD_LO 0x40CABB8
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_HB_RD_OVRD_HI 0x40CABBC
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_LB_COORD 0x40CABC0
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_LB_LOCK 0x40CABC4
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_LB_RSVD 0x40CABC8
|
||||
|
||||
#define mmDCORE0_MME_QM_AXUSER_NONSECURED_LB_OVRD 0x40CABCC
|
||||
|
||||
#endif /* ASIC_REG_DCORE0_MME_QM_AXUSER_NONSECURED_REGS_H_ */
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user