svision: At this point, the port I have is pretty useless until I can get it stabilized.
kmahan: If you've got time to take to read up on the following symptoms, I'd like you to comment on whether or not the problem I'm encountering is something that I may also see in the 2.6.23 if I try porting that to the 547x.
As my port currently sits, The kernel startup fails before reaching the point of mounting the root filesystem. After quite a bit of debugging, I've discovered that the problem lies in the "resume function" within entry.S file. It always fails on the same instruction consistently.
The instruction that fails is attempting to reference memory that doesn't have an appropriate TLB entry. Upon further digging, I found out that the necessary TLB entry was the most recently swapped out one.
The down and dirty specifics at the point of failure:
- The instruction is moveal %a1@(436), %sp
- It's in the second half of the "resume function"
- From my limited understanding, it's pushing information about the new task onto the stack
- The specific virtual address being requested in the first operand is 0xc3831f48
- The DTLB page that covered that address was swapped out during the last TLB miss
- The processor seems to halt after attempting to execute the aforementioned instruction
I guess the question is, why doesn't the request for 0xc3831f48 result in another TLB miss?
Thanks,
Ken.