Re: MIPS (mt7688): EBase change in U-Boot breaks Linux

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 13 Dec 2018, Daniel Schwierzeck wrote:

> > I'm not so sure, if overwriting 0x80000000 (default value of EBase on
> > this SoC) with the exception handler is allowed. Is this address "zero"
> > handled somewhat specific in MIPS Linux? AFAICT, the complete DDR
> > area on my platform (0x8000.0000 - 0x87ff.ffff) is available for Linux.
> > So allocating some memory for this exception handler seems the right
> > way to go to me.
> >
> 
> maybe that's why some platforms define a load address of 0x80002000 or similar
> to protect this area somehow.

 It is.  MIPS processors before r2 (i.e. r1 and all the legacy ones) did 
not have the CP0.EBase register and the (non-CP0.Status.BEV) exception 
vector base was hardwired to 0x80000000 or 0xffffffff80000000 for 32-bit 
and 64-bit implementations respectively.  Then bootstrap/console monitor 
firmware typically used some RAM right above the exception handler area 
for its own purposes.  Consequently the load address of any executable to 
be run by such firmware had to be set such as to avoid clobbering these 
areas.

 HTH,

  Maciej


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux