# Acces NS9210 registers from user program

**URL:** <https://forums.digi.com/t/acces-ns9210-registers-from-user-program/6137>\
**Category:** Linux\
**Created:** [March 22, 2010, 2:55pm UTC](https://forums.digi.com/t/acces-ns9210-registers-from-user-program/6137 "2010-03-22T14:55:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![katho](https://avatars.discourse-cdn.com/v4/letter/k/e495f1/32.png) [@katho](https://forums.digi.com/u/katho)\
**Post date:** [March 22, 2010, 2:55pm UTC](https://forums.digi.com/t/acces-ns9210-registers-from-user-program/6137/1 "2010-03-22T14:55:00Z")

</div>

Hello,

I need to acces the NS9210 Special Function Registers like the SPI configuration register.  
I’m however new to linux and can seem to find a way to access this register directly from my c program.

Does anyone know how to do this?

Thanks in advance,  
Ive

---

<div class="post-metadata">

**Author:** ![LeonidM](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@LeonidM](https://forums.digi.com/u/LeonidM)\
**Post date:** [March 22, 2010, 5:48pm UTC](https://forums.digi.com/t/acces-ns9210-registers-from-user-program/6137/2 "2010-03-22T17:48:05Z")

</div>

You cannot access memory or memory mapped registers from Linux user space directly.  
In general you should write a kernel module to access physical memory and ASIC registers,  
[http://www.makelinux.net/ldd3/chp-2-sect-3.shtml](http://www.makelinux.net/ldd3/chp-2-sect-3.shtml)  
the module will look like this (just found on google, can’t guarantee it will work):  
[http://www.mail-archive.com/freebsd-hackers@freebsd.org/msg66826.html](http://www.mail-archive.com/freebsd-hackers@freebsd.org/msg66826.html)  
[http://www.mail-archive.com/freebsd-hackers@freebsd.org/msg66849.html](http://www.mail-archive.com/freebsd-hackers@freebsd.org/msg66849.html)

but as an alternative take a look at example:  
DigiEL\_LiveDVD/toolchain/builder/packages/memwatch  
This example shows how to access real memory/registers from user space in a more simple way and it was tested to work on DEL.

---

<div class="post-metadata">

**Author:** ![katho](https://avatars.discourse-cdn.com/v4/letter/k/e495f1/32.png) [@katho](https://forums.digi.com/u/katho)\
**Post date:** [March 23, 2010, 8:37am UTC](https://forums.digi.com/t/acces-ns9210-registers-from-user-program/6137/3 "2010-03-23T08:37:04Z")

</div>

Thanks,

the memwatch demo from the cd was what i was looking for

---

<div class="post-metadata">

**Author:** ![katho](https://avatars.discourse-cdn.com/v4/letter/k/e495f1/32.png) [@katho](https://forums.digi.com/u/katho)\
**Post date:** [March 23, 2010, 1:49pm UTC](https://forums.digi.com/t/acces-ns9210-registers-from-user-program/6137/4 "2010-03-23T13:49:00Z")

</div>

Seems like i’m not there jet…  
I was able to read/write the registers, but when i tried to write to the SPI Control registers (0x9003\_1000 - 0x9003\_7FFF), they didn’t change.  
I’ve been searching for a while now what may be the cause of this problem, but so far i stil can’t write the SPI control register.

Thanks in advance,  
Ive

---

<div class="post-metadata">

**Author:** ![LeonidM](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@LeonidM](https://forums.digi.com/u/LeonidM)\
**Post date:** [March 23, 2010, 8:59pm UTC](https://forums.digi.com/t/acces-ns9210-registers-from-user-program/6137/5 "2010-03-23T20:59:18Z")

</div>

Are you able to write/read other registers? Perhaps SPI has to be enabled somewhre in like master reset regeter or master clock register or both…

---

<div class="post-metadata">

**Author:** ![katho](https://avatars.discourse-cdn.com/v4/letter/k/e495f1/32.png) [@katho](https://forums.digi.com/u/katho)\
**Post date:** [March 26, 2010, 8:05am UTC](https://forums.digi.com/t/acces-ns9210-registers-from-user-program/6137/6 "2010-03-26T08:05:32Z")

</div>

thanks for the reply, you were right: if we enable the spi master driver we can write to the spi registers and change the settings for spi slave.

thanks
