Arm Community
Site
Search
User
Site
Search
User
Groups
Research Collaboration and Enablement
DesignStart
Education Hub
Innovation
Open Source Software and Platforms
Forums
AI and ML forum
Architectures and Processors forum
Arm Development Platforms forum
Arm Development Studio forum
Arm Virtual Hardware forum
Automotive forum
Compilers and Libraries forum
Graphics, Gaming, and VR forum
High Performance Computing (HPC) forum
Infrastructure Solutions forum
Internet of Things (IoT) forum
Keil forum
Morello Forum
Operating Systems forum
SoC Design and Simulation forum
中文社区论区
Blogs
AI and ML blog
Announcements
Architectures and Processors blog
Automotive blog
Graphics, Gaming, and VR blog
High Performance Computing (HPC) blog
Infrastructure Solutions blog
Innovation blog
Internet of Things (IoT) blog
Operating Systems blog
Research Articles
SoC Design and Simulation blog
Tools, Software and IDEs blog
中文社区博客
Support
Arm Support Services
Documentation
Downloads
Training
Arm Approved program
Arm Design Reviews
Community Help
More
Cancel
Support forums
Arm Development Studio forum
ARM1176 boot code issue
Jump...
Cancel
Locked
Locked
Replies
3 replies
Subscribers
121 subscribers
Views
2663 views
Users
0 members are here
Options
Share
More actions
Cancel
Related
How was your experience today?
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion
ARM1176 boot code issue
Offline
sathishpkumar sathishpkumar
over 9 years ago
Note: This was originally posted on 5th June 2009 at
http://forums.arm.com
Hi
I got an issue while writing the ARM1176 bootcode.
I used DCI 0xE1600071 instruction to switch from secure priviliged mode to monitor mode.
After ARM executed this instruction , tarmac.log file is not updated i.e., ARM is not switching to monitor mode but r14_mon and spsr_mon is updated
please let me know what could be the issue
Thanks,
Sathish
Offline
sathishpkumar sathishpkumar
over 9 years ago
Note: This was originally posted on 5th June 2009 at
http://forums.arm.com
hi isogen
yeah i programmed monitor vector base address to 0x20
so when arm executes SMI instruction, it has to jump to 0x28(base address + exception handler)
but it is not happening .
even arm in not in infinite loop as u said..
in my case ARM is not executing any instruction after this..
one more question.. why we need to program the stack of the monitor mode before executing SMI??
--
Sathish
Cancel
Up
0
Down
Cancel
Offline
Peter Harris
over 9 years ago
Note: This was originally posted on 5th June 2009 at
http://forums.arm.com
Have you programmed up the monitor mode vector table, stack register, etc before executing the SMC?
If you haven't reprogrammed the monitor vector base address then you may just be jumping to faulting memory - which causes the core to fault and jump to the monitor mode vector address - i.e. infinite loop.
The Secure World can modify CPSR directly to switch in to monitor mode to perform this initial setup.
Cancel
Up
0
Down
Cancel
Offline
Peter Harris
over 9 years ago
Note: This was originally posted on 9th June 2009 at
http://forums.arm.com
> one more question.. why we need to program the stack of the monitor mode before executing SMI??
Just like most of the other exception modes in ARM, monitor has a local stack pointer stored in r13_mon. If you monitor code does anything with r13 then you need to make sure that it is initialized to a sensible location before using it. You could structure the SMI handler to initialize it to something sensible - so this will depend on how you have structured your monitor-mode code.
When you say "in my case ARM is not executing any instruction after this" what behavior are you seeing in the core - it shouldn't just "not work", I would expect to be seeing an exception of some kind occurring.
Cancel
Up
0
Down
Cancel