README (2223B)
1 /* 2 * 3 * 4 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 5 * 6 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 7 */ 8 9 SDK Linux User Support 10 11 12 The Broadcom SDK can be compiled as part of a user space application, 13 for development flexibility and debugging purposes. 14 15 In this configuration, the entire driver is compiled as a user space 16 library, which you can link with your application. It will provide all 17 regular driver features, but at some cost in performance. 18 19 The core of the user space support is in the Linux User Mode BDE 20 (Broadcom Device Enumerator). This BDE provides all chip virtualization 21 for user mode execution, which includes device PCI access, register 22 address space mmapping, and interrupt virtualization. 23 24 When running in this mode, the entire driver, including interrupt 25 handling, can be debugged from user space using GDB, and you should 26 never crash your machine. 27 28 The user space support requires a couple of kernel modules to provide 29 the virtualization services: 30 31 linux-kernel-bde.o 32 ------------------ 33 34 source: sdk/systems/bde/linux/kernel 35 36 See the ../kernel/README file for information on the use the 37 linux-kernel-bde module. 38 39 linux-user-bde.o 40 ---------------- 41 42 source: sdk/systems/bde/linux/user/kern 43 44 The Linux user BDE implentation is comprised of two parts -- a kernel 45 module, and a user space library. The linux-user-bde is the kernel 46 portion and it relies upon the linux-kernel-bde module to access the 47 devices in the system, and it then provides PCI, DMA, register, and 48 interrupt virtualization to the user space library, which provides the 49 actual BDE interface pointer. 50 51 You must load both the linux-kernel-bde and the linux-user-bde 52 modules before running your user space BCM application. 53 54 Configurations for building the BCM diag shell application for 55 specific BRCM platforms are available in the subdirectories of this 56 directory. For example, building the user space BCM diag shell for the 57 BRCM 8245 CPCI board (BMW) is done by: 58 59 cd bmw; gmake 60 61 The products of this build will be the linux-kernel-bde.o and 62 linux-user-bde.o modules, and the bcm.user application.