Szwg Spec Xip

Introduction

 * This method is for Kernel RAM size reduction.
 * XIP(eXecution In Place) is the technique that kernel image is directly executed from ROM/Flash, instead of copying.

Rationale

 * This technique saves Kernel RAM usage by not making copy on RAM, while it requires a little bit more ROM because the kernel in ROM is the executable image - not compressed.

Specifications

 * Please refer to the BTWG Kernel XIP page:

KernelXIPSpecification_R2

Notes(informational and non-normative)
Pros and Cons:
 * Compared to typical boot(normalizer), RAM usage decreases more than 80% (or 1Mbyte to 1.4Mbyte).
 * ROM usage increases about twice (or 600Kbyte to 680Kbyte).
 * As positive side effect, the boot up time becomes 30% faster. This is because of the following reason.
 * 1) XIP avoids copying the executable and read-only data portions, but not the read/write data segments;
 * 2) Technically, a non-XIP kernel need not be stored compressed, although some amount of additional time would be needed to copy the uncompressed data from ROM to RAM.
 * As negative side effect, the execution speed is slow. (note: bigger number shows faster execution in Unix Bench. The number of 10 correspond the performance of SPARC 60MHz). This is because of the memory access speed.
 * There may be some limitation on Kernel debug. Usually, debugger replace the program code with "trap instruction" to set breakpoint. This method can be used only when the code is in re-writable memory (RAM). Flash can be re-writable memory but it requires sector by sector write. It would be too slow if the debugger does that way.

Actual data is shown in Appendix ( [wiki:Appendix A_R2])

Remaining Issues

 * Some data on the platform are still missing.