Franck Baudin | 4 Dec 2003 15:32

trying to boot on ADI coyote

Hi all,

I'm tryning to launch a current on the ADI coyote board : 
http://www.adiengineering.com/productsCoyote.html

This board is quite similar to the IXDP425 board, so I tryed to boot an 
IXDP425 kernel : sys/arch/evbarm/conf/IXDP425

Redboot 1.92 is installed onboard, and succed in booting Linux (2.4 
kernel for coyote) :
    RedBoot> load -r -b 0x1600000 zImage
    Using default protocol (TFTP)
    Raw file loaded 0x01600000-0x016a9d57, assumed entry at 0x01600000
    RedBoot> exec
    Using base address 0x01600000 and length 0x000a9d58
    Uncompressing Linux................................................ 
done, booting the kernel.
    ...

The problem is that netbsd IXDP425 kernel is configured to be loaded at 
0x10200000 (KERNEL_BASE_phys = 0x10200000), and this address is invalid 
on coyote. So I rebuild netbsd t be loaded at a lower address : 
KERNEL_BASE_phys = 0x1200000
    RedBoot>  load -r -b 0x1000000 netbsd.bin
    Using default protocol (TFTP)
    Raw file loaded 0x01000000-0x012abbdb, assumed entry at 0x01000000
    RedBoot> exec 0x1200000
    Using base address 0x01000000 and length 0x002abbdc
    $T050f:01200070;0d:0000b2c0;#3e$T050f:01200070;0d:0000b2c0;#3e

(Continue reading)

Steve Woodford | 4 Dec 2003 18:29
Picon

Re: trying to boot on ADI coyote

Just noticed something else...

> The problem is that netbsd IXDP425 kernel is configured to be loaded
> at 0x10200000 (KERNEL_BASE_phys = 0x10200000), and this address is
> invalid on coyote. So I rebuild netbsd t be loaded at a lower address

That address *is* valid on the Coyote. At least, my Coyote reports the 
following on powerup:

	RAM: 0x10000000-0x12000000, 0x10115668-0x11fdd000 available

And, in fact, I use 0x10200000 here for KERNEL_BASE_PHYS on the board.

Cheers, Steve

Franck Baudin | 5 Dec 2003 08:45

Re: trying to boot on ADI coyote

Steve Woodford wrote:

>>The problem is that netbsd IXDP425 kernel is configured to be loaded
>>at 0x10200000 (KERNEL_BASE_phys = 0x10200000), and this address is
>>invalid on coyote. So I rebuild netbsd t be loaded at a lower address
>>    
>>
>
>That address *is* valid on the Coyote. At least, my Coyote reports the 
>following on powerup:
>
>	RAM: 0x10000000-0x12000000, 0x10115668-0x11fdd000 available
>
>And, in fact, I use 0x10200000 here for KERNEL_BASE_PHYS on the board.
>  
>
Thanks for your advice : I was not compiling in big endian. But the 
problem still remains : I suppose that my coyote or my redboot 
(preinstalled redboot 1.92) is different than yours.

See my redboot log :
    RedBoot(tm) bootstrap and debug environment [ROM]
    Red Hat certified release, version 1.92 - built 13:56:07, Oct 20 2003
    Platform: ADI Coyote (XScale)
    IDE/Parallel Port CPLD Version: 1.0
    Copyright (C) 2000, 2001, 2002, Red Hat, Inc.
    RAM: 0x00000000-0x04000000, 0x0001f960-0x03fd1000 available

I have 64 MBytes of RAM on my coyote, mapped at 0x0, and you have 
32MBytes of RAM mapped at 256MB (0x10000000) : we must have a different 
(Continue reading)

Steve Woodford | 5 Dec 2003 09:44
Picon

Re: trying to boot on ADI coyote

On Friday 05 December 2003 7:45 am, Franck Baudin wrote:

> Thanks for your advice : I was not compiling in big endian. But the
> problem still remains : I suppose that my coyote or my redboot
> (preinstalled redboot 1.92) is different than yours.

Mine came with RedBoot 2.0. Which is odd, since the firmware date is 
earlier than yours:

	RedBoot(tm) bootstrap and debug environment [ROM]
	Non-certified release, version 2.00 - built 16:08:18, Apr  1 2003

	Platform: COYOTE (XScale)

> I have 64 MBytes of RAM on my coyote, mapped at 0x0, and you have
> 32MBytes of RAM mapped at 256MB (0x10000000) : we must have a
> different redboot (did you tweak your redboot ?), or a different
> board release (mine is "COYOTE 4"), or both ;-)

It would seem you have a later revision of board; the IDE interface is 
supposedly not working on mine, though I've never tried to use it.

>  From the ADI Hardware Manual :
> "The lowest 256 Mbyte of address space is configurable, based on the
> value of a configuration register
> located in the expansion-bus controller.

This is true. However, there is *always* an alias of SDRAM starting at 
0x10000000 (the ixp425 can have a maximum of 256MB SDRAM). So I suggest 
changing KERNEL_BASE_PHYS to 0x00200000.
(Continue reading)

Franck Baudin | 18 Dec 2003 11:41

Re: trying to boot on ADI coyote

Hi port-arm,

Just a mail to sum up how to boot NetBSD current on ADI coyote: perhaps 
it could help someone else or it could be integrated later in the source 
tree. Currently,  NetBSD boots but the onboard peripherals are not 
supported (integrated NICs, ADSL, flash, ...).

I've attached the bootlog and the diff obtained with:
    cd src/sys/evbarm && cvs diff -cu

The kernel was compiled with:
    ./build.sh -a armeb -m evbarm kernel=IXDP425

Cheers, Franck
Index: conf/IXDP425
===================================================================
RCS file: /cvsroot/src/sys/arch/evbarm/conf/IXDP425,v
retrieving revision 1.3
diff -u -c -r1.3 IXDP425
*** conf/IXDP425        2003/10/23 10:50:01     1.3
--- conf/IXDP425        2003/12/18 09:17:53
***************
*** 111,117 ****

  # Console options.  The default console is speed is 115200 baud.
  options       CONSPEED=115200         # Console speed
! options       CONUNIT=0               # Console port number

(Continue reading)

Franck Baudin | 16 Dec 2003 15:00

Re: trying to boot on ADI coyote

Steve Woodford wrote:

>This is true. However, there is *always* an alias of SDRAM starting at 
>0x10000000 (the ixp425 can have a maximum of 256MB SDRAM). So I suggest 
>changing KERNEL_BASE_PHYS to 0x00200000.
>
>The kernel is actually much happier running out of the SDRAM alias at 
>0x10000000. See the comment near the end of cpu_reboot() in 
>{ixdp425,coyote}_machdep.c.
>  
>
OK, I changed  KERNEL_BASE_PHYS to 0x00200000 in mk.ixdp425 and in 
ixdp425_start.S :
    Ltable:
    /*      .word   0x10200000 - 0x4000 */
            .word   0x00200000 - 0x4000

I rebuilt kernel with :
    ./build.sh -a armeb -m evbarm kernel=IXDP425

And then I tried it :
    RAM: 0x00000000-0x04000000, 0x0001f960-0x03fd1000 available
    FLASH: 0x50000000 - 0x51000000, 128 blocks of 0x00020000 bytes each.
    RedBoot> load -r -b 0x00200000 -h 10.16.18.145 netbsd.bin
    Using default protocol (TFTP)
    Raw file loaded 0x00200000-0x004b3cd3, assumed entry at 0x00200000
    RedBoot> go
    [ the card doesn't respond anymore ...]

Perhaps should I try to reconfigure redboot to alias memory at 0x10000000 ?
(Continue reading)

Steve Woodford | 16 Dec 2003 15:10
Picon

Re: trying to boot on ADI coyote

On Tuesday 16 December 2003 2:00 pm, Franck Baudin wrote:

>     Raw file loaded 0x00200000-0x004b3cd3, assumed entry at
> 0x00200000 RedBoot> go
>     [ the card doesn't respond anymore ...]
>
> Perhaps should I try to reconfigure redboot to alias memory at
> 0x10000000 ?

Before you do that, there's just one more thing which just occurred to 
me. Since you seem to be using the existing IXDP425 port as a starting 
point, have you altered CONUNIT in the config file to match the Coyote?

IXDP425's console is on UART 0, while the Coyote's console is on UART 1. 
Editing the config file to read "CONUNIT=1" will do the right thing.

You seem to have everything else pretty much sorted.

Cheers, Steve

Franck Baudin | 16 Dec 2003 15:22

Re: trying to boot on ADI coyote

Steve Woodford wrote:

>IXDP425's console is on UART 0, while the Coyote's console is on UART 1. 
>Editing the config file to read "CONUNIT=1" will do the right thing.
>  
>
Many many thanks !

It boots now ;-)

Cheers, Franck.

Steve Woodford | 4 Dec 2003 17:09
Picon

Re: trying to boot on ADI coyote

On Thursday 04 December 2003 2:32 pm, Franck Baudin wrote:

[Booting NetBSD on ADI Coyote]

>     Raw file loaded 0x01000000-0x012abbdb, assumed entry at
> 0x01000000 RedBoot> exec 0x1200000
>     Using base address 0x01000000 and length 0x002abbdc
>     $T050f:01200070;0d:0000b2c0;#3e$T050f:01200070;0d:0000b2c0;#3e

The last time I saw that kind of output on an xscale board it was caused 
by using the wrong endian toolchain to build the kernel.

The IXP425 cpu runs in big-endian mode on the Coyote, so make sure you 
use "build.sh -m evbarm -a armeb" when building the cross-toolchain.

Cheers, Steve


Gmane