forked from Imagelibrary/rtems
bsp/beagle: Add FDT support for Beaglebone Black
This commit is contained in:
committed by
Sebastian Huber
parent
af207fa9f6
commit
f6115d7cd2
@@ -76,6 +76,7 @@ libbsp_a_LIBADD =
|
|||||||
|
|
||||||
# Shared
|
# Shared
|
||||||
libbsp_a_SOURCES += ../../shared/bootcard.c
|
libbsp_a_SOURCES += ../../shared/bootcard.c
|
||||||
|
libbsp_a_SOURCES += ../../shared/src/bsp-fdt.c
|
||||||
libbsp_a_SOURCES += ../../shared/bspclean.c
|
libbsp_a_SOURCES += ../../shared/bspclean.c
|
||||||
libbsp_a_SOURCES += ../../shared/bspgetworkarea.c
|
libbsp_a_SOURCES += ../../shared/bspgetworkarea.c
|
||||||
libbsp_a_SOURCES += ../../shared/bsppredriverhook.c
|
libbsp_a_SOURCES += ../../shared/bsppredriverhook.c
|
||||||
|
|||||||
@@ -18,6 +18,15 @@ RTEMS_PROG_CC_FOR_TARGET
|
|||||||
RTEMS_CANONICALIZE_TOOLS
|
RTEMS_CANONICALIZE_TOOLS
|
||||||
RTEMS_PROG_CCAS
|
RTEMS_PROG_CCAS
|
||||||
|
|
||||||
|
RTEMS_BSPOPTS_SET([BSP_START_COPY_FDT_FROM_U_BOOT],[*],[1])
|
||||||
|
RTEMS_BSPOPTS_HELP([BSP_START_COPY_FDT_FROM_U_BOOT],[copy the U-Boot provided FDT to an internal storage])
|
||||||
|
|
||||||
|
RTEMS_BSPOPTS_SET([BSP_FDT_BLOB_SIZE_MAX],[*],[262144])
|
||||||
|
RTEMS_BSPOPTS_HELP([BSP_FDT_BLOB_SIZE_MAX],[maximum size of the FDT blob in bytes])
|
||||||
|
|
||||||
|
RTEMS_BSPOPTS_SET([BSP_FDT_BLOB_READ_ONLY],[*],[1])
|
||||||
|
RTEMS_BSPOPTS_HELP([BSP_FDT_BLOB_READ_ONLY],[place the FDT blob into the read-only data area])
|
||||||
|
|
||||||
RTEMS_BSPOPTS_SET([IS_DM3730],[beagleboard*],[1])
|
RTEMS_BSPOPTS_SET([IS_DM3730],[beagleboard*],[1])
|
||||||
RTEMS_BSPOPTS_HELP([IS_DM3730],[true if SOC is DM3730])
|
RTEMS_BSPOPTS_HELP([IS_DM3730],[true if SOC is DM3730])
|
||||||
|
|
||||||
|
|||||||
@@ -187,6 +187,10 @@ static inline void flush_data_cache(void)
|
|||||||
#define BSP_GPIO_PINS_PER_BANK 32
|
#define BSP_GPIO_PINS_PER_BANK 32
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if BSP_START_COPY_FDT_FROM_U_BOOT
|
||||||
|
#define BSP_FDT_IS_SUPPORTED
|
||||||
|
#endif
|
||||||
|
|
||||||
/* i2c stuff */
|
/* i2c stuff */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint32_t rx_or_tx;
|
uint32_t rx_or_tx;
|
||||||
@@ -357,4 +361,4 @@ static inline void write_ttbr0(uint32_t bar)
|
|||||||
*/
|
*/
|
||||||
BSP_START_TEXT_SECTION void beagle_setup_mmu_and_cache(void);
|
BSP_START_TEXT_SECTION void beagle_setup_mmu_and_cache(void);
|
||||||
|
|
||||||
#endif /* LIBBSP_ARM_BEAGLE_BSP_H */
|
#endif /* LIBBSP_ARM_BEAGLE_BSP_H */
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <bsp/bootcard.h>
|
#include <bsp/bootcard.h>
|
||||||
#include <bsp/irq-generic.h>
|
#include <bsp/irq-generic.h>
|
||||||
|
#include <bsp/fdt.h>
|
||||||
|
|
||||||
void bsp_start(void)
|
void bsp_start(void)
|
||||||
{
|
{
|
||||||
@@ -27,3 +28,8 @@ void bsp_start(void)
|
|||||||
bsp_interrupt_initialize();
|
bsp_interrupt_initialize();
|
||||||
printk("\nRTEMS Beagleboard: %s\n", type);
|
printk("\nRTEMS Beagleboard: %s\n", type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t bsp_fdt_map_intr(uint32_t intr)
|
||||||
|
{
|
||||||
|
return intr;
|
||||||
|
}
|
||||||
|
|||||||
@@ -183,6 +183,11 @@ _start:
|
|||||||
bl bsp_start_init_registers_core
|
bl bsp_start_init_registers_core
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef BSP_START_COPY_FDT_FROM_U_BOOT
|
||||||
|
mov r0, r6
|
||||||
|
bl bsp_fdt_copy
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef RTEMS_SMP
|
#ifdef RTEMS_SMP
|
||||||
/* Read MPIDR and get current processor index */
|
/* Read MPIDR and get current processor index */
|
||||||
mrc p15, 0, r0, c0, c0, 5
|
mrc p15, 0, r0, c0, c0, 5
|
||||||
|
|||||||
Reference in New Issue
Block a user