Sorry, guys, I have no idea whether it makes you feel uncomfortable the way I ask questions. If yes, I apologize. But, I really don't understand the way uboot branch to nor flash, branch to ram. I have read the source code in the 83xx/start.S file for many times, and I have looked up the archives of uboot mailinglist in Dec. 2010. I found that the way start.S is written is for position independent code. I really know little with this kind of impelmentation. Is there anyone who is willing to give some guidance, such as website? Thanks a lot. Best Regards, Shawn
---------------------------------------- > From: programas...@hotmail.com > To: u-boot@lists.denx.de > Subject: problem with mpc837x start.S > Date: Wed, 27 Jul 2011 06:21:13 +0000 > > > Hello, boys and girls, my name is shawn Bai. I am new here and hope not > disturb you. > Although I have not posted before, what you do is very helpful to me to > understand what is bsp, how it runs, and so on. > I don't know whether the question below is mentioned or not before. > If yes, do you mind telling me where I can find the answer. > Thanks in advance. > > The question is about arch\powerpc\cpu\83xx\start.S. > the demo board I use is MPC837xERDB, there is 8MBytes Nor flash on it. > by default, uboot is booted from lower address, it means BMS field in HRCW is > 0, which will affect value of MSR[IP] later. > First instruction locates at _start label in uboot. > Before first instruction runs, hardware reset configuration word will be > loaded to make some basic configuration. > Before branching to MONITOR_BASE+in_flash using blr instruction, size of LCS0 > is inflated to 4GBytes, > and eLBC access window 1 is configured with BAR MONITOR_BASE, and SIZE > 8MBytes. > After this is done, blr to MONITOR_BASE+in_flash. > after branching to MONITOR_BASE+in_flash, LCS0 BAR is modified to > MONITOR_BASE, and its size is configured with 8Mbytes again. > This is what I know. > But the problem which is confused to me is > after reset, the default value of LCS0 BAR is 0x0000_0000, and its size is > 8Mbytes. > In order to branch to MONITOR_BASE+in_flash, inlarge Nor flash to 4GB, and > configure eLBC access window 1. > But the actual size of Nor flash is 8MB , even after inlarging it, where > (MONITOR_BASE+in_flash) points to? why? > why does branching to in_flash need absolute address? and make absolute > address like this? > I rack my brains, but there is no result. > Do you mind showing me a way? > Thanks very much. > > Shawn Bai > > > > > ------------------------------ > > > > _______________________________________________ > > U-Boot mailing list > > U-Boot@lists.denx.de > > http://lists.denx.de/mailman/listinfo/u-boot > > > > > > ************************************** _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot