[uClinux-dev] Help with Motorola 68vz328ads eval board

David E. Gelhar David.Gelhar at Dartmouth.EDU
Mon Mar 17 15:28:56 EST 2003


--- You wrote:
I looked at System.map and it appears that all the text is being placed
at 0x1000000 which is way beyond the end of physical memory (8 Mbytes).
I noticed that the image.brec (converted image.bin) is 4066682 bytes.
I'll need to probably used the upper 4 Mbytes for the kernel on this
first pass.  I'll work on slimming it down later.  One question is how
much of the b-record file actually ends up in memory, maybe I'll need
less.  Anyway, I went to
linux-2.4.X/arch/m68knommu/platform/68VZ328/ucdimm and found rom.ld.  I
hope this is the file that you are referring to for my initial
platform?  So, now to the question.  To do what you suggest, how do I
change this file?  It looks like this:

MEMORY
     {
     romvec: ORIGIN = 0x10c10000, LENGTH = 0x00000400
     flash: ORIGIN = 0x10c10400, LENGTH = 0x001fec00
     eflash: ORIGIN = 0x10d00000, LENGTH = 0
     ramvec: ORIGIN = 0x00000000, LENGTH = 1024
     ram: ORIGIN = 0x00020000, LENGTH = 0x00800000 - 0x00020000
     eram: ORIGIN = 0x00800000, LENGTH = 0
     }

INCLUDE arch/m68knommu/platform/68VZ328/ucdimm/fixed.ld

Do I shift romvec and ram?

FM
--- end of quote ---

Here's the map I'm using on the 68sz328ads.

MEMORY
         {
/* configure to load into memory at 0x01000000 (sdram bank1, assuming 
default
   memory map for the ads board) "romvec" and "flash" sections are in 
this
   part of memory. First 16MB of memory are usable as OS RAM. */
         romvec : ORIGIN = 0x01000000, LENGTH = 0x00000400
         flash  : ORIGIN = 0x01000400, LENGTH = 0x01000000 - 0x00000400
         eflash : ORIGIN = 0x02000000, LENGTH = 0
         ramvec : ORIGIN = 0x00000000, LENGTH = 0x00000400
/* 0x400 - 0x20000 unused */
         ram    : ORIGIN = 0x00020000, LENGTH = 0x01000000 - 0x00020000
         eram   : ORIGIN = 0x01000000, LENGTH = 0
         }

INCLUDE arch/m68knommu/platform/68SZ328/ads/fixed.ld


This board 32MB of ram, so I'm loading the kernel into high memory at 
0x01000000 (16MB). If your board has only 8MB of ram, you'll have to 
adjust. Maybe load your kernel at 4MB (romvec=0x00400000). "romvec" is 
the download address; don't forget to fix your b-record perl script to 
use that offset -- i.e., the first byte of "image.bin" should get 
downloaded into memory at 0x00400000. "flash" is the starting address; 
jump there to boot the kernel.

"eflash" and "eram" mark the end of the "flash" and "ram" sections 
respectively; when you change the origin/length of "flash" or "ram", 
don't forget to make the corresponding change to "eflash"/"eram"

--- You wrote:
I noticed that the image.brec (converted image.bin) is 4066682 bytes.
I'll need to probably used the upper 4 Mbytes for the kernel on this
first pass.
--- end of quote ---

The b-record file is very large because everything is ASCII text for 
the download, but the amount of space it actually takes up in memory is 
much less; it's the size of image.bin that you should be looking at.




More information about the uClinux-dev mailing list