- ppc: Add hardcoded remaps for ebony board

This commit is contained in:
Jan Stoess 2010-07-06 19:42:28 +02:00
parent 596dfada81
commit a26b69835c
3 changed files with 10 additions and 6 deletions

View File

@ -96,7 +96,7 @@ public:
void free_asid(word_t asid)
{
list_entry[asid] = free_list;
free_list = (word_t*)&list_entry[asid];
free_list = (word_t *) &list_entry[asid];
}
void allocate_asid(T* space)

View File

@ -1,6 +1,6 @@
/*********************************************************************
*
* Copyright (C) 2000-2006, Karlsruhe University
* Copyright (C) 2000-2006, 2010, Karlsruhe University
*
* File path: generic/mapping.cc
* Description: Generic mapping database implementation

View File

@ -335,7 +335,6 @@ void space_t::flush_tlbent( space_t *curspace, addr_t addr, word_t log2size )
if (ppc_tlbsx((word_t)addr, idx))
{
TRACEF("invalidating TLB entry %d\n", idx);
ppc_tlb0_t::invalid().write(idx);
swtlb.set_free(idx);
}
@ -347,13 +346,13 @@ void space_t::arch_free()
}
#define RELOC(s0addr, physaddr, size) \
case s0addr ... s0addr + size - 1: paddr = physaddr + reinterpret_cast<paddr_t>(addr_offset(addr, -s0addr)); break;
case s0addr ... s0addr + size - 1: paddr = physaddr + reinterpret_cast<paddr_t>(addr_offset(addr, -s0addr)); break;
/* XXX: remove remapping */
paddr_t space_t::sigma0_translate(addr_t addr, pgent_t::pgsize_e size)
{
paddr_t paddr = reinterpret_cast<paddr_t>(addr);
#ifdef CONFIG_PLAT_440_BGP
#if defined(CONFIG_PLAT_440_BGP)
switch(reinterpret_cast<word_t>(addr))
{
RELOC(0xff000000, 0x600000000ULL, 0x4000); // DMA
@ -363,6 +362,11 @@ paddr_t space_t::sigma0_translate(addr_t addr, pgent_t::pgsize_e size)
RELOC(0xff021000, 0x611000000ULL, 0x1000); // Tree Ch1
RELOC(0xff030000, 0x720000000ULL, 0x10000); // Tomal, Xemac, xgmii
}
#elif defined(CONFIG_PLAT_440_EBONY)
switch(reinterpret_cast<word_t>(addr))
{
RELOC(0xf0000000, 0x140000000ULL, 0x10000000); // PERIPHERAL_BASE
}
#endif
return paddr;
}