Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposed patch for issue #29 (related to RCM4110 Rev F hardware) #30

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

tomlogic
Copy link
Contributor

@tomlogic tomlogic commented Apr 6, 2021

This branch has the proposed patch to resolve issue #29, and will become part of the master branch once approved for release.

The are multiple reasons to enable early /OE in MTCR, so do so whenever
necessary and don't disable it for any reason.
Other products that enable early /OE do so before enabling the clock
doubler or the spectrum spreader.  The RCM4110 doesn't use a clock
doubler and can be configured with a disabled spectrum spreader.
Yet it may still need to have early /OE enabled to meet timing
requirements of 55ns flash used in RCM4110 (part 20-101-1093) Rev F.

This change enables early /OE before writing to MB0CR and disabling
wait states.  It also ensures we enable the feature even in firmware
with a disabled spectrum spreader.
@@ -122,8 +122,6 @@ _enableClockModulation::
bool hl
#if ENABLE_SPREADER == 0 // spreader disabled
xor a
ld (MTCRShadow), a
ioi ld (MTCR), a // normal /OE0 and /OE1 timing
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even with the spreader disabled, we should keep the "early /OE" setting on products that have enabled it.

ld a, 0x0C
ioi ld (MTCR), a
#endif

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change enables "early /OE" on the RCM4110 before reaching code that configures MB0CR for 0 wait states, and therefore will access the RCM4110's 55ns flash at full speed.

ioi ld (MTCR), a ; first, update /OE0, /OE1 early output enable
ld (MTCRShadow), a

.notEarlyOutputEnable:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change leaves MTCR unmodified when the clock doubler isn't enabled -- allowing the RCM4110 setting from line 1881 to remain in place.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant