
Hello All,
I've noticed some E500 related files (start.S and lib-ppc/board.c, I don't know if others) have been changed with comment "E500 update: repoint IVPR to RAM when code is relocated". I don't understand the need for this change. Traps start in flash, with IVPR set to TEXT_BASE in start.S. Later, this recent patch relocates them to the same code but now in ram, after u-boot's relocation. Later in lib_ppc/board.c:board_init_r() they are then relocated to the beggining of ram (IVPR = 0). Why do we need this "IVPR dance"? What does the "repoint IVPR do RAM" patch fixes?
Thank you All and Best Regards, Nuno

Hi Nuno,
That was my patch, but I need to work from memory as I'm at a different job w/o an E500 at hand. As I recall, the problem was this:
--there is a window during very early linux startup when it has removed the TLB entries setup by u-boot and is building its own --using a BDI2000 trying to set breakpoints in this part of the linux code --the E500 part wants to fetch the debug vector before passing control to the BDI --if this fetch goes to an unmapped region of address space, the E500 is off in the weeds and stops responding to the BDI
Relocating the IVPR to ram at the same time that the rest of the image is moved to ram addressed this problem.
I don't recall the third piece of code that you mention, so I don't know how that interacts. (And my attempt to cg-clone u-boot.git gave me a 404 error for one of the pack files part way through the download; I'll try again later.)
I hope my memory isn't too faulty and that this is helpful.
Cheers, Kylo
On 12/7/05, Nuno João (Ext_NBS) nuno.joao-ext_nbs@siemens.com wrote:
Hello All,
I've noticed some E500 related files (start.S and lib-ppc/board.c, I don't know if others) have been changed with comment "E500 update: repoint IVPR to RAM when code is relocated". I don't understand the need for this change. Traps start in flash, with IVPR set to TEXT_BASE in start.S. Later, this recent patch relocates them to the same code but now in ram, after u-boot's relocation. Later in lib_ppc/board.c:board_init_r() they are then relocated to the beggining of ram (IVPR = 0). Why do we need this "IVPR dance"? What does the "repoint IVPR do RAM" patch fixes?
Thank you All and Best Regards, Nuno
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_idv37&alloc_id%16865&opclick _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users
participants (2)
-
Kylo Ginsberg
-
Nuno João (Ext_NBS)