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

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