• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Operating System/Drivers
  • Assigned To No-one
  • Operating System Another
  • Severity Low
  • Priority Very Low
  • Reported Version Version 3.2
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by FlynDice - 2009-05-03
Last edited by FlynDice - 2009-06-26

FS#10184 - Add AMBA bus setting assembler routines to mmu-arm.S(used by: gigabeats,MRobe,Creative,as3525)

This patch adds 3 assembler routines that control the relationship between the AMBA bus and the arm processor. I’ve placed them in mmu-arm.s because the same control register that is used to set the mmu properties is used to control the bus relationship. Both gigabeats, the MRobe, and the creative ZVm use this file currently and I’d like to use it for the as3525 targets. I have not #ifdef’d them as I believe they should work for those targets also. These are the same bus setting routines the gigabeat fx uses to switch from MAX freq to NORMAL freq. I have not removed anything, only added the 3 routines so I am pretty confident this would not break another target. I don’t know that I would trust me though so please take a look!

Closed by  FlynDice
2009-06-26 02:30
Reason for closing:  Fixed
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

The need for these routines does not exist anymore after  FS#10048  was committed.

Looks good. I think we can replace the asm code for gigabeat f/x and tms320 with calls to this then.

I believe the place for these routines is in system-arm.c or a dedicated new file.

Putting them in mmu-arm.c is only confusing.

mmu-arm.S! ;)

In fact, mmu-arm.S already contains only semi-related stuff. We should rather rename it. I don’t think these deserve a new file. And I think they should be in a .S, not in a .c.

Which semi-related stuff does it contain?
I thought there is only related stuff : mmu setup, and functions to maintain cache coherency.

Well, all the cache stuff is already only semi-related to the mmu.

MMU is independent of the caches. Also, the icache is not mmu dependent.

I don’t agree that caches are only semi related to mmu.

For example cachable regions have to be declared in the Translation Table which is looked up by the MMU.

And I think the Memory Management Unit “manages” the caches as well since they are memory; but the BUS clocking mode isn’t related to memory at all.

Hence I opt for renaming :)


Available keyboard shortcuts


Task Details

Task Editing