On Fri, Oct 27, 2023 at 11:10:58PM +0100, Jiaxun Yang wrote: > KSEGX_SIZE is defined to size of each KSEG segment. > > TO_CAC and TO_UNCAC are brought to 32bit builds as well, > TO_PHYS remains to be 64bit only as we want people to > use __pa to avoid mixup compat address space. the problem here is, that in the 64bit case the macros work on every address while in 32bit only the first 512MB address space is covered. So there is a reason to not expose TO_CAC/TO_UNCAC for 32bit. Which leaves the problem how to handle all the CKSEG[01]ADDR() cases nicer for 64bit... I'd prefer an extra macro/inline function which handles 32bit and 64bit accordingly. Not sure about the name for it, but maybe something like CKSEG[01]ADDR_OR_64BIT() That would at least make clear (to me) this thing is special and might return a XPHYS uncached address. Thomas. -- Crap can work. Given enough thrust pigs will fly, but it's not necessarily a good idea. [ RFC1925, 2.3 ]