1
0
mirror of https://github.com/wfjm/w11.git synced 2026-04-27 04:37:55 +00:00
Files
wfjm.w11/doc/w11a_diff_70_mmu_stklim_prio.md
wfjm 2407e662a9 pdp11_sequencer: BUGFIX: get correct PS after vector push abort
- rtl/w11a
  - pdp11.vhd: add cpustat_type in_vecflow
  - pdp11_sequencer.vhd: BUGFIX: get correct PS after vector push abort
- tools
  - tcode/cpu_details.mac: add test A3.5
  - tcode/cpu_mmu.mac: add test C2.5, C2.6, C2.7
  - xxdp/ekbee1_patch_1170.scmd: fix test 122
  - xxdp/ekbee1_patch_w11a.tcl: fix test 122
2022-12-12 09:02:34 +01:00

1.0 KiB

Known differences between w11a and KB11-C (11/70)

MMR0 abort flags are set when stack limit abort done

Let's assume a case where two aborts are present:

  • the MMU rejects the access, e.g. because the page is non-resident
  • the access is a kernel stack write and violates the stack limit

Both checks run in parallel in hardware. The MMU logic uses the access control field and the page length field to check whether access is allowed. And the effective address is compared with the stack limit.

In the KB11-C processor, the MMR0 abort bits are not set in case of a red zone stack abort. The case described above leads to a vector 4, as it should be, and does not set an abort bit in MMR0.

The w11 does not implement this suppression, the MMU logic and the stack limit check logic are independent. The case described above leads to a vector 4, but also sets an abort bit in MMR0.

The ekbee1 diagnostic tests this behavior in test 122. This test is modified when executed on w11 (see patch).