Commit c569ac04 authored by Robert Sprowson's avatar Robert Sprowson

Have the DMM respect multiple MFLAG requests

When several initiators set their MFLAGs, handle this gracefully by weighting the requests forwarded to the memory controller, rather than blocking one. The weight value is just the recommended one from the datasheet, the units seem arbitrary.
Fixes a problem with large memory moves (eg. dragging a full size window in a 1920x1200x32bpp @ 60Hz mode) starving the video DMA because both waved their MFLAGs and one of the two lost.

Version 0.07. Tagged as 'Titanium-0_07'
parent 8b64db9c
/* (0.06)
/* (0.07)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 0.06
#define Module_MajorVersion_CMHG 0.07
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 29 Mar 2018
#define Module_Date_CMHG 05 Apr 2018
#define Module_MajorVersion "0.06"
#define Module_Version 6
#define Module_MajorVersion "0.07"
#define Module_Version 7
#define Module_MinorVersion ""
#define Module_Date "29 Mar 2018"
#define Module_Date "05 Apr 2018"
#define Module_ApplicationDate "29-Mar-18"
#define Module_ApplicationDate "05-Apr-18"
#define Module_ComponentName "Titanium"
#define Module_ComponentPath "cddl/RiscOS/Sources/HAL/Titanium"
#define Module_FullVersion "0.06"
#define Module_HelpVersion "0.06 (29 Mar 2018)"
#define Module_LibraryVersionInfo "0:6"
#define Module_FullVersion "0.07"
#define Module_HelpVersion "0.07 (05 Apr 2018)"
#define Module_LibraryVersionInfo "0:7"
......@@ -2783,6 +2783,10 @@ DMM_SYSCONFIG # 4
DMM_LISA_LOCK # 4
DMM_LISA_LOCK_LOCK * 1:SHL:0
DMM_EMERGENCY # 4
DMM_EMERGENCY_WEIGHT_SHIFT * 16
DMM_EMERGENCY_WEIGHT_MASK * &1F:SHL:DMM_EMERGENCY_WEIGHT_SHIFT
DMM_EMERGENCY_WEIGHT_NOMINAL * 8:SHL:DMM_EMERGENCY_WEIGHT_SHIFT
DMM_EMERGENCY_ENABLE * 1:SHL:0
# 7*4
DMM_LISA_MAP_0 # 4
DMM_LISA_MAP_1 # 4
......
......@@ -811,6 +811,10 @@ SetupDMM ROUT
STR ip, [a3, #DMM_LISA_MAP_0]
STR ip, [a4, #MPU_MA_LISA_MAP_0]
; Enable MFLAG venting
LDR ip, =DMM_EMERGENCY_WEIGHT_NOMINAL :OR: DMM_EMERGENCY_ENABLE
STR ip, [a3, #DMM_EMERGENCY]
MOV a1, v1
Pull "v1-v3, pc"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment