Embedded Systems Programming Networking on the puppeteer.

Slides:



Advertisements
Similar presentations
Lecture 101 Lecture 10: Kernel Modules and Device Drivers ECE 412: Microcomputer Laboratory.
Advertisements

Device Drivers. Linux Device Drivers Linux supports three types of hardware device: character, block and network –character devices: R/W without buffering.
Managing Cisco IOS Software. Overview The router boot sequence Locating IOS software The configuration register Recovering Passwords Backing Up the Cisco.
USERSPACE I/O Reporter: R 張凱富.
Booting the TS-7300 boards VHDL and C. Overview After looking at the general approach to booting machines (generally PCs) we will now look at the TS-7300.
System on Chip Configuring FPGAs. Firmware and the boot process Booting is a complex process for any system It requires some form of firmware to be available.
Linux+ Guide to Linux Certification, Second Edition Chapter 14 Network Configuration.
COMP3221: Microprocessors and Embedded Systems Lecture 2: Instruction Set Architecture (ISA) Lecturer: Hui Wu Session.
1 Network Packet Generator Characterization presentation Supervisor: Mony Orbach Presenting: Eugeney Ryzhyk, Igor Brevdo.
Students:Gilad Goldman Lior Kamran Supervisor:Mony Orbach Mid-Semester Presentation Spring 2005 Network Sniffer.
Institute of Technology Sligo - Dept of Computing Cisco IOS & Router Config Semester 2V2 Chapter 7 Chapter 8.
Linux Networking TCP/IP stack – kernel controls the TCP/IP protocol – Ethernet adapter is hooked to the kernel in with the ipconfig command – ifconfig.
Embedded Real time System Design Introduction to the course.
Chapter 5 Input/Output I/O Hardware I/O Software Software Layers Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights.
Chapter 9 Managing a Cisco Internetwork Cisco Router Components Bootstrap - Brings up the router during initialization POST - Checks basic functionality;
Cisco Devices CONFIGURING CISCO SWITCH AND ROUTER.
Embedded Systems Programming Introduction to the course.
CCNA 1 Module1. Objectives Internet Connections Physical – NIC card to connect to local net Logical – Use a standard set of protocols (TCP/IP) Applications.
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
Sybex CCNA Chapter 7: Managing a Cisco Internetwork Instructor & Todd Lammle.
Shell and Flashing Images Commands and upgrades. RS-232 Driver chip – ST3232C Driver chip is ST3232C Provides electrical interface between UART port and.
Routers A router is a computer Computers have four basic components:
NET+OS 6.1 Training. BSP NET+OS 6.1 BSP Initialization Memory map New features Debugging Porting Issues.
Embedded Systems Principle of Debugger. Reference Materials kl.de/avr_projects/arm_projects/#winarmhttp://
Cisco IOS & Router Config Semester 2V2 Chapter 6.
© Wiley Inc All Rights Reserved. CCNA: Cisco Certified Network Associate Study Guide CHAPTER 9: Managing a Cisco Internetwork.
hardware and operating systems basics.
Module 6 – Switch Configuration CCNA 3 Cabrillo College.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 3 v3.0 Module 6 Switch Configuration.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 3 v3.0 Module 6 Switch Configuration.
Basic LAN techniques IN common with all other computer based systems networks require both HARDWARE and SOFTWARE to function. Networks are often explained.
1 CS503: Operating Systems Spring 2014 Dongyan Xu Department of Computer Science Purdue University.
Instructor & Todd Lammle
1 Lecture 20: I/O n I/O hardware n I/O structure n communication with controllers n device interrupts n device drivers n streams.
How Hardware and Software Work Together
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
Directives, Memory, and Stack. Directives Special commands to the assembler May or may not generate machine code Categories by their function Programming.
Cisco S2 C4 Router Components. Configure a Router You can configure a router from –from the console terminal (a computer connected to the router –through.
Exploring Suitability of Linux for Embedded Vision Applications Ankit Mathur Mayank Agarwal Mini Project.
Linux+ Guide to Linux Certification Chapter Fifteen Linux Networking.
Linux+ Guide to Linux Certification, Second Edition Chapter 14 Network Configuration.
Linux development on embedded PowerPC 405 Jarosław Szewiński.
Ethernet Driver Changes for NET+OS V5.1. Design Changes Resides in bsp\devices\ethernet directory. Source code broken into more C files. Native driver.
ARM 7 & ARM 9 MICROCONTROLLERS AT91 1 Development Tools & Partners.
Application Block Diagram III. SOFTWARE PLATFORM Figure above shows a network protocol stack for a computer that connects to an Ethernet network and.
Porting Linux Linux onto the Puppeteer SA1110. The Puppeteer board –SA1110 CPU –SMSC LAN91C96I ethernet –8 Mb Flash Intel 28F320C3 Boot block flash –32.
1.4 Hardware Review. CPU  Fetch-decode-execute cycle 1. Fetch 2. Bump PC 3. Decode 4. Determine operand addr (if necessary) 5. Fetch operand from memory.
© 2002 Global Knowledge Network, Inc. All rights reserved. Windows Server 2003 MCSA and MCSE Upgrade Clustering Servers.
Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower than CPU.
OSes: 2. Structs 1 Operating Systems v Objective –to give a (selective) overview of computer system architectures Certificate Program in Software Development.
Yared Woldekiros Western Washington university WEB ENABLE HOME AUTOMATION.
MINIX Presented by: Clinton Morse, Joseph Paetz, Theresa Sullivan, and Angela Volk.
Asymmetric FPGA-loaded hardware accelerators for FPGA- enhanced CPU systems with Linux Performed by:Avi Werner William Backshi Instructor:Evgeny Fiksman.
Configuring a Router Module 3 Semester 2. Router Configuration Tasks Name a router Set passwords Examine show commands Configure a serial interface Configure.
Kernel Modules – Introduction CSC/ECE 573, Sections 001 Fall, 2012.
CHAPTER 3 Router CLI Command Line Interface. Router User Interface User and privileged modes User mode --Typical tasks include those that check the router.
CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT Operating Systems.
Managing a Cisco Devices Internetwork
Homework Reading Machine Projects Labs
Interrupts and Interrupts Handling
Anton Burtsev February, 2017
Instructor & Todd Lammle
The PCI bus (Peripheral Component Interconnect ) is the most commonly used peripheral bus on desktops and bigger computers. higher-level bus architectures.
What is an Operating System?
Configuring a Router Module 3 Semester 2.
Operating Systems Chapter 5: Input/Output Management
Cisco IOS & Router Config
Module 3 Configuring a Router.
Presentation transcript:

Embedded Systems Programming Networking on the puppeteer

Networking in embedded systems Many, if not most, embedded systems require networking support This can be for development purposes –From of Ethernet to download kernel to use NFS mounted root file system for development Or it can be for application/end user –Web enabled devices, getting upgrades

Networking fundamentals To network we require –A NIC Network interface chip –Software support for the chip A (working) device driver –Protocol support TCP/IP, ftp, telnet, nfs… –A configured protocol stack Knowing how to talk –A configured server/client Someone to talk to –A network media A bit of wire!

The Puppeteer - networking To network we require –A NIC Network interface chip –Software support for the chip A (working) device driver –Protocol support TCP/IP, ftp, telnet, nfs… –A configured protocol stack Knowing how to talk –A configured server/client Someone to talk to –A network media A bit of wire! We have got –SMCs91C96I FPGA complications –SMC9194 driver in linux 2.4 kernel source Doesn’t work! –TCP/IP is in kernel Works –Needs configuration Fairly straightforward –We can use kenny LDAP problems –Use Ethernet fly leads Remember to reconnect!

The SMC91C96I Chip Standard series of chips –Originally ISA bus chips Local bus, PCMCIA versions Horrendously complex –The documentation leaves a lot to be desired Well supported under Linux –Various versions of drivers around We will look at this later

The SMC91C96I features Half and full duplex chip Has 6k bytes of on board ram memory Internal MMU Supports IEEE (Ethernet) Status leds Has magic packet!

Linux SMC9194 device driver Doesn’t work out of the box! –There are a few lines that need editing before it will compile It requires quite a bit of configuration for our system –The memory address of the chip needs specifying –The FPGA code needs writing and incorporating

The SMC registers BANK 0BANK 1BANK 2BANK 3BANK 4 TCR EPH Status RCR Multicast Counter MIR MCR General Purpose ReservedControl Table MGMT Revision ERCV ECOR low ECSR high Bank Select Register MMU Command PNR ARR FIFO Ports Pointer Data Interrupt Config Base Individual Address Bank 2 Registers used at run time Stored in EEPROM

The SMC registers The SMC chip is located at ox We repogram the MMU to reflect it at 0xF , IO space –This is done in pangolin.c static struct map_desc pangolin_io_desc[] __initdata = { /* virtual physical length domain r w c b */ { 0xe , 0x , 0x , DOMAIN_IO, 0, 1, 0, 0 }, /* Flash bank 0 */ { 0xf , 0x , 0x , DOMAIN_IO, 0, 1, 0, 0 }, /* FPGA 0 */ { 0xf , 0x , 0x , DOMAIN_IO, 0, 1, 0, 0 }, /* SMC91c96 ethernet chip */ LAST_DESC };

Probing the chip We need to probe the chip There are some bugs in the probe code that need fixing It finds the chip but can’t set up the irq for it unsigned int *addr; int base_addr; dev->base_addr=0xf ; dev->irq=0; base_addr = dev->base_addr; SET_MODULE_OWNER(dev); /* try a specific location */ addr = ioremap(0xf , 10 * 16); if (!addr) return -ENOMEM; ret=smc_probe(dev, base_addr); iounmap(addr);

IRQs on the Puppeteer The interrupt structure on the StrongArm (and ARM generally) is very simple To create more complex interrupt structures in hardware designers will use interrupt controllers The Puppeteer use the FPGA for this task –This means that we are dependant on the level of documentation of the Verilog/VHDL rather than the datasheets