All registers? That info won't be available. Do you plan to write a BIOS? You can start high-level on https://www-ssl.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-1… looking for Silvermont.
My 2 cents
The Atom processor is not open hardware so the documents are not publicly available. We are currently working on making more documents for the Edison. As soon as they become available will be posted with the other documents in https://communities.intel.com/community/makers/edison/documentation.
Not all registers. If one wants to write their own SPI driver or I2C driver and so on we need to know how to deal with those registers.
i.e. you don't need documentation for the Atom core but for the Edison SoC, right?
Maybe looking in the Arduino IDE sources already helps to start with?
E.G. in hardware\arduino\edison\variants\edison_fab_c
In your SPI or I2C drivers, are you referring to the device or the SPI/I2C communication in the kernel?
I think I would be happy enough with the SPI/I2C kernel communications in the kernel, without having to have to rebuild my own kernel from scratch (which is an option - though not supported). There is google and other threads that discuss building your own kernel and base kernel sources.
If you are speaking of SPI/I2C drivers for a device, your approach is to get detailed info from the "device component" that you are going to write the driver for (ie a TFT LCD over SPI) and you would write your specific library with routines you want to have with that device. The Edison SDK gives plenty of examples to start off with and creating your own version of SPI.h, SPI.c and libyourdev.so for your specific device.
so mikemoy, let me know, I am wondering if this has been helpful
I was referring to SPI/I2C communication in the kernel. I think its because DMA is not being used.
writing for the kernel is probably further than I want to go at the moment, but who knows - I catch up with you on that road later on.