A
This presentation is the property of its rightful owner.
Sponsored Links
1 / 22

A Smart Port Card Tutorial --- Hardware John DeHart Washington University [email protected] PowerPoint PPT Presentation


  • 52 Views
  • Uploaded on
  • Presentation posted in: General

A Smart Port Card Tutorial --- Hardware John DeHart Washington University [email protected] http://www.arl.wustl.edu/~jdd. References: New Links from Kits References Page. Intel Embedded Module: Data Sheet Design Guide 430HX Chipset NorthBridge SouthBridge System FPGA Memory

Download Presentation

A Smart Port Card Tutorial --- Hardware John DeHart Washington University [email protected]

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


A smart port card tutorial hardware john dehart washington university jdd arl wustl

A

Smart Port Card

Tutorial

---

Hardware

John DeHart

Washington University

[email protected]

http://www.arl.wustl.edu/~jdd


References new links from kits references page

References: New Links from Kits References Page

  • Intel Embedded Module:

    • Data Sheet

    • Design Guide

  • 430HX Chipset

    • NorthBridge

    • SouthBridge

  • System FPGA

  • Memory

  • Mobile Pentium with MMX

    • Software Developer Manuals 1,2,3

    • Datasheet

  • APIC

  • Cache


Motivation

Motivation

  • Active Networking

  • Network Probe

  • High performance router architectures

    • PC as router is VERY limited

    • (Gigabit/s + Processing) on each port

    • MSR: Multi-Service multiport Router


The smart port card

The Smart Port Card

  • Hardware:

    • SPC as a PC

      • How do they each boot?

    • SPC Hardware Components

      • What roles do they play?


Typical pentium pc

Typical Pentium PC

CPU/Memory Bus

Addr/Data

Ctrl

Ctrl

Cache

CPU

North-

Bridge

DRAM

Addr/Data/Ctrl

PCI Bus

Intr

NMI

INIT

SouthBridge (PIIX3)

(PIC, PIT, …)

PCI

Devices

ISA Bus

ISA

Devices

Super-IO

BIOS

BIOS

RTC

Uarts

Kbd/Mse

Floppy

Parallel

...


How netbsd boots on a pc

How NetBSD Boots on a PC

Components:

  • Pentium

  • Boot ROM (replaced by BIOS in modern systems?)

  • BIOS

  • Bootloader

  • Kernel


Sketch of how a pc boots

Sketch of How a PC Boots

… at least what I understand…

  • Pentium after Reset:

    • fetches its first instruction from location 0xFFFFFFF0

  • Boot Code must be located at 0xFFFFFFF0

  • Boot Code jumps to BIOS located in ROM

    • Boot Code may actually be part of the BIOS...

  • BIOS copies itself into memory (Shadow)

  • BIOS remaps memory

    • future accesses to BIOS addresses go to memory instead of ROM.

  • BIOS performs system configuration (some proprietary)

    • Motherboard Details

    • Pentium Details

    • NB/SB Chipset Details

    • Device configuration: IRQs, Memory maps, ...


How a pc boots continued

How a PC Boots (continued…)

  • BIOS loads bootloader into memory (from disk…)

  • BIOS jumps to bootloader

  • Bootloader performs some more configuration:

    • Pentium control registers

    • Cache configuration

    • Memory/Page model

  • Bootloader determines what to run next.

  • Bootloader may have to do some device configuration.

    • e.g. to get OS from a disk.

  • Bootloader loads OS kernel into memory

  • Bootloader jumps to start of OS kernel


How a pc boots continued1

How a PC Boots (continued…)

  • Kernel does some OS-specific configuration:

    • for NetBSD look in: sys/arch/i386/i386/locore.s

    • Determines what CPU it has (“cpuid” instruction)

    • Paging

    • Virtual Memory


Typical pentium pc again

Typical Pentium PC (Again…)

CPU/Memory Bus

Addr/Data

Ctrl

Ctrl

Cache

CPU

North-

Bridge

DRAM

Addr/Data/Ctrl

PCI Bus

Intr

NMI

INIT

SouthBridge (PIIX3)

(PIC, PIT, …)

PCI

Devices

ISA Bus

ISA

Devices

Super-IO

BIOS

BIOS

RTC

Uarts

Kbd/Mse

Floppy

Parallel

...


What spc needs

Addr/Data

Ctrl

Ctrl

Cache

CPU

North-

Bridge

DRAM

Addr/Data/Ctrl

PCI Bus

Intr

NMI

INIT

SouthBridge

(PIC, PIT, …)

APIC

BIOS

BIOS

RTC

Uarts

What SPC Needs

CPU/Memory Bus


Spc architecture

Intel Embedded Module

UART1

UART2

System FPGA

SPC Architecture

Addr/Data

Ctrl

Ctrl

Cache

CPU

North-

Bridge

DRAM

Addr/Data/Ctrl

PCI Bus

NMI

INIT

Intr

APIC

RTC’

PIC

PIT

UART1 Interface

BIOS ROM

Link Interface

UART2 Interface

Switch Interface


Spc photo tour

SPC Photo Tour

Switch Interface

DRAM

Link Interface

CPU Module

APIC

PCI Bus

System FPGA

Serial Ports


Spc components

SPC Components

  • APIC

    • PCI Bus Master

  • Pentium Embedded Module

    • 166 MHz MMX Pentium Processor

      • L1 Cache: 16KB Data, 16KB Code

    • L2 cache: 512 KB

    • NorthBridge - 33 MHz, 32 bit PCI Bus

      • PCI Bus Master

  • System FPGA

    • PCI Bus Slave

  • Xilinx XC4020XLA-1 FPGA

  • 20K Equivalent Gates

  • ~ 75% used


  • Spc components continued

    SPC Components (continued)

    • Memory

      • EDO DRAM

      • 64MB (Max for current design)

      • SO DIMM

    • Switch Interface - 1 Gb Utopia

    • Link Interface - 1 Gb Utopia

    • UART

      • Two Serial Ports

        • NetBSD system console

        • TTY port


    System fpga

    System FPGA

    • Coded in VHDL

    • PCI slave device

    • Replaces some of the PIIX3 (south bridge)

    • Replaces some of the BIOS

    • Replaces some of the Super IO Chip

    • Provides reset capability


    System fpga piix3 functionality

    System FPGA: PIIX3 Functionality

    • Programmable Interrupt Controller (PIC)

      • Four Interrupts supported and statically assigned:

        • PIT (IRQ 0)

        • APIC (IRQ 5)

        • COM1 (IRQ 4)

        • COM2 (IRQ 3)

      • Static fully-nested interrupt priority structure.

      • Specific End of Interrupt is the only EOI mode supported

    • Programmable Interval Timer (PIT)

      • generates a clock interrupt for NetBSD every ~10ms

    • Reset - covered in a later slide


    System fpga bios functionality

    System FPGA: BIOS Functionality

    • Interrupt functionality replaced by static values

    • Simple 16 word by 32-bit “ROM”

      • implements loop waiting for location 0xFFE00 to change value

      • then jumps to boot loader code

    • Does NOT perform configuration of Northbridge

      • This will be done by the boot loader

    • Does NOT perform PCI configuration of APIC

      • This will be done by the APIC Driver


    System fpga super io chip functionality

    System FPGA: Super IO Chip Functionality

    • UART Interface

      • Two Serial lines supported

      • Fixed IRQs

    • Real Time Clock

      • only the register accesses of the RTC are supported

      • no interrupts supported

      • i.e. supported only so NetBSD didn’t need to change

      • i.e. no alarms will be generated


    System fpga reset

    System FPGA: Reset

    • SPC needs a reset before every download:

      • switch reset:

        • causes SPC to be reset

        • causes all connections in switch to be lost

      • System FPGA reset

        • causes SPC to be reset

        • has no effect on the switch

    • Normal SouthBridge reset:

      • I/O Register: 0xCF9

      • Hard Reset: assert CPURST, PCIRST#, and RSTDRV

        • write 0xCF9 0x02 (00000010b)

        • write 0xCF9 0x06 (00000110b)

      • Soft Reset: assert INIT

        • write 0xCF9 0x00 (00000000b)

        • write 0xCF9 0x04 (00000100b)

    bits


    System fpga reset1

    System FPGA: Reset

    • SPC Reset:

      • a sequence of two writes to memory addresses

      • APIC Control cells can write to

        • memory addresses

        • configuration registers

        • NOT I/O Registers! Argh...

      • To mimic the reset structure of the SB we use:

        • 0xFFFFFFF0

        • 0xFFFFFFF4

      • Hard Reset (all we really care about)

        • write 0xFFFFFFF0 0x02 (00000010b)

        • write 0xFFFFFFF4 0x06 (00000110b)

    bits


    Caveats

    Caveats

    • Intel Embedded Module problem

      • Memory corruption caused by noise on M/A bus

      • Hopefully it will be fixed before we ship

      • We work around it with 25 MHz PCI and no HLT

        • This reduces the probability of noise on the bus

    • PCI Bus

      • 33 MHz vs. 25 MHz

    • NetBSD Kernel HLT instruction

      • if absolutely nothing to do, NetBSD does a “HLT”

      • this reduces power consumption

      • also causes large power/current swings

      • We have removed the HLT instruction for the SPC

    • Serial Cables

      • RS232 is not necessarily hot-swappable

        • sometimes you can get away with it but not always


  • Login