As part of the goal of having a GENERIC kernel for both AIM and Book-E,
merge PCPU struct fields into a single unionized struct.
Details
- Reviewers
nwhitehorn
compile for powerpc, powerpc64, with both AIM and Book-E targets.
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 15095 Build 15188: arc lint + arc unit
Event Timeline
Looks great to me (no testing, though).
sys/powerpc/include/pcpu.h | ||
---|---|---|
139 | Maybe we should just take the opportunity to get rid of the PCPU_MD_* #defines and put them inline? Also, we need to be careful that the length of the struct be unchanged (I think it is here). |
sys/powerpc/include/pcpu.h | ||
---|---|---|
139 | I thought about that, but the PCPU_MD_AIM_FIELDS is dependent on 32 or 64-bit, and I didn't feel like changing that first pass. If I do extend 32-bit AIM to support the full SLB and large memory model, I might unify them, but until then, I'd rather just do the bare minimum. |
Why would you want SLB on ppc32? It's only needed to support > 4 GB of VA space, but you can't have that by construction.
I wasn't thinking correctly... I was thinking about the >4GB PA, which that doesn't cover (can we do >4GB PA in 32-bit space on Book-S generically? I only know of the MPC7450-class means, but I don't think that's generic).
On 64-bit CPUs, we can use the exact same bridge code, since the page table format allows it. I have no idea how it works on 32-bit CPUs.