Re: [uClinux-dev] uClinux dist changes from 20120401 to 20120620

2012-08-09 Thread Luis Alves
Hi Greg,

On Tue, Aug 7, 2012 at 7:38 AM, Greg Ungerer g...@snapgear.com wrote:

 So it looks like LMA's are wrong now. What config switches do you
 have enabled, and what are they set to for the kernel memory layout?

 Important ones to look at are:

   CONFIG_RAMBASE
0x1000

   CONFIG_RAMSIZE
0x7ff000

   CONFIG_VECTORBASE
0x0

   CONFIG_KERNELBASE
0x81

   CONFIG_ROM
y

   CONFIG_RAMKERNEL
not set

   CONFIG_ROMKERNEL
y




 You may need to change this too, with the new linker script:

   $(CROSS_COMPILE)objcopy -O binary \
 -j .rodata \
 -j __param \
 -j __modver \

 -j .data \
 -j .init.text \
 -j .init.data \
 $(ROOTDIR)/$(LINUXDIR)/linux $(IMAGEDIR)/linux.data


Well, it works with these changes.
I was pretty sure I had tried that, I guess I screwed up somewhere...


Thanks a lot,
Luis
___
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev


Re: [uClinux-dev] uClinux dist changes from 20120401 to 20120620

2012-08-07 Thread Greg Ungerer

Hi Luis,

On 06/08/12 00:00, Luis Alves wrote:

Yesterday I have downloaded latest uClinux-dist (20120620). I was
using uClinux-dist-20120401.

After applying my 68000 changes, when targeting the kernel to be
placed on ROM the linker is giving me extra headers (.rodata, __param
and __modver):


The changes to the linker scripts where made to bring the non-mmu
one more into line with the standard mmu one. That means we use
most of the kernels generic linker symbols. (These occasionally
got broken before, since the non-mmu linker scripts was rolling its
own version of quite a few of the section macros).



[...]
linux-3.x/vmlinux: file format elf32-m68k

Sections:
Idx Name  Size  VMA   LMA   File off  Algn
   0 .text 001b4010  0081  0081  2000  2**2
   CONTENTS, ALLOC, LOAD, READONLY, CODE
   1 .rodata   00039a48  1000  009c4010  001b7000  2**4
   CONTENTS, ALLOC, LOAD, READONLY, DATA
   2 __param   0330  0003aa48  009fda58  001f0a48  2**2
   CONTENTS, ALLOC, LOAD, READONLY, DATA
   3 __modver  0288  0003ad78  009fdd88  001f0d78  2**1
   CONTENTS, ALLOC, LOAD, READONLY, DATA
   4 .data 00014860  0003b000  009fe010  001f1000  2**4
   CONTENTS, ALLOC, LOAD, DATA
   5 .init.textd8c2  0005  00a13010  00206000  2**1
   CONTENTS, ALLOC, LOAD, READONLY, CODE
   6 .init.data373c  0005d8c4  00a208d4  002138c4  2**2
   CONTENTS, ALLOC, LOAD, DATA
   7 .bss  caec  00061000  00a24010  00217000  2**4
   ALLOC
   8 .comment  26d0      00217000  2**0
   CONTENTS, READONLY
[...]


So it looks like LMA's are wrong now. What config switches do you
have enabled, and what are they set to for the kernel memory layout?

Important ones to look at are:

  CONFIG_RAMBASE
  CONFIG_RAMSIZE
  CONFIG_VECTORBASE
  CONFIG_KERNELBASE
  CONFIG_ROM
  CONFIG_RAMKERNEL
  CONFIG_ROMKERNEL

The CONFIG_ROMKERNEL is particularly important. The linker script
does different things based on that.



With the previous vmlinux-nommu.lds I had:


[...]
linux-3.x/linux: file format elf32-m68k

Sections:
Idx Name  Size  VMA   LMA   File off  Algn
   0 .text 001edd8c  0081  0081  00028000  2**4
   CONTENTS, ALLOC, LOAD, READONLY, CODE
   1 .data 00015000  1000  1000  1000  2**4
   CONTENTS, ALLOC, LOAD, DATA
   2 .init.textd8c2  00016000  00016000  00016000  2**1
   CONTENTS, ALLOC, LOAD, READONLY, CODE
   3 .init.data373c  000238c4  000238c4  000238c4  2**2
   CONTENTS, ALLOC, LOAD, DATA
   4 .bss  caec  00027000  00027000  00027000  2**4
   ALLOC
   5 .comment  26d0      00215d8c  2**0
   CONTENTS, READONLY
[...]


And my makefile was generating the linux.bin like this:

[...]
$(CROSS_COMPILE)objcopy -O binary -j .data -j .init.text -j .init.data \
$(ROOTDIR)/$(LINUXDIR)/linux $(IMAGEDIR)/linux.data


You may need to change this too, with the new linker script:

  $(CROSS_COMPILE)objcopy -O binary \
-j .rodata \
-j __param \
-j __modver \
-j .data \
-j .init.text \
-j .init.data \
$(ROOTDIR)/$(LINUXDIR)/linux $(IMAGEDIR)/linux.data

Regards
Greg




$(CROSS_COMPILE)objcopy -O binary -j .text \
$(ROOTDIR)/$(LINUXDIR)/linux \
$(IMAGEDIR)/linux.text
cat $(IMAGEDIR)/linux.text $(IMAGEDIR)/linux.data  
$(IMAGEDIR)/linuxrom.bin
[...]


I had to replace the new vmlinux-nommu.lds with the previous one to be
able to generate the bin.

How should I modify the objcopy's so that I can use the new vmlinux-nommu.lds ?


Memory layout is like this:
0x0 - 0x7F: ram (8Mb)
0x80 - 0xBF: flash (4Mb)

Kernel being booted at 0x81 and base ram for linux begining at 0x1000


Thanks,
Luis Alves
___
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev






--

Greg Ungerer  --  Principal EngineerEMAIL: g...@snapgear.com
SnapGear Group, McAfee  PHONE:   +61 7 3435 2888
8 Gardner Close FAX: +61 7 3217 5323
Milton, QLD, 4064, AustraliaWEB: http://www.SnapGear.com
___
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:

[uClinux-dev] uClinux dist changes from 20120401 to 20120620

2012-08-05 Thread Luis Alves
Hi,

Yesterday I have downloaded latest uClinux-dist (20120620). I was
using uClinux-dist-20120401.

After applying my 68000 changes, when targeting the kernel to be
placed on ROM the linker is giving me extra headers (.rodata, __param
and __modver):

[...]
linux-3.x/vmlinux: file format elf32-m68k

Sections:
Idx Name  Size  VMA   LMA   File off  Algn
  0 .text 001b4010  0081  0081  2000  2**2
  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .rodata   00039a48  1000  009c4010  001b7000  2**4
  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 __param   0330  0003aa48  009fda58  001f0a48  2**2
  CONTENTS, ALLOC, LOAD, READONLY, DATA
  3 __modver  0288  0003ad78  009fdd88  001f0d78  2**1
  CONTENTS, ALLOC, LOAD, READONLY, DATA
  4 .data 00014860  0003b000  009fe010  001f1000  2**4
  CONTENTS, ALLOC, LOAD, DATA
  5 .init.textd8c2  0005  00a13010  00206000  2**1
  CONTENTS, ALLOC, LOAD, READONLY, CODE
  6 .init.data373c  0005d8c4  00a208d4  002138c4  2**2
  CONTENTS, ALLOC, LOAD, DATA
  7 .bss  caec  00061000  00a24010  00217000  2**4
  ALLOC
  8 .comment  26d0      00217000  2**0
  CONTENTS, READONLY
[...]




With the previous vmlinux-nommu.lds I had:


[...]
linux-3.x/linux: file format elf32-m68k

Sections:
Idx Name  Size  VMA   LMA   File off  Algn
  0 .text 001edd8c  0081  0081  00028000  2**4
  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data 00015000  1000  1000  1000  2**4
  CONTENTS, ALLOC, LOAD, DATA
  2 .init.textd8c2  00016000  00016000  00016000  2**1
  CONTENTS, ALLOC, LOAD, READONLY, CODE
  3 .init.data373c  000238c4  000238c4  000238c4  2**2
  CONTENTS, ALLOC, LOAD, DATA
  4 .bss  caec  00027000  00027000  00027000  2**4
  ALLOC
  5 .comment  26d0      00215d8c  2**0
  CONTENTS, READONLY
[...]




And my makefile was generating the linux.bin like this:

[...]
$(CROSS_COMPILE)objcopy -O binary -j .data -j .init.text -j .init.data \
$(ROOTDIR)/$(LINUXDIR)/linux $(IMAGEDIR)/linux.data
$(CROSS_COMPILE)objcopy -O binary -j .text \
$(ROOTDIR)/$(LINUXDIR)/linux \
$(IMAGEDIR)/linux.text
cat $(IMAGEDIR)/linux.text $(IMAGEDIR)/linux.data  
$(IMAGEDIR)/linuxrom.bin
[...]


I had to replace the new vmlinux-nommu.lds with the previous one to be
able to generate the bin.

How should I modify the objcopy's so that I can use the new vmlinux-nommu.lds ?


Memory layout is like this:
0x0 - 0x7F: ram (8Mb)
0x80 - 0xBF: flash (4Mb)

Kernel being booted at 0x81 and base ram for linux begining at 0x1000


Thanks,
Luis Alves
___
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev