foss-for-synopsys-dwc-arc-processors/linux

Linux does not boot with L1 and L2 disabled

Opened this issue · 2 comments

Observed with HS58. When I disable L1 and L2 cache by setting ARC_CACHE=n I can see Linux doesn't boot. No signs of life are shown on UART console.

Debugging with gdb shows it crash with 'invalid mem access' message

image

backtrace:

image

I can't reproduce this on nSIM, but that's likely because it doesn't emulate L1/L2 anyway.

@jzbydniewski backtrace above is unfortunately quite misleading as a lot has happened between real problem and halting of the CPU at die(). Nice thing about the Linux kernel tough, even if nothing gets printed to the console, you may just inspect contents of the internal buffer by symbol __log_buf - it will have all what was meant to be printed.
Of that information we're interested in the usual crash dump, and in particular contents of ECR & ERET registers.
Please try to get that data and then based on ERET contents let's see which instruction corresponds to that address in your Linux kernel image.

I can reproduce this problem on HAPS but don't see any messages in UART and __log_buf. I'll see what the problem is there.