mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-01-10 20:28:59 +00:00
ppc/85xx: Repack tlb_table to save space
We can pack the initial tlb_table in MAS register format and use write_tlb to set things up. This savings can be helpful for NAND style first stage boot loaders. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
ccea800346
commit
b855dc47de
2 changed files with 15 additions and 15 deletions
|
@ -90,10 +90,11 @@ void init_tlbs(void)
|
|||
int i;
|
||||
|
||||
for (i = 0; i < num_tlb_entries; i++) {
|
||||
set_tlb(tlb_table[i].tlb, tlb_table[i].epn, tlb_table[i].rpn,
|
||||
tlb_table[i].perms, tlb_table[i].wimge,
|
||||
tlb_table[i].ts, tlb_table[i].esel, tlb_table[i].tsize,
|
||||
tlb_table[i].iprot);
|
||||
write_tlb(tlb_table[i].mas0,
|
||||
tlb_table[i].mas1,
|
||||
tlb_table[i].mas2,
|
||||
tlb_table[i].mas3,
|
||||
tlb_table[i].mas7);
|
||||
}
|
||||
|
||||
return ;
|
||||
|
|
|
@ -485,19 +485,18 @@ extern unsigned int setup_ddr_tlbs(unsigned int memsize_in_meg);
|
|||
extern void write_tlb(u32 _mas0, u32 _mas1, u32 _mas2, u32 _mas3, u32 _mas7);
|
||||
|
||||
#define SET_TLB_ENTRY(_tlb, _epn, _rpn, _perms, _wimge, _ts, _esel, _sz, _iprot) \
|
||||
{ .tlb = _tlb, .epn = _epn, .rpn = _rpn, .perms = _perms, \
|
||||
.wimge = _wimge, .ts = _ts, .esel = _esel, .tsize = _sz, .iprot = _iprot }
|
||||
{ .mas0 = FSL_BOOKE_MAS0(_tlb, _esel, 0), \
|
||||
.mas1 = FSL_BOOKE_MAS1(1, _iprot, 0, _ts, _sz), \
|
||||
.mas2 = FSL_BOOKE_MAS2(_epn, _wimge), \
|
||||
.mas3 = FSL_BOOKE_MAS3(_rpn, 0, _perms), \
|
||||
.mas7 = FSL_BOOKE_MAS7(_rpn), }
|
||||
|
||||
struct fsl_e_tlb_entry {
|
||||
u8 tlb;
|
||||
u32 epn;
|
||||
u64 rpn;
|
||||
u8 perms;
|
||||
u8 wimge;
|
||||
u8 ts;
|
||||
u8 esel;
|
||||
u8 tsize;
|
||||
u8 iprot;
|
||||
u32 mas0;
|
||||
u32 mas1;
|
||||
u32 mas2;
|
||||
u32 mas3;
|
||||
u32 mas7;
|
||||
};
|
||||
|
||||
extern struct fsl_e_tlb_entry tlb_table[];
|
||||
|
|
Loading…
Reference in a new issue