Skip to contentSkip to conversation

mips: PMC MSP71xx mips common

PATCH Marc St-Jean 1 participant 1 message Feb 28, 2007 MIPS

lore
Share & tools
lore
#0 lore raw
Quoted 46 lines · Ralf Baechle
Quoted 10 lines · Marc St-Jean
Quoted 9 lines · Ralf Baechle
Quoted 7 lines · Thiemo Seufer

Something like

#if LOADADDR == 0xffffffff80000000
      .fill   0x400

#endif

but by defining an appropriate name in arch/mips/Makefile

instead of

Quoted 7 lines
Quoted 7 lines
Quoted 1 line

externalizing the load-y/LOADADDR there.

Basically a good idea but it will fail for 64-bit kernels so the test would need to be extended to cover XKPHYS as well. Also R2 processors which have the c0_ebase registers do no need to reserve space for exception handlers as they can easily move them elsewhere.

Quoted 5 lines
Quoted 1 line

Ralf

Hi Ralf,

From your description it sounds like not all R2 CPUs have c0_ebase

registers?

Quoted 2 lines

I don't know how to check for c0_ebase from the pre-processor, the

test below

Quoted 1 line

assumes they all do.

Sorry for being ambigous. All R2 processors have ebase. However Linux happens to support older processors as well, that was my point.

Quoted 5 lines

How about something like:

#if (defined(CONFIG_SYS_HAS_CPU_MIPS32_R1) && \
                 VMLINUX_LOAD_ADDRESS == CKSEG0) || \
         ((defined(CONFIG_SYS_HAS_CPU_MIPS64_R1) || 

defined(CONFIG_SYS_HAS_CPU_MIPS64_R2)) && \

Quoted 3 lines
                 VMLINUX_LOAD_ADDRESS == XKPHYS)
      .fill 0x400

#endif

There are several potencial addresses in XKPHYS, so if anything:

Quoted 8 lines
#if !defined(CONFIG_CPU_MIPSR2) && \
    ((VMLINUX_LOAD_ADDRESS == CKSEG0) || \
     (VMLINUX_LOAD_ADDRESS & 0xc7ffffffffffffffUL) == XKPHYS)

However even where ebase actually exists there might be reasons not to use it. So a config option might be the safe thing to do.

Ralf

OK, I'll introduce a CONFIG_NO_EXCEPT_FILL as proposed earlier and select it in our platform configuration section.

Marc