Altera_Forum
Honored Contributor
19 years agoRunning Linux inplace, from EPCS or CFI
I have run into some problems continuing on in my development with the
Altera Cyclone II DSP dev board and uCLinux, related to memory interfacing. (At this stage I have uCLinux running on this board and the DM9000 networking up and running.) The Nios II instruction master cannot address more than 256 MB, and so this means that on my system I can only use 128 MB of the DDR2 DIMM. Since for this project we eventually wanted to use a 1 GB DIMM (for datalogging), this is a problem. The only solution I can see that is possible, unless Altera fix the Nios II so it can address more than 256MB, is to run the Linux kernel in-place, either from the EPCS or an added-on CompactFlash. Then the DDR SDRAM does not have to be put on the instruction master, just the data master, and we can use the full 256MB/1GB for data. My question is whether it is possible to do this? In a normal boot, the zImage is first copied to SDRAM, then decompressed and executed. Is it possible to store the uncompressed kernel and filesystem in flash, such that there is no need to decompress or copy to RAM for execution? Notes: 1) Searching the web, I've found a bit of information on eXecute-In-Place (XIP), but it mostly seems targeted at ARM and MIPS based systems. 2) I do have 1 MB of SRAM which can be mapped to the instruction master as well. Ideally I will use this area to download programs via ftp so I don't need to recompile the kernel every time. 3) Building a kernel with > 64MB RAM requires patching the SystemPTF perl scripts. Let me know if anyone wants the change to go in the main distribution. Regards, Josh