Re: access memory mapped registers
From: Wolfgang Denk <hidden>
Date: 2003-01-10 01:20:23
In message [off-list ref] you wrote:
I can see if I mmap the internal 860 CPU registers, and screw up that, I will definitely screw up the system, and require it to be reboot. BUt if the hardware we are mapping is outside the CPU internal memory and outside the RAM, shouldn't the failure be limited to the user application only then?
No. For example, assume there is a port pin which is meant as an input, and the signal is driven from external hardware. Now your application program by mistake re-programs this pin as output. You may smoke your board this way.
only the memory regions that is mapped to the ethernet switching chip, even if I screw up on the hardware setup, shouldn't my kernel still be protected? At most, the application faults and I should be able to restart the application without rebooting the system?
There is a simple rule: if you open backdoors in a secure system the result is an insecure system. Write clean code. There is many things you have to keep in mind: * Functionality: you cannot process interrupts in user space * Performance: how do you synchronize your accesses to the hardware? * Communication: How do you know when data has been processed, or has become available, or stable, or ...? * Tricky things: What will the caches in your system do when the application accesses the hardware? How will you address memory? Remember that there are systems where a 32 bit address is not sufficient any more... etc. etc. Write clean code. Wolfgang Denk -- Software Engineering: Embedded and Realtime Systems, Embedded Linux Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd@denx.de Life is a game. Money is how we keep score. - Ted Turner ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/