NSLU2-Linux
view · edit · print · history

Info.RedBootSequence History

Hide minor edits - Show changes to markup

July 27, 2009, at 07:03 PM by tms13 -- remove stray apostrophe
Changed lines 33-34 from:

1. Power is applied, and the IXP420 performs a power-on reset (starting execution at address 0x00000000). At reset, the IXP420's expansion bus memory area is mapped to the lowest 256MB of the address space (in addition to it's permanent mapping at 0x50000000 to 0x5FFFFFFF). Therefore, the Redboot firmware image at the start of the flash memory (which is normally mapped at 0x50000000, but which appears at 0x00000000 immediately after reset) is the first code to be executed after reset.

to:

1. Power is applied, and the IXP420 performs a power-on reset (starting execution at address 0x00000000). At reset, the IXP420's expansion bus memory area is mapped to the lowest 256MB of the address space (in addition to its permanent mapping at 0x50000000 to 0x5FFFFFFF). Therefore, the Redboot firmware image at the start of the flash memory (which is normally mapped at 0x50000000, but which appears at 0x00000000 immediately after reset) is the first code to be executed after reset.

December 02, 2004, at 11:49 AM by rwhitby --
Changed lines 4-5 from:

Hardware

to:

Hardware

Changed lines 8-9 from:

Firmware

to:

Firmware

Changed line 31 from:

Boot Sequence

to:

Boot Sequence

September 22, 2004, at 09:21 PM by tman --
Changed line 6 from:

The Linksys NSLU2 is based on the Intel IXP425 Network Processor. It contains 32MB of RAM, and 8MB of Flash. The RAM is mapped from 0x00000000 to 0x02000000 (32MB). The Flash is mapped from 0x50000000 to 0x50800000 (8MB), and immediately after reset it is also mapped from 0x00000000 to 0x0FFFFFFF (in repeated 8MB chunks), overriding the first 256MB of the RAM area (from 0x00000000 to 0x10000000) until bit 31 of Configuration Register #0 in the IXP425 is cleared by the boot code.

to:

The Linksys NSLU2 is based on the Intel IXP420 Network Processor. It contains 32MB of RAM, and 8MB of Flash. The RAM is mapped from 0x00000000 to 0x02000000 (32MB). The Flash is mapped from 0x50000000 to 0x50800000 (8MB), and immediately after reset it is also mapped from 0x00000000 to 0x0FFFFFFF (in repeated 8MB chunks), overriding the first 256MB of the RAM area (from 0x00000000 to 0x10000000) until bit 31 of Configuration Register #0 in the IXP420 is cleared by the boot code.

Changed line 31 from:

1. Power is applied, and the IXP425 performs a power-on reset (starting execution at address 0x00000000). At reset, the IXP425's expansion bus memory area is mapped to the lowest 256MB of the address space (in addition to it's permanent mapping at 0x50000000 to 0x5FFFFFFF). Therefore, the Redboot firmware image at the start of the flash memory (which is normally mapped at 0x50000000, but which appears at 0x00000000 immediately after reset) is the first code to be executed after reset.

to:

1. Power is applied, and the IXP420 performs a power-on reset (starting execution at address 0x00000000). At reset, the IXP420's expansion bus memory area is mapped to the lowest 256MB of the address space (in addition to it's permanent mapping at 0x50000000 to 0x5FFFFFFF). Therefore, the Redboot firmware image at the start of the flash memory (which is normally mapped at 0x50000000, but which appears at 0x00000000 immediately after reset) is the first code to be executed after reset.

Changed line 33 from:

2. The IXP425 starts execution of the "Redboot" firmware image in /dev/mtdblock0. Execution begins with the cyg_start() routine (which can be found in main.c from the Redboot distribution):

to:

2. The IXP420 starts execution of the "Redboot" firmware image in /dev/mtdblock0. Execution begins with the cyg_start() routine (which can be found in main.c from the Redboot distribution):

September 21, 2004, at 03:15 AM by tman --
Changed line 17 from:
/dev/mtdblock0RedBoot0x500000000x40000 (256K)The block contains the code from which the IXP420 boots.
to:
/dev/mtdblock0RedBoot0x500000000x40000 (256K)This block contains the code from which the IXP420 boots.
September 21, 2004, at 03:14 AM by tman --
Changed line 6 from:

The Linksys NSLU2 is based on the Intel IXP420 Network Processor. It contains 32MB of RAM, and 8MB of Flash. The RAM is mapped from 0x00000000 to 0x02000000 (32MB). The Flash is mapped from 0x50000000 to 0x50800000 (8MB), and immediately after reset it is also mapped from 0x00000000 to 0x0fffffff (in repeated 8MB chunks), overriding the first 256MB of the RAM area (from 0x00000000 to 0x10000000) until bit 31 of Configuration Register #0 in the IXP420 is cleared by the boot code.

to:

The Linksys NSLU2 is based on the Intel IXP425 Network Processor. It contains 32MB of RAM, and 8MB of Flash. The RAM is mapped from 0x00000000 to 0x02000000 (32MB). The Flash is mapped from 0x50000000 to 0x50800000 (8MB), and immediately after reset it is also mapped from 0x00000000 to 0x0FFFFFFF (in repeated 8MB chunks), overriding the first 256MB of the RAM area (from 0x00000000 to 0x10000000) until bit 31 of Configuration Register #0 in the IXP425 is cleared by the boot code.

Changed line 9 from:

It is believed that the firmware for the Linksys NSLU2 originates from SerComm Corporation ...

to:

It is believed that the firmware for the Linksys NSLU2 originates from SerComm Corporation ...

Changed line 11 from:

The NSLU2 uses the RedBoot boot loader ...

to:

The NSLU2 uses the RedBoot boot loader ...

Changed lines 15-34 from:
    *

mtdblock0 = "Redboot" (region size = 262144 bytes (256K))

      The block contains the code from which the IXP420 boots.
    *

mtdblock1 = "config" (region size = 131072 bytes (128K))

      Some explanation ....
    *

mtdblock2 = "vmlinuz" (region size = 1048576 bytes (1M))

      Some explanation ....
    *

mtdblock2 = "ramdisk" (region size = 6946816 bytes (6.625M) (remainder of 8M Flash))

      Some explanation ....
to:
Linux deviceTypeStart mem addrLengthDescription
/dev/mtdblock0RedBoot0x500000000x40000 (256K)The block contains the code from which the IXP420 boots.
/dev/mtdblock1System Configuration0x500400000x20000 (128K)The NSLU2 configuration e.g. IP address is stored here
/dev/mtdblock2Kernel0x500600000x100000 (1MB)The Linux kernel
/dev/mtdblock3Ramdisk0x501600000x6A0000 (6.625MB)The ramdisk image for /
Changed line 31 from:

1. Power is applied, and the IXP420 performs a power-on reset (starting execution at address 0x00000000). At reset, the IXP420's expansion bus memory area is mapped to the lowest 256MB of the address space (in addition to it's permanent mapping at 0x50000000 to 0x5fffffff). Therefore, the Redboot firmware image at the start of the flash memory (which is normally mapped at 0x50000000, but which appears at 0x00000000 immediately after reset) is the first code to be executed after reset.

to:

1. Power is applied, and the IXP425 performs a power-on reset (starting execution at address 0x00000000). At reset, the IXP425's expansion bus memory area is mapped to the lowest 256MB of the address space (in addition to it's permanent mapping at 0x50000000 to 0x5FFFFFFF). Therefore, the Redboot firmware image at the start of the flash memory (which is normally mapped at 0x50000000, but which appears at 0x00000000 immediately after reset) is the first code to be executed after reset.

Changed line 33 from:

2. The IXP420 starts execution of the "Redboot" firmware image in /dev/mtdblock0. Execution begins with the cyg_start() routine (which can be found in main.c from the Redboot distribution):

to:

2. The IXP425 starts execution of the "Redboot" firmware image in /dev/mtdblock0. Execution begins with the cyg_start() routine (which can be found in main.c from the Redboot distribution):

September 20, 2004, at 04:56 PM by ka6sox --
Added lines 93-96:

External Links

RedBoot http://ixp4xx-osdg.sourceforge.net/howtos/redboot-v1_92-ixdp425-mini-HOWTO.html miniHowTo

September 17, 2004, at 07:36 PM by Pete Verdon --
Changed lines 38-41 from:
    * assign
    * boot
    * move
    * upgrade
to:
  • assign
  • boot
  • move
  • upgrade
Changed lines 45-76 from:
   1. Power is applied, and the IXP420 performs a power-on reset (starting execution at address 0x00000000). At reset, the IXP420's expansion bus memory area is mapped to the lowest 256MB of the address space (in addition to it's permanent mapping at 0x50000000 to 0x5fffffff). Therefore, the Redboot firmware image at the start of the flash memory (which is normally mapped at 0x50000000, but which appears at 0x00000000 immediately after reset) is the first code to be executed after reset.
   2. The IXP420 starts execution of the "Redboot" firmware image in /dev/mtdblock0. Execution begins with the cyg_start() routine (which can be found in main.c from the Redboot distribution):
          * The serial port console is initialised (default setting is 115200,8,N,1).
          * The Redboot version, platform, copyright, and memory segment strings are printed to the console by do_version():
            RedBoot(tm) bootstrap and debug environment [ROMRAM]
            Red Hat certified release, version 1.92 - built 15:16:07, Feb 3 2004
            Platform: IXDP425? Development Platform (XScale?)
            Copyright (C) 2000, 2001, 2002, Red Hat, Inc.
            RAM: 0x00000000-0x02000000, 0x000723a0-0x01ff3000 available
            FLASH: 0x50000000 - 0x50800000, 64 blocks of 0x00020000 bytes each.
                o The RAM area of 0x00000000 to 0x02000000 corresponds to 32MB.
                o The FLASH area of 0x50000000 to 0x50800000 corresponds to 8MB.
          * After a two second timeout delay, the built-in boot script is executed:
            == Executing boot script in 2.000 seconds - enter ^C to abort
                o During this timeout period, you can hit Control-C on the console to abort the boot script.
          * The NSLU2 contains the following built-in boot script:
            boot;exec 0x01d00000
                o The boot command loads the Linux kernel and initial ramdisk into RAM.
                o The exec command executes the Linux kernel.
   3. The Linux kernel begins execution with the command arguments:
      console=ttyS0,115200 root=/dev/ram0 initrd=0x01000000,10M mem=32M@0x00000000
   4. Because there is no /linuxrc file in the initial ramdisk, the kernel executes /bin/init, which subsequently executes /etc/rc:
          * /usr/bin/Set_Led r_blinking &
          * mount -t proc proc /proc
            mount -o remount,rw /dev/root /
          * ifconfig lo 127.0.0.1
            route add -net 127.0.0.0 netmask 255.255.255.0 lo
          * /bin/echo "Insmod ixp400"
            insmod ixp400.o
            /bin/echo "Insmod ixp425"
            insmod ixp425_eth.o
          * /etc/rc.d/rc.sysinit &
to:

1. Power is applied, and the IXP420 performs a power-on reset (starting execution at address 0x00000000). At reset, the IXP420's expansion bus memory area is mapped to the lowest 256MB of the address space (in addition to it's permanent mapping at 0x50000000 to 0x5fffffff). Therefore, the Redboot firmware image at the start of the flash memory (which is normally mapped at 0x50000000, but which appears at 0x00000000 immediately after reset) is the first code to be executed after reset.

Changed lines 47-93 from:

[Original Source: http://www.rwhitby.net/nslu2/boot-sequence.html]

to:

2. The IXP420 starts execution of the "Redboot" firmware image in /dev/mtdblock0. Execution begins with the cyg_start() routine (which can be found in main.c from the Redboot distribution):

* The serial port console is initialised (default setting is 115200,8,N,1).
* The Redboot version, platform, copyright, and memory segment strings are printed to the console by do_version():
 RedBoot(tm) bootstrap and debug environment [ROMRAM]
 Red Hat certified release, version 1.92 - built 15:16:07, Feb 3 2004
 Platform: IXDP425? Development Platform (XScale?)
 Copyright (C) 2000, 2001, 2002, Red Hat, Inc.
 RAM: 0x00000000-0x02000000, 0x000723a0-0x01ff3000 available
 FLASH: 0x50000000 - 0x50800000, 64 blocks of 0x00020000 bytes each.
* The RAM area of 0x00000000 to 0x02000000 corresponds to 32MB.
* The FLASH area of 0x50000000 to 0x50800000 corresponds to 8MB.
* After a two second timeout delay, the built-in boot script is executed:
 == Executing boot script in 2.000 seconds - enter ^C to abort
* During this timeout period, you can hit Control-C on the console to abort the boot script.
* The NSLU2 contains the following built-in boot script:
 boot;exec 0x01d00000
* The boot command loads the Linux kernel and initial ramdisk into RAM.
* The exec command executes the Linux kernel.

3. The Linux kernel begins execution with the command arguments:

 console=ttyS0,115200 root=/dev/ram0 initrd=0x01000000,10M mem=32M@0x00000000

4. Because there is no /linuxrc file in the initial ramdisk, the kernel executes /bin/init, which subsequently executes /etc/rc:

 /usr/bin/Set_Led r_blinking &
 mount -t proc proc /proc
 mount -o remount,rw /dev/root /
 ifconfig lo 127.0.0.1
 route add -net 127.0.0.0 netmask 255.255.255.0 lo
 /bin/echo "Insmod ixp400"
 insmod ixp400.o
 /bin/echo "Insmod ixp425"
 insmod ixp425_eth.o
 /etc/rc.d/rc.sysinit &

[Original Source: http://www.rwhitby.net/nslu2/boot-sequence.html]

September 13, 2004, at 03:53 AM by ka6sox --
Added line 78:

[Original Source: http://www.rwhitby.net/nslu2/boot-sequence.html]

September 13, 2004, at 03:51 AM by ka6sox --
Changed lines 1-77 from:

Describe RedBootSequence here.

to:

Linksys NSLU2 Boot Sequence

This page contains a detailed explanation of the boot sequence of the Linksys NSLU2. Hardware

The Linksys NSLU2 is based on the Intel IXP420 Network Processor. It contains 32MB of RAM, and 8MB of Flash. The RAM is mapped from 0x00000000 to 0x02000000 (32MB). The Flash is mapped from 0x50000000 to 0x50800000 (8MB), and immediately after reset it is also mapped from 0x00000000 to 0x0fffffff (in repeated 8MB chunks), overriding the first 256MB of the RAM area (from 0x00000000 to 0x10000000) until bit 31 of Configuration Register #0 in the IXP420 is cleared by the boot code. Firmware

It is believed that the firmware for the Linksys NSLU2 originates from SerComm Corporation ...

The NSLU2 uses the RedBoot boot loader ...

The Flash memory is partitioned into 4 "/dev/mtdblock" devices:

    *

mtdblock0 = "Redboot" (region size = 262144 bytes (256K))

      The block contains the code from which the IXP420 boots.
    *

mtdblock1 = "config" (region size = 131072 bytes (128K))

      Some explanation ....
    *

mtdblock2 = "vmlinuz" (region size = 1048576 bytes (1M))

      Some explanation ....
    *

mtdblock2 = "ramdisk" (region size = 6946816 bytes (6.625M) (remainder of 8M Flash))

      Some explanation ....

The customized version of RedBoot on the NSLU2 contains the following additional commands:

    * assign
    * boot
    * move
    * upgrade

Boot Sequence

   1. Power is applied, and the IXP420 performs a power-on reset (starting execution at address 0x00000000). At reset, the IXP420's expansion bus memory area is mapped to the lowest 256MB of the address space (in addition to it's permanent mapping at 0x50000000 to 0x5fffffff). Therefore, the Redboot firmware image at the start of the flash memory (which is normally mapped at 0x50000000, but which appears at 0x00000000 immediately after reset) is the first code to be executed after reset.
   2. The IXP420 starts execution of the "Redboot" firmware image in /dev/mtdblock0. Execution begins with the cyg_start() routine (which can be found in main.c from the Redboot distribution):
          * The serial port console is initialised (default setting is 115200,8,N,1).
          * The Redboot version, platform, copyright, and memory segment strings are printed to the console by do_version():
            RedBoot(tm) bootstrap and debug environment [ROMRAM]
            Red Hat certified release, version 1.92 - built 15:16:07, Feb 3 2004
            Platform: IXDP425? Development Platform (XScale?)
            Copyright (C) 2000, 2001, 2002, Red Hat, Inc.
            RAM: 0x00000000-0x02000000, 0x000723a0-0x01ff3000 available
            FLASH: 0x50000000 - 0x50800000, 64 blocks of 0x00020000 bytes each.
                o The RAM area of 0x00000000 to 0x02000000 corresponds to 32MB.
                o The FLASH area of 0x50000000 to 0x50800000 corresponds to 8MB.
          * After a two second timeout delay, the built-in boot script is executed:
            == Executing boot script in 2.000 seconds - enter ^C to abort
                o During this timeout period, you can hit Control-C on the console to abort the boot script.
          * The NSLU2 contains the following built-in boot script:
            boot;exec 0x01d00000
                o The boot command loads the Linux kernel and initial ramdisk into RAM.
                o The exec command executes the Linux kernel.
   3. The Linux kernel begins execution with the command arguments:
      console=ttyS0,115200 root=/dev/ram0 initrd=0x01000000,10M mem=32M@0x00000000
   4. Because there is no /linuxrc file in the initial ramdisk, the kernel executes /bin/init, which subsequently executes /etc/rc:
          * /usr/bin/Set_Led r_blinking &
          * mount -t proc proc /proc
            mount -o remount,rw /dev/root /
          * ifconfig lo 127.0.0.1
            route add -net 127.0.0.0 netmask 255.255.255.0 lo
          * /bin/echo "Insmod ixp400"
            insmod ixp400.o
            /bin/echo "Insmod ixp425"
            insmod ixp425_eth.o
          * /etc/rc.d/rc.sysinit &
view · edit · print · history · Last edited by tms13.
Based on work by rwhitby, tman, ka6sox, and Pete Verdon.
Originally by ka6sox.
Page last modified on July 27, 2009, at 07:03 PM