Marc,
On Monday 07 May 2007 21:37, Marc Jones wrote:
This looks like a good example of scratchpad setup. The only part I thought missing is the size setting of the GCR register.
To be complete, here comes the missed function.
/* * set_scratch_pad_size - configure a new size * @info: hardware info * @size: new size in bytes * * Note: Call this function with the lock held! * Note: Called with size = 0 will disable the scratch pad ram */ static void set_scratch_pad_size(struct geode_gx1_info * info,u32 size) { u8 ccr3,new_size;
ccr3 = getCx86(CX86_CCR3); setCx86(CX86_CCR3, (ccr3 & 0x0F) | 0x10); /* enable MAPEN */ new_size=getCx86(CX86_GCR) & 0x03; switch (size) { case 0: break; case 2048: new_size |= 0x04; break; case 3072: new_size |= 0x08; break; default: new_size |= 0x0C; break; } setCx86(CX86_GCR,new_size); /* setup the new size */ setCx86(CX86_CCR3, ccr3); }
Juergen