From c90fa83041f1467ac9795c489b7151db3a041ab5 Mon Sep 17 00:00:00 2001 From: Vijay Kumar Banerjee Date: Wed, 24 Feb 2021 19:09:56 -0700 Subject: bsps: Remove networking drivers Update #3850 --- bsps/powerpc/psim/net/README | 141 ------------------------------------------- 1 file changed, 141 deletions(-) delete mode 100644 bsps/powerpc/psim/net/README (limited to 'bsps/powerpc/psim/net/README') diff --git a/bsps/powerpc/psim/net/README b/bsps/powerpc/psim/net/README deleted file mode 100644 index 4ca287788c..0000000000 --- a/bsps/powerpc/psim/net/README +++ /dev/null @@ -1,141 +0,0 @@ -PSIM NETWORKING HOWTO -===================== - -IMPLEMENTATION INFORMATION - -1) NIC hardware emulation. - - In order to simulate networking the simulator (PSIM in our case) - has to emulate some networking hardware. - At the time of this writing (2009/09 - gdb-6.8) no such emulation - is available. - However, a patch has been created which adds this functionality - to PSIM (see diff in this directory). Unfortunately, implementing - a network chip (or some other sort of 'data-source') in PSIM is - not quite that simple since PSIM is at the end of the day a single- - threaded, monolithic application which has no built-in support for - external asynchronous events (e.g., NIC packet reception or a - character arriving at a UART [the PSIM BSP uses a polled console - driver]). - In order to add such asynchronous support, the 'async_io' module - was added to PSIM. 'async_io' uses OS-support in the form of - a signal (SIGIO) that the OS sends to the PSIM process when I/O - becomes possible. The signal handler then executes a callback - which e.g., may schedule a PSIM interrupt. - However, the use of SIGIO and the O_ASYNC fcntl-flag is not portable - (BSD and linux only). - The 'ethtap' NIC emulation uses another not quite portable OS - service -- the host OS' TUN/TAP device which is some sort of - pipe with a networking-interface on one end and a file-system - interface on the other. The 'ethtap' NIC reads/writes packets - to the file-system interface and they then become available - to the host OS' networking. - This ascii-art shows how a RTEMS application inside PSIM can - communicate with an application on the host with both using - sockets. (If the host sets up proper routing table entries - then the RTEMS APP can even communicate with the internet...) - - - RTEMS APP HOST APP - | | - ............. ............ - . . . . - .RTEMS BSD . . HOST OS . - .networking . .networking. - ............. ............ - - ....................... ..................... - .RTEMS BSD IF "ifsim1". . HOST OS IF: "tap0". - .e.g., 10.0.0.100 . . e.g., 10.0.0.1 . - ....................... ..................... - o - ............. o - .RTEMS ifsim. o - . driver . o - ............. o - || o - || o - --------------- o - ethtap o - hw emulation o - --------------- o - ^ o - | o - -----> /dev/net/tun (special file on host OS) ooo - - -2) Device-tree. Once PSIM supports the 'ethtap' device then it - must be added to the device tree. The following properties are - relevant (The register addresses must match with what the - BSP/if_sim expects): - - #### ETHTAP @ 0x0c100020 for 0x40 - # - - /ethtap@0x0c100020/reg 0x0c100020 0x40 - # route interrupt to open-pic - /ethtap@0x0c100020 > 0 irq0 /opic@0x0c130000 - # 'tun' device on host - /ethtap@0x0c100020/tun-device "/dev/net/tun" - # name of 'tap' device to use - /ethtap@0x0c100020/tap-ifname "tap0" - # ethernet address of simulated IF - /ethtap@0x0c100020/hw-address "00:00:00:22:11:00" - # generate CRC and append to received packet before - # handing over to the simulation. This is mostly for - # debugging the rtems device driver. If unsure, leave 'false'. - /ethtap@0x0c100020/enable-crc false - - The 'tun-device' and 'tap-ifname' properties allow you to - configure the name of the special-file and the 'tap' interface - on the host. - -3) RTEMS driver. The 'if_sim' driver implements a driver for - the 'ethtap' device. - -USAGE INFORMATION - -1) Configure application for networking; the - RTEMS_BSP_NETWORK_DRIVER_NAME is "ifsim1" - and - RTEMS_BSP_NETWORK_DRIVER_ATTACH is rtems_ifsim_attach - -2) Patch, configure (--target=powerpc-rtems) and build - gdb-6.8. As already mentioned, the NIC emulation only - is available if your host-os is linux. - -3) Create a 'device-tree' file. The BSP build process produces - a shell-script 'psim' residing in - - /powerpc-rtems/psim/tests/ - - which can be used for generating a device-tree file. - - Call 'psim -d -n '. The '-n' option adds the - emulated interface (the lines above) to the device tree. - The resulting file is saved as .device. - - The 'psim' script can also be used to launch an application - directly -- just omit the '-d' option. - -4) Linux host network configuration: - Create a 'permanent' 'tap' interface. This allows you - to use 'psim' w/o special privileges (the 'tunctl' command - still must be executed by the super-user). - - sudo tunctl -u - - You now can configure the 'tap0' interface: - - sudo ifconfig tap0 10.0.0.1 up - - and e.g., run a BOOTP server to provide RTEMS with its - network configuration: - - sudo dhcpd3 -d tap0 - - Assuming that BOOTP gives the RTEMS guest an IP address - e.g., '10.0.0.100' you can 'ping' the RTEMS guest - from the linux host: - - ping 10.0.0.100 -- cgit v1.2.3