Skip to contentSkip to conversation

ELDK and suse 9.0

DISCUSSION Kate Alhola 5 participants 6 messages Dec 16, 2003

lore
Share & tools
lore
#0 lore raw

I have user eldk a lot with Redhat 9 but after they discontinued it, i decided to change to
suse 9 but looks a like that least standard eldk 2.1.0 install does not work with suse9

May be i just need to build the rpm packages included in eldk with suse from
sources but i have yet not have time to look out how they differ from standard rpm
that comes with suse. Least symlinking eldk:s own rpm eith system rpm does not work.
It gives just too many error messages about conflicts and dependensies.

I have tried tp get ELDK installed to suse 9.0 but it looks a like that rpm program cpming with it
gives segmentetion fault when it uses build in rpm command. I have tried it with two
diferent Suse 9.0 systems with exactly same results.

There is some debug traces:

install runs and does not give any error messages bus just ends. Running it with strace
indicates that /opt/eldk/bin/rpm gives segmentation fault and running it by strace indicates that that command fails with following log:

Kate

----- Debug traces comes here ------------ [root@katerinaii eldk-ppc-linux-x86]# cat debugout trinity:/katerinaii/kate/denx/eldk-ppc-linux-x86 # ./install -v -d /opt/eldk ppc_82xx

Do you really want to install into /opt/eldk directory[y/n]?: y

Installing cross RPMs

/opt/eldk/bin/rpm -ihv --nodeps ./RPMS/rpm-4.0.3-1.03b_2.i386.rpm
Preparing... ###########################################
[100%]
trinity:/katerinaii/kate/denx/eldk-ppc-linux-x86 # strace /opt/eldk/bin/rpm -ihv --nodeps ./RPMS/rpm-4.0.3-1.03b_2.i386.rpm

----- lots of lines deleted -----

open("/lib/libc.so.6", O_RDONLY) = 7
read(7, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0^\1\000"..., 1024) = 1024
fstat64(7, {st_mode=S_IFREG|0755, st_size=1470060, ...}) = 0 old_mmap(NULL, 1269380, PROT_READ|PROT_EXEC, MAP_PRIVATE, 7, 0) = 0x40244000 mprotect(0x40373000, 28292, PROT_NONE) = 0
old_mmap(0x40373000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 7, 0x12e000) = 0x40373000
old_mmap(0x40378000, 7812, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40378000
close(7) = 0
open("/lib/ld-linux.so.2", O_RDONLY) = 7
read(7, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\n\0\000"..., 1024) = 1024
fstat64(7, {st_mode=S_IFREG|0755, st_size=101556, ...}) = 0 old_mmap(NULL, 88440, PROT_READ|PROT_EXEC, MAP_PRIVATE, 7, 0) = 0x4037a000
mprotect(0x4038f000, 2424, PROT_NONE) = 0
old_mmap(0x4038f000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 7, 0x15000) = 0x4038f000
close(7) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
[root@katerinaii eldk-ppc-linux-x86]#

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#1 lore raw

Kate,

Quoted 4 lines

I have user eldk a lot with Redhat 9 but after they discontinued it, i decided to change to
suse 9 but looks a like that least standard eldk 2.1.0 install does not work with suse9

Wolfgang Denk wrote on the U-Boot mailings list:

Quoted 15 lines

This is a known problem which will be fixed in ELDK-3.0 (due to be out soon).

You have two options:

1) Install on an older SuSE or on a RedHat system and copy the files
2) download the file ftp://ftp.denx.de/pub/tmp/ELDK-update-2.2.0.tar.bz2 Then change into the source tree with the ELDK files and perform the following operations:

        bash$ rm RPMS/rpm-4.0.3-1.03b_2.i386.rpm \
                RPMS/rpm-build-4.0.3-1.03b_2.i386.rpm \
                RPMS/rpm-devel-4.0.3-1.03b_2.i386.rpm \
                tools/usr/lib/rpm/rpmpopt-4.0.3
        bash$ tar jxf /tmp/ELDK-update-2.2.0.tar.bz2
Quoted 6 lines

Then build the ISO image as documented, and try again.

Best regards,

Wolfgang Denk

Both ways work. I am using ELDK-2.2 on SuSE 9.

Good luck,

Steven

--
Steven Scholz

imc Measurement & Control               imc Meßsysteme GmbH
Voltastr. 5                             Voltastr. 5
13355 Berlin                            13355 Berlin
Germany                                 Deutschland
fon: +49 30 467090-0                    Tel: 030 / 467090-0
fax: +49 30 4631576                     fax: 030 / 4631576

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#2 lore raw

reboot by software

Hello!

I have a linux running on my mpc8260 board( power on reset at 0xfff00100, I use 32 bit flash, and directly maping 0xF0000000 ~ 0xFFFFFFF in kernel).

Now, I want to reboot system by software. But, when I jump to 0xfff00100 in kernel mode, it's going dead. Can anybody help me?

Thanks.

John

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#3 lore raw

Re: reboot by software

Dear John,

Quoted 7 lines · in message <000101c3c3b8$68333110$b702a8c0@newrock2> you wrote:

I have a linux running on my mpc8260 board( power on reset at 0xfff00100, I use 32 bit flash, and directly maping 0xF0000000 ~ 0xFFFFFFF in kernel).

Now, I want to reboot system by software. But, when I jump to 0xfff00100 in kernel mode, it's going dead. Can anybody help me?

Jumping to some address does not cause a reboot of the system. After
a reset, the CPU state (especially the state of the memory
controller) is somewhat special. The safest way to cause a clean reboot of the whole system is to actually go through a reset.

Try something like this:

void
m8260_restart(char *cmd)

{
	__volatile__	unsigned char	dummy;
	__volatile__	unsigned int	msr;
	uint		bad_addr;

	/* Get base address mapped by BR0/OR0 */
	bad_addr = ((immap_t *)IMAP_ADDR)->im_memctl.memc_br0 & 0xFFFF8000;
	cli();

	/* Enable CheckStop Reset */
	((immap_t *)IMAP_ADDR)->im_clkrst.car_rmr |= 0x00000001;

	/* Invalidate BR0 mapping */
	((immap_t *)IMAP_ADDR)->im_memctl.memc_br0 = 0;

	/* Set MSR and cause reset */
	__asm__("mfmsr %0" : "=r" (msr) );
	msr &= ~0x1000;
	__asm__("mtmsr %0" : "=r" (msr) );
	dummy = * (unsigned char *) bad_addr;
	printk("Restart failed\n");
	while(1);
}

Best regards,

Wolfgang Denk

--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: [email protected] Bankers do it with interest (penalty for early withdrawal).

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#4 lore raw

Re: reboot by software

In reply to John Zhou
Quoted 8 lines · John Zhou

Hello!

I have a linux running on my mpc8260 board( power on reset at 0xfff00100, I use 32 bit flash, and directly maping 0xF0000000 ~ 0xFFFFFFF in kernel).

Now, I want to reboot system by software. But, when I jump to 0xfff00100 in kernel mode, it's going dead. Can anybody help me?

Just jumping into the reset vector of the ROM/FLASH isn't going to work since Linux is running with the MMU on, etc. What you really need is some way to tell the hardware to reenter the RESET condition.

Probably the best way on that platform is to cause a machine check (checkstop) and set it up to reset on checkstop. Look at the description of HID0 on the 8260 to see how to do it.

Here's how I did it on an 8250 (same core):

    unsigned long hid0;
    // Need interrupts off to force checkstop
    cli();
    ((immap_t *)IMAP_ADDR)->im_clkrst.car_rmr |= 0x01;  // Checkstop reset enable
    // Force a checkstop by turning on parity which is not implemented
    hid0 = mfspr(HID0);
    hid0 |= 0x30000000;
    mtspr(HID0, hid0);

--
Gary Thomas <[email protected]>
MLB Associates

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#5 lore raw
In reply to Kate Alhola
Quoted 5 lines · In message <[email protected]> you wrote:

I have user eldk a lot with Redhat 9 but after they discontinued it, i decided to change to
suse 9 but looks a like that least standard eldk 2.1.0 install does not work with suse9

This is a FAQ. Please see
http://www.denx.de/twiki/bin/view/DULG/ELDKInstallationAborts

Best regards,

Wolfgang Denk

--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: [email protected] The management question ... is not _whether_ to build a pilot system and throw it away. You _will_ do that. The only question is whether to plan in advance to build a throwaway, or to promise to deliver the
throwaway to customers. - Fred Brooks, "The Mythical Man Month"

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/