changed pvAccess url, save adaption to old network stack
This commit is contained in:
committed by
Brendan Chandler
parent
4127f6efec
commit
54f2d8887f
2
.gitmodules
vendored
2
.gitmodules
vendored
@@ -4,7 +4,7 @@
|
||||
branch = master
|
||||
[submodule "modules/pvAccess"]
|
||||
path = modules/pvAccess
|
||||
url = https://github.com/epics-base/pvAccessCPP
|
||||
url = https://github.com/mdavidsaver/pvAccessCPP
|
||||
branch = master
|
||||
[submodule "modules/normativeTypes"]
|
||||
path = modules/normativeTypes
|
||||
|
||||
@@ -104,7 +104,7 @@ OP_SYS_CFLAGS_NET_yes = -DRTEMS_LEGACY_STACK
|
||||
OP_SYS_CFLAGS_NET_no = -DHAVE_SOCKADDR_SA_LEN=1
|
||||
OP_SYS_CFLAGS += $(OP_SYS_CFLAGS_NET_$(RTEMS_HAS_NETWORKING))
|
||||
|
||||
OP_SYS_LDLIBS_posix_NET_yes = -ltftpfs -lbsd -lz
|
||||
OP_SYS_LDLIBS_posix_NET_yes = -ltftpfs -lnfs -lz
|
||||
OP_SYS_LDLIBS_posix_NET_no = -ltftpfs -lbsd -lz
|
||||
OP_SYS_LDLIBS_kernel_NET_yes = -lCom -lnfs
|
||||
OP_SYS_LDLIBS_kernel_NET_no = -lCom -lnfs
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
# FHI:
|
||||
#RTEMS_VERSION = 5
|
||||
#RTEMS_BASE = /home/h1/DBG/rtems
|
||||
#RTEMS_BASE = /home/ad/MVME6100/rtems/$(RTEMS_VERSION)
|
||||
|
||||
# APS:
|
||||
#RTEMS_VERSION = 4.10.2
|
||||
|
||||
@@ -132,6 +132,8 @@ extern void *POSIX_Init(void *argument);
|
||||
#define RTEMS_BSD_CONFIG_TELNETD_STACK_SIZE (16 * 1024)
|
||||
#define RTEMS_BSD_CONFIG_SERVICE_FTPD
|
||||
#define RTEMS_BSD_CONFIG_FIREWALL_PF
|
||||
#else
|
||||
#include <rtems/shellconfig.h>
|
||||
#endif // not LEGACY_STACK
|
||||
|
||||
#if __RTEMS_MAJOR__ < 5 // still needed in Version 4?
|
||||
|
||||
@@ -88,26 +88,23 @@
|
||||
epicsEventId dhcpDone;
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef RTEMS_LEGACY_STACK
|
||||
/* these settings are needed by the rtems startup
|
||||
* may provide by dhcp/bootp
|
||||
* or environments from the "BIOS" like u-boot, motboot etc.
|
||||
*/
|
||||
struct in_addr rtems_bsdnet_bootp_server_address;
|
||||
char rtemsInit_NTP_server_ip[16];
|
||||
char rtemsInit_NTP_server_ip[16] = "141.14.142.121";
|
||||
char bootp_server_name_init[128] = "1001.1001@141.14.128.9:/Volumes/Epics";
|
||||
char *rtems_bsdnet_bootp_server_name = bootp_server_name_init;
|
||||
char bootp_boot_file_name_init[128] = "/Volumes/Epics/myExample/bin/RTEMS-qoriq_e500/myExample.boot";
|
||||
char *rtems_bsdnet_bootp_boot_file_name = bootp_boot_file_name_init;
|
||||
char bootp_boot_file_name_init[128] = "/Volumes/Epics/myExample/bin/RTEMS-beatnik/myExample.boot";
|
||||
char bootp_cmdline_init[128] = "/Volumes/Epics/myExample/iocBoot/iocmyExample/st.cmd";
|
||||
char *rtems_bootp_cmdline = bootp_cmdline_init;
|
||||
|
||||
struct in_addr rtems_bsdnet_bootp_server_address;
|
||||
//!! check rtems_bsdnet_bootp_cmdline
|
||||
#ifndef RTEMS_LEGACY_STACK
|
||||
char *rtems_bsdnet_bootp_server_name = bootp_server_name_init;
|
||||
char *rtems_bsdnet_bootp_boot_file_name = bootp_boot_file_name_init;
|
||||
char *rtems_bsdnet_bootp_cmdline = bootp_cmdline_init;
|
||||
#endif // not LEGACY Stack
|
||||
|
||||
int osdNTPGet(struct timespec *now)
|
||||
{
|
||||
return !epicsNtpGetTime(rtemsInit_NTP_server_ip, now);
|
||||
}
|
||||
|
||||
/*
|
||||
* Prototypes for some functions not in header files
|
||||
@@ -251,13 +248,13 @@ initialize_local_filesystem(char **argv)
|
||||
printf("Can't unpack tar filesystem\n");
|
||||
return 0;
|
||||
}
|
||||
if ((fd = open(rtems_bootp_cmdline, 0)) >= 0) {
|
||||
if ((fd = open(rtems_bsdnet_bootp_cmdline, 0)) >= 0) {
|
||||
close(fd);
|
||||
printf ("***** Found startup script (%s) in IMFS *****\n", rtems_bootp_cmdline);
|
||||
argv[1] = rtems_bootp_cmdline;
|
||||
printf ("***** Found startup script (%s) in IMFS *****\n", rtems_bsdnet_bootp_cmdline);
|
||||
argv[1] = rtems_bsdnet_bootp_cmdline;
|
||||
return 1;
|
||||
}
|
||||
printf ("***** Startup script (%s) not in IMFS *****\n", rtems_bootp_cmdline);
|
||||
printf ("***** Startup script (%s) not in IMFS *****\n", rtems_bsdnet_bootp_cmdline);
|
||||
}
|
||||
} */
|
||||
return 0;
|
||||
@@ -336,7 +333,7 @@ initialize_remote_filesystem(char **argv, int hasLocalFilesystem)
|
||||
mount_point, strerror(errno));
|
||||
*cp = '/';
|
||||
}
|
||||
argv[1] = rtems_bootp_cmdline;
|
||||
argv[1] = rtems_bsdnet_bootp_cmdline;
|
||||
}
|
||||
else if (hasLocalFilesystem) {
|
||||
return;
|
||||
@@ -348,22 +345,22 @@ initialize_remote_filesystem(char **argv, int hasLocalFilesystem)
|
||||
* if the pathname does not begin with a '/'. This allows
|
||||
* NFS and TFTP to have a similar view of the remote system.
|
||||
*/
|
||||
if (rtems_bootp_cmdline[0] == '/')
|
||||
cp = rtems_bootp_cmdline + 1;
|
||||
if (rtems_bsdnet_bootp_cmdline[0] == '/')
|
||||
cp = rtems_bsdnet_bootp_cmdline + 1;
|
||||
else
|
||||
cp = rtems_bootp_cmdline;
|
||||
cp = rtems_bsdnet_bootp_cmdline;
|
||||
cp = strchr(cp, '/');
|
||||
if ((cp == NULL)
|
||||
|| ((l = cp - rtems_bootp_cmdline) == 0))
|
||||
LogFatal("\"%s\" is not a valid command pathname.\n", rtems_bootp_cmdline);
|
||||
|| ((l = cp - rtems_bsdnet_bootp_cmdline) == 0))
|
||||
LogFatal("\"%s\" is not a valid command pathname.\n", rtems_bsdnet_bootp_cmdline);
|
||||
cp = mustMalloc(l + 20, "NFS mount paths");
|
||||
server_path = cp;
|
||||
server_name = rtems_bsdnet_bootp_server_name;
|
||||
if (rtems_bootp_cmdline[0] == '/') {
|
||||
if (rtems_bsdnet_bootp_cmdline[0] == '/') {
|
||||
mount_point = server_path;
|
||||
strncpy(mount_point, rtems_bootp_cmdline, l);
|
||||
strncpy(mount_point, rtems_bsdnet_bootp_cmdline, l);
|
||||
mount_point[l] = '\0';
|
||||
argv[1] = rtems_bootp_cmdline;
|
||||
argv[1] = rtems_bsdnet_bootp_cmdline;
|
||||
/*
|
||||
* Its probably common to embed the mount point in the server
|
||||
* name so, when this is occurring, dont clobber the mount point
|
||||
@@ -400,14 +397,14 @@ initialize_remote_filesystem(char **argv, int hasLocalFilesystem)
|
||||
}
|
||||
}
|
||||
else {
|
||||
char *abspath = mustMalloc(strlen(rtems_bootp_cmdline)+2,"Absolute command path");
|
||||
char *abspath = mustMalloc(strlen(rtems_bsdnet_bootp_cmdline)+2,"Absolute command path");
|
||||
strcpy(server_path, "/tftpboot/");
|
||||
mount_point = server_path + strlen(server_path);
|
||||
strncpy(mount_point, rtems_bootp_cmdline, l);
|
||||
strncpy(mount_point, rtems_bsdnet_bootp_cmdline, l);
|
||||
mount_point[l] = '\0';
|
||||
mount_point--;
|
||||
strcpy(abspath, "/");
|
||||
strcat(abspath, rtems_bootp_cmdline);
|
||||
strcat(abspath, rtems_bsdnet_bootp_cmdline);
|
||||
argv[1] = abspath;
|
||||
}
|
||||
}
|
||||
@@ -523,7 +520,9 @@ static void rtshellCallFunc(const iocshArgBuf *args)
|
||||
static void
|
||||
rtems_netstat (unsigned int level)
|
||||
{
|
||||
/*
|
||||
#ifndef RTEMS_LEGACY_STACK
|
||||
printf ("***** Sorry not implemented yet with the new network stack (bsdlib)\n");
|
||||
#else
|
||||
rtems_bsdnet_show_if_stats ();
|
||||
rtems_bsdnet_show_mbuf_stats ();
|
||||
if (level >= 1) {
|
||||
@@ -535,7 +534,7 @@ rtems_netstat (unsigned int level)
|
||||
rtems_bsdnet_show_udp_stats ();
|
||||
rtems_bsdnet_show_tcp_stats ();
|
||||
}
|
||||
*/
|
||||
#endif
|
||||
}
|
||||
|
||||
static const iocshArg netStatArg0 = { "level",iocshArgInt};
|
||||
@@ -719,8 +718,8 @@ dhcpcd_hook_handler(rtems_dhcpcd_hook *hook, char *const *env)
|
||||
}
|
||||
if(!strncmp(name, "new_rtems_cmdline", 20)){
|
||||
//printf(" new_rtems_cmdline : %s\n", value);
|
||||
strncpy(rtems_bootp_cmdline,value, sizeof(bootp_cmdline_init));
|
||||
printf(" rtems_bootp_cmdline : %s\n", rtems_bootp_cmdline);
|
||||
strncpy(rtems_bsdnet_bootp_cmdline,value, sizeof(bootp_cmdline_init));
|
||||
printf(" rtems_bsdnet_bootp_cmdline : %s\n", rtems_bsdnet_bootp_cmdline);
|
||||
}
|
||||
// printf("---> %s = %s\n", name, value);
|
||||
}
|
||||
@@ -952,12 +951,14 @@ POSIX_Init (void *argument)
|
||||
}
|
||||
}
|
||||
#else // Legacy stack, old network initialization
|
||||
/*
|
||||
* Start network
|
||||
*/
|
||||
char *cp;
|
||||
if ((cp = getenv("EPICS_TS_NTP_INET")) != NULL)
|
||||
rtems_bsdnet_config.ntp_server[0] = cp;
|
||||
|
||||
int rtems_bsdnet_ntpserver_count = 1;
|
||||
struct in_addr rtems_bsdnet_ntpserver[1];
|
||||
memcpy(rtems_bsdnet_ntpserver, rtems_bsdnet_config.ntp_server, sizeof(struct in_addr));
|
||||
|
||||
if (rtems_bsdnet_config.network_task_priority == 0)
|
||||
{
|
||||
unsigned int p;
|
||||
@@ -969,6 +970,9 @@ POSIX_Init (void *argument)
|
||||
}
|
||||
printf("\n***** Initializing network (Legacy Stack) *****\n");
|
||||
rtems_bsdnet_initialize_network();
|
||||
printf("\n***** Network Status *****\n");
|
||||
rtems_netstat(3);
|
||||
rtems_bsdnet_synchronize_ntp (0, 0);
|
||||
#endif // not RTEMS_LEGACY_STACK
|
||||
|
||||
printf("\n***** Setting up file system *****\n");
|
||||
|
||||
@@ -16,9 +16,26 @@
|
||||
#include <stdio.h>
|
||||
#include <bsp.h>
|
||||
|
||||
#ifndef VERSION_INT
|
||||
# define VERSION_INT(V,R,M,P) ( ((V)<<24) | ((R)<<16) | ((M)<<8) | (P))
|
||||
#endif
|
||||
#define RTEMS_VERSION_INT VERSION_INT(__RTEMS_MAJOR__, __RTEMS_MINOR__, 0, 0)
|
||||
|
||||
|
||||
#ifdef RTEMS_LEGACY_STACK // old non libbsd stack
|
||||
#include <rtems/rtems_bsdnet.h>
|
||||
|
||||
/*
|
||||
* Comment (by sebastian.huber):
|
||||
*
|
||||
* This rtems_bsdnet_loopattach() was a hack and is no longer needed in RTEMS
|
||||
* 4.11.
|
||||
*
|
||||
* --
|
||||
* Ticket URL: <http://devel.rtems.org/ticket/2375#comment:23>
|
||||
*/
|
||||
|
||||
#if RTEMS_VERSION_INT<=VERSION_INT(4,10,0,0)
|
||||
extern void rtems_bsdnet_loopattach();
|
||||
static struct rtems_bsdnet_ifconfig loopback_config = {
|
||||
"lo0", /* name */
|
||||
@@ -27,7 +44,7 @@ static struct rtems_bsdnet_ifconfig loopback_config = {
|
||||
"127.0.0.1", /* IP address */
|
||||
"255.0.0.0", /* IP net mask */
|
||||
};
|
||||
|
||||
#endif
|
||||
/*
|
||||
* The following conditionals select the network interface card.
|
||||
*
|
||||
@@ -44,7 +61,11 @@ rtems_ne2kpci_driver_attach (struct rtems_bsdnet_ifconfig *config, int attach);
|
||||
static struct rtems_bsdnet_ifconfig ne2k_driver_config = {
|
||||
"ne2", /* name */
|
||||
rtems_ne2kpci_driver_attach, /* attach function */
|
||||
#if RTEMS_VERSION_INT<=VERSION_INT(4,10,0,0)
|
||||
&loopback_config, /* link to next interface */
|
||||
#else
|
||||
NULL,
|
||||
#endif
|
||||
};
|
||||
|
||||
extern int rtems_fxp_attach (struct rtems_bsdnet_ifconfig *, int);
|
||||
@@ -75,12 +96,14 @@ static struct rtems_bsdnet_ifconfig e3c509_driver_config = {
|
||||
# endif
|
||||
# endif
|
||||
|
||||
static struct rtems_bsdnet_ifconfig bsp_driver_config = {
|
||||
static struct rtems_bsdnet_ifconfig netdriver_config = {
|
||||
RTEMS_BSP_NETWORK_DRIVER_NAME, /* name */
|
||||
RTEMS_BSP_NETWORK_DRIVER_ATTACH, /* attach function */
|
||||
#if RTEMS_VERSION_INT<=VERSION_INT(4,10,0,0)
|
||||
&loopback_config, /* link to next interface */
|
||||
#endif
|
||||
};
|
||||
#define FIRST_DRIVER_CONFIG &bsp_driver_config
|
||||
#define FIRST_DRIVER_CONFIG &netdriver_config
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ char *env_nfsServer;
|
||||
char *env_nfsPath;
|
||||
char *env_nfsMountPoint;
|
||||
|
||||
extern char* rtems_bootp_cmdline;
|
||||
extern char* rtems_bsdnet_bootp_cmdline;
|
||||
/*
|
||||
* Split argument string of form nfs_server:nfs_export:<path>
|
||||
* The nfs_export component will be used as:
|
||||
@@ -47,7 +47,7 @@ splitRtemsBsdnetBootpCmdline(void)
|
||||
{
|
||||
char *cp1, *cp2, *cp3;
|
||||
|
||||
if ((cp1 = rtems_bootp_cmdline) == NULL)
|
||||
if ((cp1 = rtems_bsdnet_bootp_cmdline) == NULL)
|
||||
return;
|
||||
if (((cp2 = strchr(cp1, ':')) != NULL)
|
||||
&& (((cp3 = strchr(cp2+1, ' ')) != NULL)
|
||||
@@ -61,7 +61,7 @@ splitRtemsBsdnetBootpCmdline(void)
|
||||
env_nfsServer = cp1;
|
||||
env_nfsMountPoint = env_nfsPath = epicsStrDup(cp2);
|
||||
*cp3 = '/';
|
||||
rtems_bootp_cmdline = cp2;
|
||||
rtems_bsdnet_bootp_cmdline = cp2;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -210,7 +210,7 @@ setBootConfigFromNVRAM(void)
|
||||
|
||||
if ((rtems_bsdnet_bootp_boot_file_name = gev("mot-/dev/enet0-file", nvp)) == NULL)
|
||||
rtems_bsdnet_bootp_boot_file_name = motScriptParm(mot_script_boot, 'f');
|
||||
rtems_bootp_cmdline = gev("epics-script", nvp);
|
||||
rtems_bsdnet_bootp_cmdline = gev("epics-script", nvp);
|
||||
splitRtemsBsdnetBootpCmdline();
|
||||
splitNfsMountPath(gev("epics-nfsmount", nvp));
|
||||
rtems_bsdnet_config.ntp_server[0] = gev("epics-ntpserver", nvp);
|
||||
@@ -316,7 +316,7 @@ setBootConfigFromNVRAM(void)
|
||||
rtems_bsdnet_config.ifconfig->ip_netmask = addr(ip_netmask, nvram.SubnetIPAddressMask);
|
||||
|
||||
rtems_bsdnet_bootp_boot_file_name = nvram.BootFilenameString;
|
||||
rtems_bootp_cmdline = nvram.ArgumentFilenameString;
|
||||
rtems_bsdnet_bootp_cmdline = nvram.ArgumentFilenameString;
|
||||
splitRtemsBsdnetBootpCmdline();
|
||||
}
|
||||
|
||||
@@ -355,7 +355,7 @@ setBootConfigFromNVRAM(void)
|
||||
rtems_bsdnet_config.hostname = env("HOSTNAME", "iocNobody");
|
||||
rtems_bsdnet_config.ifconfig->ip_address = env("IPADDR0", "192.168.0.2");
|
||||
rtems_bsdnet_bootp_boot_file_name = env("BOOTFILE", "uC5282App.boot");
|
||||
rtems_bootp_cmdline = env("CMDLINE", "epics/iocBoot/iocNobody/st.cmd");
|
||||
rtems_bsdnet_bootp_cmdline = env("CMDLINE", "epics/iocBoot/iocNobody/st.cmd");
|
||||
splitNfsMountPath(env("NFSMOUNT", NULL));
|
||||
if ((cp1 = env("TZ", NULL)) != NULL)
|
||||
epicsEnvSet("TZ", cp1);
|
||||
|
||||
@@ -27,6 +27,10 @@
|
||||
#include "postfixPvt.h"
|
||||
#include "libComAPI.h"
|
||||
|
||||
#ifdef RTEMS_HAS_ALTIVEC
|
||||
#pragma GCC push_options
|
||||
#pragma GCC optimize ("O0")
|
||||
#endif
|
||||
|
||||
/* declarations for postfix */
|
||||
|
||||
@@ -626,3 +630,6 @@ LIBCOM_API void
|
||||
}
|
||||
}
|
||||
}
|
||||
#ifdef RTEMS_HAS_ALTIVEC
|
||||
#pragma GCC pop_options
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user