public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
@ 2011-12-19 16:01 Michael Kebe
  2011-12-19 17:58 ` Wolfgang Denk
  0 siblings, 1 reply; 14+ messages in thread
From: Michael Kebe @ 2011-12-19 16:01 UTC (permalink / raw)
  To: u-boot

Hi,

I am trying to port support for a board from Oxford Semiconductor to
the current head of the git repository.
Medion released GPL Sources of their P89626 NAS [1].

In these sources there are using an old version 1.1.2 of U-Boot with
some modification a board from Oxford Semiconductor. The board is
called ox820.

I made a clone of the git repo [2] and modified the source to get the
compiliation working. The modifications I made, can be viewed here
[3].

When I am trying to build, I get this error from the linker (I also
tried the toolchain which is included in the download from Medion):

/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12478
/bin/bash: line 1:  5991 Segmentation fault
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld -pie -T
u-boot.lds -Bstatic -Ttext "-1" $UNDEF_SYM
arch/arm/cpu/arm1136/start.o --start-group api/libapi.o
arch/arm/cpu/arm1136/libarm1136.o arch/arm/lib/libarm.o
common/libcommon.o disk/libdisk.o
drivers/bios_emulator/libatibiosemu.o drivers/block/libblock.o
drivers/dma/libdma.o drivers/fpga/libfpga.o drivers/gpio/libgpio.o
drivers/hwmon/libhwmon.o drivers/i2c/libi2c.o drivers/input/libinput.o
drivers/misc/libmisc.o drivers/mmc/libmmc.o drivers/mtd/libmtd.o
drivers/mtd/nand/libnand.o drivers/mtd/onenand/libonenand.o
drivers/mtd/spi/libspi_flash.o drivers/mtd/ubi/libubi.o
drivers/net/libnet.o drivers/net/phy/libphy.o drivers/pci/libpci.o
drivers/pcmcia/libpcmcia.o drivers/power/libpower.o
drivers/rtc/librtc.o drivers/serial/libserial.o drivers/spi/libspi.o
drivers/twserial/libtws.o drivers/usb/eth/libusb_eth.o
drivers/usb/gadget/libusb_gadget.o drivers/usb/host/libusb_host.o
drivers/usb/musb/libusb_musb.o drivers/usb/phy/libusb_phy.o
drivers/usb/ulpi/libusb_ulpi.o drivers/video/libvideo.o
drivers/watchdog/libwatchdog.o fs/cramfs/libcramfs.o
fs/ext2/libext2fs.o fs/fat/libfat.o fs/fdos/libfdos.o
fs/jffs2/libjffs2.o fs/reiserfs/libreiserfs.o fs/ubifs/libubifs.o
fs/yaffs2/libyaffs2.o lib/libfdt/libfdt.o lib/libgeneric.o
lib/lzma/liblzma.o lib/lzo/liblzo.o lib/zlib/libz.o net/libnet.o
post/libpost.o board/ox820/libox820.o --end-group
/home/michael/medion/u-boot-medion-p89626/arch/arm/lib/eabi_compat.o
-L /home/michael/x-tools/arm-unknown-eabi/lib/gcc/arm-unknown-eabi/4.4.6
-lgcc -Map u-boot.map -o u-boot
make: *** [u-boot] Error 139

Here is the code from binutils. The assertion fails in the line with
the BFD_ASSERT
	    case DT_PLTRELSZ:
	      s = bfd_get_section_by_name (output_bfd,
					   RELOC_SECTION (htab, ".plt"));
	      BFD_ASSERT (s != NULL);
	      dyn.d_un.d_val = s->size;
	      bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
	      break;

What I am doing wrong? What is missing? Where should I look know? Is
this a bug in binutils?


Michael


[1] http://www1.medion.de/downloads/download.pl?lang=de&filename=gpl_source_md86407.exe&id=10636&type=software
[2] http://git.denx.de/u-boot.git/
[3] https://github.com/michaelkebe/u-boot-medion-p89626

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
  2011-12-19 16:01 [U-Boot] New Oxford Semiconductor board with assertion fail in linker Michael Kebe
@ 2011-12-19 17:58 ` Wolfgang Denk
  2011-12-19 19:47   ` Michael Kebe
  0 siblings, 1 reply; 14+ messages in thread
From: Wolfgang Denk @ 2011-12-19 17:58 UTC (permalink / raw)
  To: u-boot

Dear Michael Kebe,

In message <CAKKM46savtNOR5qxGcnbJkz76AeSY-Lurh--iN4caPj_sbb1yQ@mail.gmail.com> you wrote:
> 
> When I am trying to build, I get this error from the linker (I also
> tried the toolchain which is included in the download from Medion):
...
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
...

> What I am doing wrong? What is missing? Where should I look know? Is
> this a bug in binutils?

Try a known to be working (with current code) tool chain?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The human mind ordinarily operates at only ten percent of its capaci-
ty - the rest is overhead for the operating system.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
  2011-12-19 17:58 ` Wolfgang Denk
@ 2011-12-19 19:47   ` Michael Kebe
  2011-12-19 20:01     ` Wolfgang Denk
  0 siblings, 1 reply; 14+ messages in thread
From: Michael Kebe @ 2011-12-19 19:47 UTC (permalink / raw)
  To: u-boot

On Mon, Dec 19, 2011 at 18:58, Wolfgang Denk <wd@denx.de> wrote:
>
> Try a known to be working (with current code) tool chain?
>

Dear Wolfgang,

I can built other boards with the same toolchain.

I think I know what I did wrong:

#define CONFIG_SYS_UBOOT_BASE -1
#define CONFIG_SYS_TEXT_BASE -1

To get the preprocessor working I defined these two just with -1.
These are used in the start.S of the arm1176 CPU. I have found the
CONFIG_SYS_UBOOT_BASE address in the Medion source, but the
CONFIG_SYS_TEXT_BASE is still missing. There is no documentation on
this. Any hints?

Michael

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
  2011-12-19 19:47   ` Michael Kebe
@ 2011-12-19 20:01     ` Wolfgang Denk
  2011-12-19 20:33       ` Michael Kebe
  0 siblings, 1 reply; 14+ messages in thread
From: Wolfgang Denk @ 2011-12-19 20:01 UTC (permalink / raw)
  To: u-boot

Dear Michael Kebe,

In message <CAKKM46tNid46GwNL_d+XuX-ga+wt-zg1PGt2-_0WJDkLNiLXuA@mail.gmail.com> you wrote:
>
> CONFIG_SYS_TEXT_BASE is still missing. There is no documentation on
> this. Any hints?

Check the old sources for a board specific config.mk file ...

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
In an infinite universe all things are possible, including the possi-
bility that the universe does not exist.
                        - Terry Pratchett, _The Dark Side of the Sun_

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
  2011-12-19 20:01     ` Wolfgang Denk
@ 2011-12-19 20:33       ` Michael Kebe
  2011-12-19 22:13         ` Wolfgang Denk
  0 siblings, 1 reply; 14+ messages in thread
From: Michael Kebe @ 2011-12-19 20:33 UTC (permalink / raw)
  To: u-boot

On Mon, Dec 19, 2011 at 21:01, Wolfgang Denk <wd@denx.de> wrote:
> Check the old sources for a board specific config.mk file ...

There is this in the old include/configs/ox820.h:

#define STATIC_CS0_BASE_PA      0x41000000
#define	CFG_NAND_BASE	STATIC_CS0_BASE_PA

Do you think that's the correct one?

Michael

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
  2011-12-19 20:33       ` Michael Kebe
@ 2011-12-19 22:13         ` Wolfgang Denk
  2011-12-19 22:26           ` Michael Kebe
  0 siblings, 1 reply; 14+ messages in thread
From: Wolfgang Denk @ 2011-12-19 22:13 UTC (permalink / raw)
  To: u-boot

Dear Michael Kebe,

In message <CAKKM46scTp7XQgGo3F4hpd_sFgO1EoeirpyytBb4394xVfzPTQ@mail.gmail.com> you wrote:
> On Mon, Dec 19, 2011 at 21:01, Wolfgang Denk <wd@denx.de> wrote:
> > Check the old sources for a board specific config.mk file ...
> 
> There is this in the old include/configs/ox820.h:
> 
> #define STATIC_CS0_BASE_PA      0x41000000
> #define	CFG_NAND_BASE	STATIC_CS0_BASE_PA
> 
> Do you think that's the correct one?

No.  As I mentioned, look for a config.mk file in the board directory,
i. e. probably board/ox820/config.mk or similar. This should contain
the definition of TEXT_BASE.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
For every complex problem, there is a solution that is simple,  neat,
and wrong.                                           -- H. L. Mencken

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
  2011-12-19 22:13         ` Wolfgang Denk
@ 2011-12-19 22:26           ` Michael Kebe
  2011-12-20  2:19             ` Paul Gortmaker
  2011-12-20 10:30             ` Michael Kebe
  0 siblings, 2 replies; 14+ messages in thread
From: Michael Kebe @ 2011-12-19 22:26 UTC (permalink / raw)
  To: u-boot

On Mon, Dec 19, 2011 at 23:13, Wolfgang Denk <wd@denx.de> wrote:
> No. ?As I mentioned, look for a config.mk file in the board directory,
> i. e. probably board/ox820/config.mk or similar. This should contain
> the definition of TEXT_BASE.

Thanks, for the hint! There is TEXT_BASE = 0x60d00000.

Here is the output from a bootup of the old U-Boot:
--------------------
Stage-1 Bootloader Tue Aug  9 16:44:00 CST 2011
Attempting to set PLLA to 750MHz ...
  plla_ctrl0 : 0x0000000A
  plla_ctrl1 : 0x000F0000
  plla_ctrl2 : 0x001D01A0
  plla_ctrl3 : 0x00000017
PLLA Set

Setup memory, testing
Reading NAND, Image 0
  Hdr len: 0x0001A94C
  Hdr CRC: 0xF0019DAC
 OK


U-Boot 1.1.2 (Jun 24 2011 - 09:41:57)

U-Boot code: 60D00000 -> 60D1A94C  BSS: -> 60D1F004
RAM Configuration:
        Bank #0: 60000000 128 MB
SRAM Configuration:
        64KB at 0x50000000
NAND:128 MiB
In:    serial
Out:   serial
Err:   serial
Setting Linux mem= boot arg value
Hit any key to stop autoboot:  0
--------------------

Is the "U-Boot code" the address CONFIG_SYS_UBOOT_BASE should be set
to? If so, then both addresses are the same, is that ok?

However even if I try to build with these addresses, the linking
crashes with even more assertion fails:
--------------------
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
(crosstool-NG 1.13.2) 2.21.1 assertion fail
/home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12478
/bin/bash: line 1:  5198 Segmentation fault
/home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld -pie -T
u-boot.lds -Bstatic -Ttext 0x60d00000 $UNDEF_SYM
arch/arm/cpu/arm1176/start.o --start-group api/libapi.o
arch/arm/cpu/arm1176/libarm1176.o arch/arm/lib/libarm.o
common/libcommon.o disk/libdisk.o
drivers/bios_emulator/libatibiosemu.o drivers/block/libblock.o
drivers/dma/libdma.o drivers/fpga/libfpga.o drivers/gpio/libgpio.o
drivers/hwmon/libhwmon.o drivers/i2c/libi2c.o drivers/input/libinput.o
drivers/misc/libmisc.o drivers/mmc/libmmc.o drivers/mtd/libmtd.o
drivers/mtd/nand/libnand.o drivers/mtd/onenand/libonenand.o
drivers/mtd/spi/libspi_flash.o drivers/mtd/ubi/libubi.o
drivers/net/libnet.o drivers/net/phy/libphy.o drivers/pci/libpci.o
drivers/pcmcia/libpcmcia.o drivers/power/libpower.o
drivers/rtc/librtc.o drivers/serial/libserial.o drivers/spi/libspi.o
drivers/twserial/libtws.o drivers/usb/eth/libusb_eth.o
drivers/usb/gadget/libusb_gadget.o drivers/usb/host/libusb_host.o
drivers/usb/musb/libusb_musb.o drivers/usb/phy/libusb_phy.o
drivers/usb/ulpi/libusb_ulpi.o drivers/video/libvideo.o
drivers/watchdog/libwatchdog.o fs/cramfs/libcramfs.o
fs/ext2/libext2fs.o fs/fat/libfat.o fs/fdos/libfdos.o
fs/jffs2/libjffs2.o fs/reiserfs/libreiserfs.o fs/ubifs/libubifs.o
fs/yaffs2/libyaffs2.o lib/libfdt/libfdt.o lib/libgeneric.o
lib/lzma/liblzma.o lib/lzo/liblzo.o lib/zlib/libz.o net/libnet.o
post/libpost.o board/ox820/libox820.o --end-group
/home/michael/medion/u-boot-medion-p89626/arch/arm/lib/eabi_compat.o
-L /home/michael/x-tools/arm-unknown-eabi/lib/gcc/arm-unknown-eabi/4.4.6
-lgcc -Map u-boot.map -o u-boot
make: *** [u-boot] Error 139
--------------------

Regard,
Michael

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
  2011-12-19 22:26           ` Michael Kebe
@ 2011-12-20  2:19             ` Paul Gortmaker
  2011-12-20  3:14               ` Marek Vasut
  2011-12-20  6:27               ` Wolfgang Denk
  2011-12-20 10:30             ` Michael Kebe
  1 sibling, 2 replies; 14+ messages in thread
From: Paul Gortmaker @ 2011-12-20  2:19 UTC (permalink / raw)
  To: u-boot

On Mon, Dec 19, 2011 at 5:26 PM, Michael Kebe <michael.kebe@gmail.com> wrote:

> Here is the output from a bootup of the old U-Boot:

[...]

>
> U-Boot 1.1.2 (Jun 24 2011 - 09:41:57)

[...]

>
> However even if I try to build with these addresses, the linking
> crashes with even more assertion fails:

Everyone always feels that they need to do a big uprev in one
giant step.  That is not an insult in any way -- I've also done the
same thing.  But even if you get it compiled, are you ready to debug
silent-boot-death where you don't get a single byte out the UART?
The probability of this happening is relatively high, since your
origin tree is so old and predates the config.mk removal stuff.

I think in a case like this, you would be well served to start with smaller
steps, since your origin is so old.  Try moving it just to U-Boot-1_1_4 and
see if you can make that work.  THat will ensure your process, and your
toolchain and your install are OK.  Then maybe U-Boot-1_2_0 and then
next to v1.3.0, then v1.3.4, then v2008.10 and so on.

In doing so, you'll have a chance to test your images along the way,
and you'll eventually find the region in which the assertion failures
appear for the 1st time.  Sometimes you simply can't see the problems
by staring at the code; you really need to know at what point they
1st appeared.

Your patches should be largely portable, since they mostly create new
files, and should only make small changes to existing Makefiles, etc.
So the task is not too hard to attack incrementally.

Using "git rebase" and enabling "git rerere" in your .gitconfig will be
something you'll want to make use of.  Once you've got a definitive
"good" version, and a definitive "bad" version, you can even make
use of git bisect, as long as you remember to layer on your patches
at each bisection point before building.

It isn't an answer to your specific problem, but it is a process that
will get you there by yourself, at your own pace.  And once you have
a more concrete focus on what change caused your problem, then
when you do ask for help, you will most likely get better help.

Good luck!
Paul.

> --------------------
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12241
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: BFD
> (crosstool-NG 1.13.2) 2.21.1 assertion fail
> /home/michael/tmp/x/.build/src/binutils-2.21.1a/bfd/elf32-arm.c:12478
> /bin/bash: line 1: ?5198 Segmentation fault
> /home/michael/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld -pie -T
> u-boot.lds -Bstatic -Ttext 0x60d00000 $UNDEF_SYM
> arch/arm/cpu/arm1176/start.o --start-group api/libapi.o
> arch/arm/cpu/arm1176/libarm1176.o arch/arm/lib/libarm.o
> common/libcommon.o disk/libdisk.o
> drivers/bios_emulator/libatibiosemu.o drivers/block/libblock.o
> drivers/dma/libdma.o drivers/fpga/libfpga.o drivers/gpio/libgpio.o
> drivers/hwmon/libhwmon.o drivers/i2c/libi2c.o drivers/input/libinput.o
> drivers/misc/libmisc.o drivers/mmc/libmmc.o drivers/mtd/libmtd.o
> drivers/mtd/nand/libnand.o drivers/mtd/onenand/libonenand.o
> drivers/mtd/spi/libspi_flash.o drivers/mtd/ubi/libubi.o
> drivers/net/libnet.o drivers/net/phy/libphy.o drivers/pci/libpci.o
> drivers/pcmcia/libpcmcia.o drivers/power/libpower.o
> drivers/rtc/librtc.o drivers/serial/libserial.o drivers/spi/libspi.o
> drivers/twserial/libtws.o drivers/usb/eth/libusb_eth.o
> drivers/usb/gadget/libusb_gadget.o drivers/usb/host/libusb_host.o
> drivers/usb/musb/libusb_musb.o drivers/usb/phy/libusb_phy.o
> drivers/usb/ulpi/libusb_ulpi.o drivers/video/libvideo.o
> drivers/watchdog/libwatchdog.o fs/cramfs/libcramfs.o
> fs/ext2/libext2fs.o fs/fat/libfat.o fs/fdos/libfdos.o
> fs/jffs2/libjffs2.o fs/reiserfs/libreiserfs.o fs/ubifs/libubifs.o
> fs/yaffs2/libyaffs2.o lib/libfdt/libfdt.o lib/libgeneric.o
> lib/lzma/liblzma.o lib/lzo/liblzo.o lib/zlib/libz.o net/libnet.o
> post/libpost.o board/ox820/libox820.o --end-group
> /home/michael/medion/u-boot-medion-p89626/arch/arm/lib/eabi_compat.o
> -L /home/michael/x-tools/arm-unknown-eabi/lib/gcc/arm-unknown-eabi/4.4.6
> -lgcc -Map u-boot.map -o u-boot
> make: *** [u-boot] Error 139
> --------------------
>
> Regard,
> Michael
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
  2011-12-20  2:19             ` Paul Gortmaker
@ 2011-12-20  3:14               ` Marek Vasut
  2011-12-20  4:25                 ` Paul Gortmaker
  2011-12-20  6:27               ` Wolfgang Denk
  1 sibling, 1 reply; 14+ messages in thread
From: Marek Vasut @ 2011-12-20  3:14 UTC (permalink / raw)
  To: u-boot

> On Mon, Dec 19, 2011 at 5:26 PM, Michael Kebe <michael.kebe@gmail.com> wrote:
> > Here is the output from a bootup of the old U-Boot:
> [...]
> 
> > U-Boot 1.1.2 (Jun 24 2011 - 09:41:57)
> 
> [...]
> 
> > However even if I try to build with these addresses, the linking
> 
> > crashes with even more assertion fails:
> Everyone always feels that they need to do a big uprev in one
> giant step.  That is not an insult in any way -- I've also done the
> same thing.  But even if you get it compiled, are you ready to debug
> silent-boot-death where you don't get a single byte out the UART?
> The probability of this happening is relatively high, since your
> origin tree is so old and predates the config.mk removal stuff.
> 
> I think in a case like this, you would be well served to start with smaller
> steps, since your origin is so old.  Try moving it just to U-Boot-1_1_4 and
> see if you can make that work.  THat will ensure your process, and your
> toolchain and your install are OK.  Then maybe U-Boot-1_2_0 and then
> next to v1.3.0, then v1.3.4, then v2008.10 and so on.
> 
> In doing so, you'll have a chance to test your images along the way,
> and you'll eventually find the region in which the assertion failures
> appear for the 1st time.  Sometimes you simply can't see the problems
> by staring at the code; you really need to know at what point they
> 1st appeared.
> 
> Your patches should be largely portable, since they mostly create new
> files, and should only make small changes to existing Makefiles, etc.
> So the task is not too hard to attack incrementally.
> 
> Using "git rebase" and enabling "git rerere" in your .gitconfig will be
> something you'll want to make use of.  Once you've got a definitive
> "good" version, and a definitive "bad" version, you can even make
> use of git bisect, as long as you remember to layer on your patches
> at each bisection point before building.
> 
> It isn't an answer to your specific problem, but it is a process that
> will get you there by yourself, at your own pace.  And once you have
> a more concrete focus on what change caused your problem, then
> when you do ask for help, you will most likely get better help.
> 
... or you can just snap in a JTAG debugger, connect GDB and throw some 
break/watch points here and there ;-)

M

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
  2011-12-20  3:14               ` Marek Vasut
@ 2011-12-20  4:25                 ` Paul Gortmaker
  2011-12-20 11:52                   ` Wolfgang Denk
  0 siblings, 1 reply; 14+ messages in thread
From: Paul Gortmaker @ 2011-12-20  4:25 UTC (permalink / raw)
  To: u-boot

On Mon, Dec 19, 2011 at 10:14 PM, Marek Vasut <marek.vasut@gmail.com> wrote:
>> On Mon, Dec 19, 2011 at 5:26 PM, Michael Kebe <michael.kebe@gmail.com> wrote:
>> > Here is the output from a bootup of the old U-Boot:
>> [...]
>>
>> It isn't an answer to your specific problem, but it is a process that
>> will get you there by yourself, at your own pace. ?And once you have
>> a more concrete focus on what change caused your problem, then
>> when you do ask for help, you will most likely get better help.
>>
> ... or you can just snap in a JTAG debugger, connect GDB and throw some
> break/watch points here and there ;-)

And how exactly is a JTAG going to help him resolve compile time
issues he's currently having?   Sure, JTAG is nice for things, and
some are lucky enough to have access to one.  But $ means it is not
something everyone has, and it is not a substitute for thinking your
way through a problem.  I'm more apt to use one to restore a bad
flash image than anything else more complicated.

P.

>
> M
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
  2011-12-20  2:19             ` Paul Gortmaker
  2011-12-20  3:14               ` Marek Vasut
@ 2011-12-20  6:27               ` Wolfgang Denk
  1 sibling, 0 replies; 14+ messages in thread
From: Wolfgang Denk @ 2011-12-20  6:27 UTC (permalink / raw)
  To: u-boot

Dear Paul Gortmaker,

In message <CAP=VYLr60CFQ0dBG_x0djGeT_3d9LaCEtUCapu0yk3DgAXNRpA@mail.gmail.com> you wrote:
>
> > U-Boot 1.1.2 (Jun 24 2011 - 09:41:57)
...
> Everyone always feels that they need to do a big uprev in one
> giant step.  That is not an insult in any way -- I've also done the
> same thing.  But even if you get it compiled, are you ready to debug
> silent-boot-death where you don't get a single byte out the UART?
> The probability of this happening is relatively high, since your
> origin tree is so old and predates the config.mk removal stuff.

The probability of this happening is non-negligible for each smaller
step as well - there have been so many reorganizations and
restructurings you will run into one of these any time.

> I think in a case like this, you would be well served to start with smaller
> steps, since your origin is so old.  Try moving it just to U-Boot-1_1_4 and
> see if you can make that work.  THat will ensure your process, and your
> toolchain and your install are OK.  Then maybe U-Boot-1_2_0 and then
> next to v1.3.0, then v1.3.4, then v2008.10 and so on.

Argh... sorry, but I don't think this is a good idea.  This is just
aprolongated way of continuous frustration, and a lot of completely
wasted efforts.

Come on - porting U-Boot from scratch for a well-supported
architecture is not that hard.  The most efficient way to revive such
an old port is to check what they changed by then ompared to their
respective base version, collect all the information about device
initialization parameters, and then forget that old code.  Instead,
restart with current code, and go through step by step.

Doing this gives you incremental success.

Getting all (or any number) of intermediate versions running is just
incremental frustrations.

It's a matter of taste which one you prefer, but I rather chose the
short and happy path.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Worlds may change, galaxies disintegrate, but a woman always  remains
a woman.
	-- Kirk, "The Conscience of the King", stardate 2818.9

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
  2011-12-19 22:26           ` Michael Kebe
  2011-12-20  2:19             ` Paul Gortmaker
@ 2011-12-20 10:30             ` Michael Kebe
  2011-12-20 11:59               ` Wolfgang Denk
  1 sibling, 1 reply; 14+ messages in thread
From: Michael Kebe @ 2011-12-20 10:30 UTC (permalink / raw)
  To: u-boot

On Mon, Dec 19, 2011 at 23:26, Michael Kebe <michael.kebe@gmail.com> wrote:
> Thanks, for the hint! There is TEXT_BASE = 0x60d00000.
>
> Here is the output from a bootup of the old U-Boot:
> --------------------
> Stage-1 Bootloader Tue Aug ?9 16:44:00 CST 2011
> Attempting to set PLLA to 750MHz ...
> ?plla_ctrl0 : 0x0000000A
> ?plla_ctrl1 : 0x000F0000
> ?plla_ctrl2 : 0x001D01A0
> ?plla_ctrl3 : 0x00000017
> PLLA Set
>
> Setup memory, testing
> Reading NAND, Image 0
> ?Hdr len: 0x0001A94C
> ?Hdr CRC: 0xF0019DAC
> ?OK
>
>
> U-Boot 1.1.2 (Jun 24 2011 - 09:41:57)
>
> U-Boot code: 60D00000 -> 60D1A94C ?BSS: -> 60D1F004
> RAM Configuration:
> ? ? ? ?Bank #0: 60000000 128 MB
> SRAM Configuration:
> ? ? ? ?64KB at 0x50000000
> NAND:128 MiB
> In: ? ?serial
> Out: ? serial
> Err: ? serial
> Setting Linux mem= boot arg value
> Hit any key to stop autoboot: ?0
> --------------------
>
> Is the "U-Boot code" the address CONFIG_SYS_UBOOT_BASE should be set
> to? If so, then both addresses are the same, is that ok?

Thanks for the discussion about how to port a new board into U-Boot.
But I think these questions are forgotten, any further hints?

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
  2011-12-20  4:25                 ` Paul Gortmaker
@ 2011-12-20 11:52                   ` Wolfgang Denk
  0 siblings, 0 replies; 14+ messages in thread
From: Wolfgang Denk @ 2011-12-20 11:52 UTC (permalink / raw)
  To: u-boot

Dear Paul Gortmaker,

In message <CAP=VYLqd4kn7iQwwjDN3PMh3osBY4SsP+XXkzx2FBW=-xFyw9w@mail.gmail.com> you wrote:
>
> > ... or you can just snap in a JTAG debugger, connect GDB and throw some
> > break/watch points here and there ;-)
> 
> And how exactly is a JTAG going to help him resolve compile time
> issues he's currently having?   Sure, JTAG is nice for things, and

Obviously it does not help for compile time errors.

> some are lucky enough to have access to one.  But $ means it is not
> something everyone has, and it is not a substitute for thinking your
> way through a problem.  I'm more apt to use one to restore a bad
> flash image than anything else more complicated.

Indeed there are people who rarely ever use a debugger; instead they
use printf() or even plain LEDs (or other GPIOs) for debugging.

feel free to chose any method you feel comfortable with.

Fact is, that a good debugger like GDB is a powerful tool for the
experienced user that can save _lots_ of time.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
It is a good thing for an uneducated man to read books of quotations.
                        - Sir Winston Churchill _My Early Life_ ch. 9

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] New Oxford Semiconductor board with assertion fail in linker
  2011-12-20 10:30             ` Michael Kebe
@ 2011-12-20 11:59               ` Wolfgang Denk
  0 siblings, 0 replies; 14+ messages in thread
From: Wolfgang Denk @ 2011-12-20 11:59 UTC (permalink / raw)
  To: u-boot

Dear Michael Kebe,

In message <CAKKM46u=4UrB9+9Sn3HDMvdOdtHvO9p6HWdzTY2WpNExXrD_=A@mail.gmail.com> you wrote:
>
> > Is the "U-Boot code" the address CONFIG_SYS_UBOOT_BASE should be set
> > to? If so, then both addresses are the same, is that ok?
> 
> Thanks for the discussion about how to port a new board into U-Boot.
> But I think these questions are forgotten, any further hints?

Not forgotten. But you must not expect that we solve all problems for
you.

CONFIG_SYS_UBOOT_BASE is an undocumented and largely unused variable.
Only very, very few boards define it, and the only plase it ever gets
used is in arch/arm/cpu/arm1176/start.S, and then only if
CONFIG_ENABLE_MMU is set.

We don't know your hardware, we don't know your code. You will have to
figure out yourself if this is something that is imprtant to you.

Please note that the TEXT_BASE value you found looks a bit wrong for
recent versions of U-Boot.  One of the major changes we have in the
past few years was that now U-Boot gets relocated to the end of
physical RAM, and not just copied to a compile-time determined fix
address as before.  I speculate that this setting predates the
relocation, so you need to change the related parts.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Wait!  You have not been prepared!
	-- Mr. Atoz, "Tomorrow is Yesterday", stardate 3113.2

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2011-12-20 11:59 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-19 16:01 [U-Boot] New Oxford Semiconductor board with assertion fail in linker Michael Kebe
2011-12-19 17:58 ` Wolfgang Denk
2011-12-19 19:47   ` Michael Kebe
2011-12-19 20:01     ` Wolfgang Denk
2011-12-19 20:33       ` Michael Kebe
2011-12-19 22:13         ` Wolfgang Denk
2011-12-19 22:26           ` Michael Kebe
2011-12-20  2:19             ` Paul Gortmaker
2011-12-20  3:14               ` Marek Vasut
2011-12-20  4:25                 ` Paul Gortmaker
2011-12-20 11:52                   ` Wolfgang Denk
2011-12-20  6:27               ` Wolfgang Denk
2011-12-20 10:30             ` Michael Kebe
2011-12-20 11:59               ` Wolfgang Denk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox