OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [nog_patch_61/] [or1ksim/] [cpu/] [common/] [abstract.c] - Diff between revs 560 and 572

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 560 Rev 572
Line 63... Line 63...
 
 
/* It returns physical address. */
/* It returns physical address. */
inline unsigned long translate_vrt_to_phy_add(unsigned long virtaddr, int write_access)
inline unsigned long translate_vrt_to_phy_add(unsigned long virtaddr, int write_access)
{
{
  if (config.ic.tagtype == CT_NONE)
  if (config.ic.tagtype == CT_NONE)
    return virtaddr;
    return immu_translate(virtaddr, write_access);
  else
  else
    if (config.ic.tagtype == CT_VIRTUAL) {
    if (config.ic.tagtype == CT_VIRTUAL) {
      return immu_translate(virtaddr, write_access);
      return immu_translate(virtaddr, write_access);
    }
    }
    else if (config.dc.tagtype == CT_PHYSICAL) {
    else if (config.dc.tagtype == CT_PHYSICAL) {
Line 107... Line 107...
   for physically indexed data cache. It returns physical address. */
   for physically indexed data cache. It returns physical address. */
 
 
unsigned long simulate_dc_mmu_load(unsigned long virtaddr)
unsigned long simulate_dc_mmu_load(unsigned long virtaddr)
{
{
  if (config.dc.tagtype == CT_NONE)
  if (config.dc.tagtype == CT_NONE)
    return virtaddr;
    return dmmu_translate(virtaddr, 0);
  else
  else
  if (config.dc.tagtype == CT_VIRTUAL) {
  if (config.dc.tagtype == CT_VIRTUAL) {
    dc_simulate_read(virtaddr);
    dc_simulate_read(virtaddr);
    return dmmu_translate(virtaddr, 0);
    return dmmu_translate(virtaddr, 0);
  }
  }
Line 133... Line 133...
for physically indexed data cache. It returns physical address. */
for physically indexed data cache. It returns physical address. */
 
 
unsigned long simulate_dc_mmu_store(unsigned long virtaddr)
unsigned long simulate_dc_mmu_store(unsigned long virtaddr)
{
{
  if (config.dc.tagtype == CT_NONE)
  if (config.dc.tagtype == CT_NONE)
    return virtaddr;
    return dmmu_translate(virtaddr, 0);
  else
  else
  if (config.dc.tagtype == CT_VIRTUAL) {
  if (config.dc.tagtype == CT_VIRTUAL) {
    dc_simulate_write(virtaddr);
    dc_simulate_write(virtaddr);
    return dmmu_translate(virtaddr, 1);
    return dmmu_translate(virtaddr, 1);
  }
  }

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.