porting ARM: remap and MMU questions

Hello

I'm in the process of porting Linux on our board, based on a arm926ejs based multimedia chip. I finished U-Boot, it boots up and transfers control to Linux, sadly the latter hangs at the very beginning, printing only "Uncompressing Lin.. done, booting t".

With the help JTAG I explored contents of "log_buffer": it ends up with "Calibrating delay loop... " (seems function from calibrate_delay() at $(linux)/init/calibrate.c), nothing happens further.

As I see, calibrate_delay() gets invoked a lot later of console_init(), i.e. various messages are supposed to be printed already, bu they are not. I just suspect the problem is somewhere around MMU configuration, which is done on a very early stage, and once we get to console initialization, an invalid serial port address is used -- it's only guess though.

My questions are:

1) how to verify MMU gets configured properly or not? 2) do I have to do remap (that's 0x0 points at RAM) on ARM to start off Linux, or it can live without remap? 3) how is defined CONFIG_PAGE_OFFSET, which is used to configure MMU. I know it's in "make config", but what's behind this parameter?

Thanks.

-- Mark

Reply to
Mark
Loading thread data ...

The vector page is usually at 0.

Reply to
spammers_lie

A quick read of calibrate.c shows that it's waiting for a clock tick. Have you ported the system timer routine, and verified that you have a tick?

--Gene

Reply to
Gene S. Berkowitz

Hello, Gene You wrote on Fri, 16 Jan 2009 02:29:03 GMT:

GSB> A quick read of calibrate.c shows that it's waiting for a clock tick. GSB> Have you ported the system timer routine, and verified that you have a GSB> tick? Thanks for your reply.

I'm afraid I have not. Where is system timer routine usually implemented, could you point me at that spot in kernel? I guess it should be somewhere in mach-/... and later invoked by platform independet code?

-- Mark

Reply to
Mark

I found this, which although specific to MIPS architecture, should get you pointed in the right direction:

formatting link

"Chapter 9 : Board support - system time and timer

Linux relies on an RTC (real-time clock) device to obtain the real calendar data and time when it boots up. It relies on a system timer to advance the tick count, jiffies. If you don't provide proper time and timer code, Linux won't run. In fact it will stick in 'calibrate_delay ()' during the startup process because jiffies is never incremented. (See Appendix B for more details about Linux/MIPS startup sequence)."

--Gene

Reply to
Gene S. Berkowitz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.