Пример #1
0
int main ( int argc, char **argv )
{
    int status, length;
    io_channel chan;
    struct rpc_msg msg;

	char *CApath=NULL,*CAfile=NULL;
	int badop=0;
	int ret=1;
	int client_auth=0;
	int server_auth=0;
	SSL_CTX *s_ctx=NULL;
    /*
     * Confirm logical link with initiating client.
     */
    LIB$INIT_TIMER();
    status = SYS$ASSIGN ( &sysnet, &chan, 0, 0, 0 );
    printf("status of assign to SYS$NET: %d\n", status );
    /*
     * Initialize standard out and error files.
     */
	if (bio_err == NULL)
		if ((bio_err=BIO_new(BIO_s_file())) != NULL)
			BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
	if (bio_stdout == NULL)
		if ((bio_stdout=BIO_new(BIO_s_file())) != NULL)
			BIO_set_fp(bio_stdout,stdout,BIO_NOCLOSE);
    /*
     * get the preferred cipher list and other initialization
     */
	if (cipher == NULL) cipher=getenv("SSL_CIPHER");
	printf("cipher list: %s\n", cipher ? cipher : "{undefined}" );

	SSL_load_error_strings();
	OpenSSL_add_all_algorithms();

/* DRM, this was the original, but there is no such thing as SSLv2()
	s_ctx=SSL_CTX_new(SSLv2());
*/
	s_ctx=SSL_CTX_new(SSLv2_server_method());

	if (s_ctx == NULL) goto end;

	SSL_CTX_use_certificate_file(s_ctx,TEST_SERVER_CERT,SSL_FILETYPE_PEM);
	SSL_CTX_use_RSAPrivateKey_file(s_ctx,TEST_SERVER_CERT,SSL_FILETYPE_PEM);
	printf("Loaded server certificate: '%s'\n", TEST_SERVER_CERT );

    /*
     * Take commands from client until bad status.
     */
    LIB$SHOW_TIMER();
    status = doit ( chan, s_ctx );
    LIB$SHOW_TIMER();
    /*
     * do final cleanup and exit.
     */
end:
	if (s_ctx != NULL) SSL_CTX_free(s_ctx);
    LIB$SHOW_TIMER();
    return 1;
}
Пример #2
0
void lowlevel_init(void)
{
	struct misc_regs *misc_p = (struct misc_regs *)CONFIG_SPEAR_MISCBASE;
#if defined(CONFIG_SPEAR1310) && !defined(CONFIG_SPEAR1380_REVC)
	u32 pad_dir_sel1_reg;
#endif

	/* Pad configuration */
#ifdef CONFIG_SPEAR1380_REVC
	/* bootrom IO are routed and driven by IPs in standard part.
	* To avoid contention on Spear output driven and other device on board
	* IO are routed to RAS and not driven because RAS part is always under reset
	*
	* IOs routed to standard IPs:
	*   EGPIO_A[0],..EGPIO_A[7],EGPIO_B[8],EGPIO_B[9]
	*   SDA,SCL
	*   SMIDATAIN,SMIDATAOUT,SMI_CLK,SMI_nCS[0],SMI_nCS[1]
	*   NFIO[0],..,NFIO[7],NFCE0,NFWE,NFRE,NFALE,NFCLE,NFRB,NFRWPRT0
	*   GMII_TXCLK125,GMII_TXCLK,MII_TXCLK,TXD[0],TXD[1],TXD[2],TXD[3],GMII_TXD[4],GMII_TXD[5],GMII_TXD[6],GMII_TXD[7],TX_EN,TX_ER
	*   RX_CLK,RX_DV,RX_ER,RXD[0],RXD[1],RXD[2],RXD[3],GMII_RXD[4],GMII_RXD[5],GMII_RXD[6],GMII_RXD[7],GMII_COL,CRS,MDC,MDIO
	*   MCI_Data0,MCI_Data1_SD,MCI_Data2_SD,MCI_Data3_SD,MCI_Addr1_CLE_CLK,MCI_nCD_SD_MMC,MCI_DMARQ_RnB_WP,MCI_SD_CMD
	*
	* Others configurable IOs are configured for RAS.
	*
	* use Table 60 in SPEAR1310 - ADDRESS MAP AND REGISTERS RM - REV2.pdf
	*
	*/

   /* pad function enable :
    * 0 : pad routed to RAS
    * 1 : pad routed to IP
    */
   writel(  0x1         /* bit 0 is reserved in revC */
		 | (0x1 << 2)   /* SDA, SCL */
		 | (0x3ff << 6) /* EGPIO_A[0],..EGPIO_A[7],EGPIO_B[8],EGPIO_B[9] */
		 | (0x1 << 16)  /* SMIDATAIN,SMIDATAOUT,SMI_CLK,SMI_nCS[0],SMI_nCS[1] */
		 | (0x1 << 17)  /* FSMC for NAND 8-bit */
		 | (0x1f << 18) /* MAC0 */
		 , &misc_p->pad_function_en_1);
   writel(((0x1 << 27)) /* MCI_Data0 */
		 , &misc_p->pad_function_en_2);
   writel( (0x7 << 3)   /* MCI_Data1_SD,MCI_Data2_SD,MCI_Data3_SD */
		 | (0x1 << 7)   /* MCI_Addr1_CLE_CLK */
		 | (0x1 << 15)  /* MCI_nCD_SD_MMC */
		 | (0x1 << 17)  /* MCI_DMARQ_RnB_WP */
		 | (0x1 << 26)  /* MCI_SD_CMD */
		 , &misc_p->pad_function_en_3);

   /* pad direction selection :
    * 0 : pad direction set to input
    * 1 : pad direction controlled by IP or RAS depending on pad_function_en_* registers
    */
   writel( 0xfffffffe, &misc_p->pad_dir_sel_1); // bit 0 reserved
   writel( 0xffffffff, &misc_p->pad_dir_sel_2);
   writel( 0x7fffffff, &misc_p->pad_dir_sel_3); // bit 31 reserved

   /* pad pull up and pull down configuration : done in OS */
   /* pad drive level configuration : done in OS */
   /* pad slew level configuration : done in OS */

#endif

	/* Initialize PLLs */
	sys_init();

#if defined(CONFIG_OS_BOOT)
	writel(readl(&misc_p->perip1_clk_enb) | UART_CLKEN,
			&misc_p->perip1_clk_enb);
#endif

	/* Enable IPs (release reset) */
	writel(PERIPH1_RST_ALL, &misc_p->perip1_sw_rst);
	writel(PERIPH2_RST_ALL, &misc_p->perip2_sw_rst);

#if defined(CONFIG_SPEAR900_LCAD) || defined(CONFIG_SPEAR1340_LCAD)
	pl061_init();

	/* Power on complete */
	set_lcad_power_on();
#endif

#if defined(CONFIG_SPEAR1340)
	writel(PERIPH3_RST_ALL, &misc_p->perip3_sw_rst);
#else
	writel(RAS_RST_ALL, &misc_p->ras_sw_rst);
#endif

#if defined(CONFIG_SPEAR1310) && !defined(CONFIG_SPEAR1380_REVC)
	pad_dir_sel1_reg = readl(&misc_p->pad_dir_sel_1);
	pad_dir_sel1_reg |= PAD_DIR_SEL_1_UART;
	writel(pad_dir_sel1_reg, &misc_p->pad_dir_sel_1);
#endif

	/* Read Ras Gpio for hardware configuration bits of MPMC*/
#ifdef CONFIG_SPEAR1380_REVC

	/* init uart debug */
	spear_serial_init();

	/* Configure ras clock, reset, and pads to access RGPIO2B pins
	 * used to read hardware configuration bits */
	struct conf_regs *conf  = (struct conf_regs *)CONFIG_RAS_CONF_BASE;
	u32 perip1_clk_enb;
	u32 ras_clk_enb;

	/* enable CLK periph 1 */
	perip1_clk_enb = readl(&misc_p->perip1_clk_enb);
	perip1_clk_enb |= (0x1 );          // enable bus (ahb axi) clk
	perip1_clk_enb |= (GPIO1_CLKEN);   // enable clk for gpio B used for test mode detection
	writel(perip1_clk_enb, &misc_p->perip1_clk_enb);

	/* enable 166Mhz, 83Mhz, 48Mhz and 30Mkz clock for RAS. */
	ras_clk_enb = 0x1 | 0x1 << 1 | 0x1 << 5 | 0x1 << 6;
	writel(ras_clk_enb, &misc_p->ras_clk_enb);

	/* disable protection */
	writel(DIS_PROT_WORD, &conf->prot_dis);

	/* configure ROW[5:2] pad = hardware configuration bits */
	u32 regIO = readl(&conf->IO23);
	regIO = (regIO & (~((u32)(0xffff) << 16)))
			| (RAS_PAD_FUNC7 << 16)  /* ROW[2] */
			| (RAS_PAD_FUNC7 << 20)  /* ROW[3] */
			| (RAS_PAD_FUNC7 << 24)  /* ROW[4] */
			| (RAS_PAD_FUNC7 << 28); /* ROW[5] */
	writel(regIO, &conf->IO23);

	/* enable protection */
	writel(EN_PROT_WORD, &conf->prot_en);
	readl(&conf->prot_en);

#ifdef DEBUG_TRACK_DDR_INIT
	uartDebug_Puts("\r\n");
	uartDebug_Puts("pad conf to rd hw conf 16 or 32 bit ddr : OK\r\n");
#endif

#endif

	pll_late_init();

	/* Initialize MPMC */
	RESET_TIMER;
	mpmc_init();
	SHOW_TIMER("mpmc_init");

#ifdef DEBUG_TRACK_DDR_INIT
	uartDebug_Puts("mpmc_init : OK\r\n");
#endif

	/* SoC specific initialization */
	soc_init();

#ifdef DEBUG_TRACK_DDR_INIT
	uartDebug_Puts("soc_init : OK\r\n");
#endif

#ifdef CONFIG_RAM_TEST
	/* WARNING: must wait few time before accessing DDR */
	/* process test for DDR */
	RESET_TIMER;
    test_ddr(TEST_DDR_WITHOUT_ECC);
	SHOW_TIMER("test_ddr_no_ecc");

#ifdef DEBUG_TRACK_DDR_INIT
	uartDebug_Puts("test_ddr wo ECC: OK\r\n");
#endif

#endif

}