Compare commits
No commits in common. "8cae731729c152b7fa4943b8086acb2130436e2d" and "47dd3676bb5732a8c4da87bbb9de29c9cb83e260" have entirely different histories.
8cae731729
...
47dd3676bb
2
Makefile
2
Makefile
@ -26,8 +26,6 @@ LIBS =
|
||||
|
||||
LD_FLAGS += $(addprefix -L,$(EXTRA_LIB_DIR))
|
||||
|
||||
LD_FLAGS += -lm
|
||||
|
||||
ifneq "$(findstring $(MAKECMDGOALS), build_unit_test exec_unit_test coverage)" ""
|
||||
INCLUDES += test/inc
|
||||
C_FLAGS += --coverage
|
||||
|
12
inc/board.h
12
inc/board.h
@ -1,12 +0,0 @@
|
||||
#ifndef __BOARD_H__
|
||||
#define __BOARD_H__
|
||||
|
||||
#include "driver.h"
|
||||
#include "test_drv.h"
|
||||
|
||||
static const struct driver tst_drv = {
|
||||
.fp = &tst_fp,
|
||||
.dev = NULL
|
||||
};
|
||||
|
||||
#endif
|
28
inc/driver.h
28
inc/driver.h
@ -1,28 +0,0 @@
|
||||
#ifndef __DRIVER_H__
|
||||
#define __DRIVER_H__
|
||||
|
||||
struct driver;
|
||||
|
||||
typedef int (*fp_open_t)(const struct driver *);
|
||||
typedef int (*fp_close_t)(const struct driver *);
|
||||
typedef int (*fp_read_t)(const struct driver *, char *, unsigned int);
|
||||
typedef int (*fp_write_t)(const struct driver *, const char *, unsigned int);
|
||||
|
||||
struct driver_fp {
|
||||
fp_open_t open;
|
||||
fp_close_t close;
|
||||
fp_read_t read;
|
||||
fp_write_t write;
|
||||
};
|
||||
|
||||
struct driver {
|
||||
const struct driver_fp *fp;
|
||||
const void *dev;
|
||||
};
|
||||
|
||||
int drv_open(const struct driver *drv);
|
||||
int drv_close(const struct driver *drv);
|
||||
int drv_read(const struct driver *drv, char *buffer, unsigned int length);
|
||||
int drv_write(const struct driver *drv, const char *buffer, unsigned int length);
|
||||
|
||||
#endif
|
90
inc/gpio.h
Normal file
90
inc/gpio.h
Normal file
@ -0,0 +1,90 @@
|
||||
/*****************************************************************************
|
||||
Copyright 2016 Broadcom Limited. All rights reserved.
|
||||
|
||||
This program is the proprietary software of Broadcom Limited and/or its
|
||||
licensors, and may only be used, duplicated, modified or distributed pursuant
|
||||
to the terms and conditions of a separate, written license agreement executed
|
||||
between you and Broadcom (an "Authorized License").
|
||||
|
||||
Except as set forth in an Authorized License, Broadcom grants no license
|
||||
(express or implied), right to use, or waiver of any kind with respect to the
|
||||
Software, and Broadcom expressly reserves all rights in and to the Software
|
||||
and all intellectual property rights therein. IF YOU HAVE NO AUTHORIZED
|
||||
LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD
|
||||
IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
|
||||
|
||||
Except as expressly set forth in the Authorized License,
|
||||
1. This program, including its structure, sequence and organization,
|
||||
constitutes the valuable trade secrets of Broadcom, and you shall use all
|
||||
reasonable efforts to protect the confidentiality thereof, and to use this
|
||||
information only in connection with your use of Broadcom integrated
|
||||
circuit products.
|
||||
|
||||
2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
|
||||
AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
|
||||
WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT
|
||||
TO THE SOFTWARE. BROADCOM SPECIFICALLY DISCLAIMS ANY AND ALL IMPLIED
|
||||
WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A
|
||||
PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR COMPLETENESS,
|
||||
QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE TO DESCRIPTION.
|
||||
YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR PERFORMANCE OF THE
|
||||
SOFTWARE.
|
||||
|
||||
3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR ITS
|
||||
LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT,
|
||||
OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY RELATING TO
|
||||
YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS
|
||||
OF THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1, WHICHEVER
|
||||
IS GREATER. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF
|
||||
ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.
|
||||
******************************************************************************/
|
||||
#ifndef GPIO_H
|
||||
#define GPIO_H
|
||||
|
||||
#define GPIO_ENABLE 0x1
|
||||
#define GPIO_DISABLE 0x0
|
||||
|
||||
#define GPIO_DRV_EN 0x1
|
||||
#define GPIO_DRV_DIS 0x0
|
||||
|
||||
#define GPIO_SET_1 0x1
|
||||
#define GPIO_SET_0 0x0
|
||||
|
||||
typedef enum {
|
||||
GIO_GROUP_0,
|
||||
GIO_GROUP_1,
|
||||
GIO_GROUP_2,
|
||||
} gio_group;
|
||||
|
||||
typedef enum {
|
||||
FLASH_CS_FUNC_CS,
|
||||
FLASH_CS_FUNC_GPIO,
|
||||
} flash_cs_mux;
|
||||
|
||||
typedef enum {
|
||||
GPIO_PIN_0 = 0x1 << 0,
|
||||
GPIO_PIN_1 = 0x1 << 1,
|
||||
GPIO_PIN_2 = 0x1 << 2,
|
||||
GPIO_PIN_3 = 0x1 << 3,
|
||||
} gpio_pin;
|
||||
|
||||
#define GPIO_PIN_ALL (GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3)
|
||||
|
||||
typedef enum {
|
||||
STRAP_PIN_QSPI,
|
||||
} strap_pin;
|
||||
|
||||
|
||||
/* prototypes */
|
||||
extern void gpio_config_output(gio_group grp, int pin);
|
||||
extern void gpio_config_input(gio_group grp, int pin);
|
||||
extern void gpio_set(gio_group grp, int pin, int val);
|
||||
extern int gpio_get(gio_group grp, int pin);
|
||||
|
||||
extern void gpio_flash_cs_din_en(int enable);
|
||||
extern void gpio_flash_cs_dout_en(int enable);
|
||||
extern void gpio_flash_cs_oe_en(int enable);
|
||||
extern void gpio_flash_mux_sel(flash_cs_mux mux);
|
||||
|
||||
#endif /* GPIO_H */
|
89
inc/io.h
Executable file
89
inc/io.h
Executable file
@ -0,0 +1,89 @@
|
||||
/*****************************************************************************
|
||||
Copyright 2016 Broadcom Limited. All rights reserved.
|
||||
|
||||
This program is the proprietary software of Broadcom Limited and/or its
|
||||
licensors, and may only be used, duplicated, modified or distributed pursuant
|
||||
to the terms and conditions of a separate, written license agreement executed
|
||||
between you and Broadcom (an "Authorized License").
|
||||
|
||||
Except as set forth in an Authorized License, Broadcom grants no license
|
||||
(express or implied), right to use, or waiver of any kind with respect to the
|
||||
Software, and Broadcom expressly reserves all rights in and to the Software
|
||||
and all intellectual property rights therein. IF YOU HAVE NO AUTHORIZED
|
||||
LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD
|
||||
IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
|
||||
|
||||
Except as expressly set forth in the Authorized License,
|
||||
1. This program, including its structure, sequence and organization,
|
||||
constitutes the valuable trade secrets of Broadcom, and you shall use all
|
||||
reasonable efforts to protect the confidentiality thereof, and to use this
|
||||
information only in connection with your use of Broadcom integrated
|
||||
circuit products.
|
||||
|
||||
2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
|
||||
AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
|
||||
WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT
|
||||
TO THE SOFTWARE. BROADCOM SPECIFICALLY DISCLAIMS ANY AND ALL IMPLIED
|
||||
WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A
|
||||
PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR COMPLETENESS,
|
||||
QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE TO DESCRIPTION.
|
||||
YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR PERFORMANCE OF THE
|
||||
SOFTWARE.
|
||||
|
||||
3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR ITS
|
||||
LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT,
|
||||
OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY RELATING TO
|
||||
YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS
|
||||
OF THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1, WHICHEVER
|
||||
IS GREATER. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF
|
||||
ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.
|
||||
******************************************************************************/
|
||||
#ifndef IO_H
|
||||
#define IO_H
|
||||
|
||||
/* Includes */
|
||||
#include <stdint.h>
|
||||
|
||||
/* macros */
|
||||
|
||||
/* 64 bit */
|
||||
/*---------------TBD----------------------*/
|
||||
#define read64(addr) 0 /*--TBD--*/
|
||||
#define write64(addr, msw, lsw)
|
||||
|
||||
/* 32 bit */
|
||||
#define readl(addr) \
|
||||
(*((const volatile uint32_t *) (addr)))
|
||||
|
||||
#define writel(addr, val) \
|
||||
(*((volatile uint32_t *) (addr)) = (uint32_t)(val))
|
||||
|
||||
/* 16 bit */
|
||||
|
||||
#define readw(addr) \
|
||||
(*((const volatile uint16_t *) (addr)))
|
||||
|
||||
#define writew(addr, val) \
|
||||
(*((volatile uint16_t *) (addr)) = (uint16_t)(val))
|
||||
|
||||
|
||||
/* 8-bit */
|
||||
#define readb(addr) \
|
||||
(*((const volatile uint8_t *) (addr)))
|
||||
|
||||
#define writeb(addr, val) \
|
||||
(*((volatile uint8_t *) (addr)) = (uint8_t)(val))
|
||||
|
||||
|
||||
/* Wrappers */
|
||||
#define reg_read64(addr) read64(addr)
|
||||
#define reg_write64(addr, msw, lsw) write64(addr, msw, lsw)
|
||||
#define reg_read32(addr) readl(addr)
|
||||
#define reg_write32(addr, val) writel(addr, val)
|
||||
#define reg_read16(addr) readw(addr)
|
||||
#define reg_write16(addr, val) writew(addr, val)
|
||||
#define reg_read8(addr) readb(addr)
|
||||
#define reg_write8(addr, val) writeb(addr, val)
|
||||
|
||||
#endif /* IO_H */
|
198819
inc/sysmap.h
Normal file
198819
inc/sysmap.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,20 +0,0 @@
|
||||
#ifndef __TEST_DRV_H__
|
||||
#define __TEST_DRV_H__
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "driver.h"
|
||||
|
||||
int tst_open(const struct driver *drv);
|
||||
int tst_close(const struct driver *drv);
|
||||
int tst_read(const struct driver *drv, char *buffer, unsigned int length);
|
||||
int tst_write(const struct driver *drv, const char *buffer, unsigned int length);
|
||||
|
||||
static const struct driver_fp tst_fp = {
|
||||
.open = tst_open,
|
||||
.close = tst_close,
|
||||
.read = tst_read,
|
||||
.write = tst_write
|
||||
};
|
||||
|
||||
#endif
|
32
src/driver.c
32
src/driver.c
@ -1,32 +0,0 @@
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "driver.h"
|
||||
|
||||
int drv_open(const struct driver *drv)
|
||||
{
|
||||
assert(drv != NULL);
|
||||
|
||||
return drv->fp->open(drv);
|
||||
}
|
||||
|
||||
int drv_close(const struct driver *drv)
|
||||
{
|
||||
assert(drv != NULL);
|
||||
|
||||
return drv->fp->close(drv);
|
||||
}
|
||||
|
||||
int drv_read(const struct driver *drv, char *buffer, unsigned int length)
|
||||
{
|
||||
assert(drv != NULL);
|
||||
|
||||
return drv->fp->read(drv, buffer, length);
|
||||
}
|
||||
|
||||
int drv_write(const struct driver *drv, const char *buffer, unsigned int length)
|
||||
{
|
||||
assert(drv != NULL);
|
||||
|
||||
return drv->fp->write(drv, buffer, length);
|
||||
}
|
19
src/main.c
19
src/main.c
@ -1,22 +1,9 @@
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include <tar.h>
|
||||
#include <assert.h>
|
||||
|
||||
|
||||
int main(void)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
printf("Hello\r\r");
|
||||
unsigned long stamp = 55;
|
||||
printf("Hello world.\n");
|
||||
|
||||
char buffer[80];
|
||||
|
||||
snprintf(buffer, sizeof(buffer), "%lu",stamp);
|
||||
|
||||
printf(buffer);
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,27 +0,0 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include "test_drv.h"
|
||||
|
||||
int tst_open(const struct driver *drv)
|
||||
{
|
||||
printf("%s called\n", __func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int tst_close(const struct driver *drv)
|
||||
{
|
||||
printf("%s called\n", __func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int tst_read(const struct driver *drv, char *buffer, unsigned int length)
|
||||
{
|
||||
printf("%s called\n", __func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int tst_write(const struct driver *drv, const char *buffer, unsigned int length)
|
||||
{
|
||||
printf("%s called\n", __func__);
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user