Nano platform port, Ethernet driver, Rebuilding redboot – Comtrol eCos User Manual

Page 219

Advertising
background image

Chapter 5. Installation and Testing

The ethernet devices use a "PCI window" to communicate with the CPU. This is 1Mb of SDRAM which is
shared with the ethernet devices that are on the PCI bus. It is neither cached nor buffered, to ensure that CPU
and PCI accesses see correct data in the correct order. By default it is configured to be megabyte number 30,
at addresses 0x01e00000-0x01efffff. This can be modified, and indeed must be, if less than 32Mb of SDRAM
is installed, via the memory layout tool, or by moving the section

__pci_window

referred to by symbols

CYG-

MEM_SECTION_pci_window*

in the linker script.

Though the nanoEngine ships with 32Mb of SDRAM all attached to DRAM bank 0, the code can cope with any
of these combinations also; "2 x " in this context means one device in each DRAM Bank.

1 x 8Mb = 8Mb

2 x 8Mb = 16Mb

1 x 16Mb = 16Mb 2 x 16Mb = 32Mb

All are programmed the same in the memory controller.

Startup code detects which is fitted and programs the memory map accordingly. If the device(s) is 8Mb, then there
are gaps in the physical memory map, because a high order address bit is not connected. The gaps are the higher
2Mb out of every 4Mb.

The SA11x0 OS timer is used as a polled timer to provide timeout support within RedBoot.

Nano Platform Port

The nano is in the set of SA11X0-based platforms. It uses the arm architectural HAL, the sa11x0 variant HAL,
plus the nano platform hal. These are components

CYGPKG_HAL_ARM

hal/arm/arch/

CYGPKG_HAL_ARM_SA11X0

hal/arm/sa11x0/var

CYGPKG_HAL_ARM_SA11X0_NANO

hal/arm/sa11x0/nano

respectively.

The target name is "nano" which includes all these, plus the ethernet driver packages, flash driver, and so on.

Ethernet Driver

The ethernet driver is in two parts:

A generic ether driver for Intel i8255x series devices, specifically the i82559, is

devs/eth/intel/i82559

. Its

package name is

CYGPKG_DEVS_ETH_INTEL_I82559

.

The platform-specific ether driver is

devs/eth/arm/nano

. Its package is

CYGPKG_DEVS_ETH_ARM_NANO

. This

tells the generic driver the address in IO memory of the chip, for example, and other configuration details. This
driver picks up the ESA from RedBoot’s configuration data - unless configured to use a static ESA in the usual
manner.

115

Advertising