[U-Boot-Users] MMU and Linux kernel booting

Wolfgang Denk wd at denx.de
Tue Dec 7 17:41:03 CET 2004

In message < at> you wrote:
> >... if you need it. Maybe one bank of memory is  sufficient  for  the
> >operation of U-Boot?
> It is definitively sufficient for U-Boot/Linux but I think
> it is not for (please don't blame me) WindowsCE (brrrrr!).

OK - but then there is no need to bother with this problem in U-Boot.

> >Why would you need virtual addresses? U-Boot does not need these  for
> >operation, and Linux will not use these anyway.
> For example U-Boot should let the user to use one virtual and contiguous
> memory region (for this purpose I suggest to introduce something
> like bd->bi_dram_v). For "regular" operations, it could use the
> existing bd->bi_dram fields (for example to set up the memory
> tags for the kernel).

In U-Boot, the user does not need  to  make  any  difference  between
physical  or  virtual  RAM  addresses.  Just provide one mapping that
works. For exmaple, map all your RAM banks  as  one  big  (virtually)
contiguous  area to (virtual) address 0x0000. Then just run U-Boot as
if it were a physical mapping. Nobody will even notice.

Then turn off the MMU when booting your OS. Of  course  the  OS  will
have to know where to find it's memory and how to map it.

Best regards,

Wolfgang Denk

Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
No user-servicable parts inside. Refer to qualified service personnel.

More information about the U-Boot mailing list