All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Macros | Functions
sw_board.h File Reference
#include <sw_types.h>
#include <sw_board_asm.h>

Go to the source code of this file.

Macros

#define VE_FRAME_BASE   0x90100000
 
#define VE_FRAME_SIZE   (1048576 * 3)
 
#define NORMAL_WORLD_RAM_START   0x80000000
 
#define NSK_LOAD_ADDRESS   NORMAL_WORLD_RAM_START
 
#define GUEST_MEM_SIZE   0x8000000
 
#define SECURE_WORLD_RAM_START   (VE_FRAME_BASE + VE_FRAME_SIZE)
 
#define SECURE_WORLD_RAM_END   (0x940FFFFF - 0x00100000)
 
#define ELF_LOADER_START_ADDRESS   ((u32 *)(0x93ffffff + 1))
 
#define BASE_LOAD_ADDRESS   (SECURE_WORLD_RAM_START - 0x01000000)
 
#define VE_RS1_L2CC   (0x2c100000)
 
#define VE_RS1_SCU   (VE_RS1_MPIC + 0x0000)
 
#define VE_RS1_MPCORE_TWD   (VE_RS1_MPIC + 0x0600)
 
#define VE_SYSTEM_REGS   0x1C010000
 
#define VE_CLCD_BASE   0x1C1F0000
 
#define VE_SYS_FLAGSSET_ADDR   (VE_SYSTEM_REGS + 0x30)
 
#define VE_SYS_FLAGSCLR_ADDR   (VE_SYSTEM_REGS + 0x34)
 
#define SYSCTL_BASE   0x1c020000
 
#define TIMER0_BASE   0x1c110000
 
#define TIMER1_BASE   0x1c110020
 
#define TIMER2_BASE   0x1c120000
 
#define TIMER3_BASE   0x1c120020
 
#define TIMER_COUNT_MAX   0xFFFFFFFF
 
#define UART0_ADDR   0x1C090000
 
#define UART1_ADDR   0x1C0A0000
 
#define UART2_ADDR   0x1C0B0000
 
#define UART3_ADDR   0x1C0C0000
 
#define IRQ_GIC_START   32
 
#define GIC_NR_IRQS   (IRQ_GIC_START + 64)
 
#define GIC_MAX_NR   1
 
#define IRQ_TIMER_PAIR0   (2 + IRQ_GIC_START)
 
#define IRQ_TIMER_PAIR1   (3 + IRQ_GIC_START)
 
#define FREE_RUNNING_TIMER_IRQ   IRQ_TIMER_PAIR1
 
#define TICK_TIMER_IRQ   IRQ_TIMER_PAIR1
 
#define FREE_RUNNING_TIMER_BASE   TIMER2_BASE
 
#define TICK_TIMER_BASE   TIMER3_BASE
 
#define SECURE_UART_BASE   UART0_ADDR
 
#define NO_OF_INTERRUPTS_IMPLEMENTED   GIC_NR_IRQS
 
#define GIC_ITLINES   2
 

Functions

void board_map_secure_page_table (u32 *pgd)
 
pa_t get_secure_ram_start_addr (void)
 This functions returns the starting address of the Secure RAM.
 
pa_t get_secure_ram_end_addr (void)
 This function returns the End address of the Secure RAM.
 
void board_init (void)
 
int board_mmc_init (void)
 Board specific eMMC init routine.
 
void unmap_init_section (void)
 This functions unmaps init and mod init from secure ram.
 

Macro Definition Documentation

#define BASE_LOAD_ADDRESS   (SECURE_WORLD_RAM_START - 0x01000000)

Definition at line 45 of file sw_board.h.

#define ELF_LOADER_START_ADDRESS   ((u32 *)(0x93ffffff + 1))

Definition at line 43 of file sw_board.h.

#define FREE_RUNNING_TIMER_BASE   TIMER2_BASE

Definition at line 91 of file sw_board.h.

#define FREE_RUNNING_TIMER_IRQ   IRQ_TIMER_PAIR1

Definition at line 88 of file sw_board.h.

#define GIC_ITLINES   2

Definition at line 102 of file sw_board.h.

#define GIC_MAX_NR   1

Definition at line 82 of file sw_board.h.

#define GIC_NR_IRQS   (IRQ_GIC_START + 64)

Definition at line 81 of file sw_board.h.

#define GUEST_MEM_SIZE   0x8000000

Definition at line 39 of file sw_board.h.

#define IRQ_GIC_START   32

Definition at line 80 of file sw_board.h.

#define IRQ_TIMER_PAIR0   (2 + IRQ_GIC_START)

Definition at line 85 of file sw_board.h.

#define IRQ_TIMER_PAIR1   (3 + IRQ_GIC_START)

Definition at line 86 of file sw_board.h.

#define NO_OF_INTERRUPTS_IMPLEMENTED   GIC_NR_IRQS

Definition at line 96 of file sw_board.h.

#define NORMAL_WORLD_RAM_START   0x80000000

Definition at line 36 of file sw_board.h.

#define NSK_LOAD_ADDRESS   NORMAL_WORLD_RAM_START

Definition at line 37 of file sw_board.h.

#define SECURE_UART_BASE   UART0_ADDR

Definition at line 94 of file sw_board.h.

#define SECURE_WORLD_RAM_END   (0x940FFFFF - 0x00100000)

Definition at line 41 of file sw_board.h.

#define SECURE_WORLD_RAM_START   (VE_FRAME_BASE + VE_FRAME_SIZE)

Definition at line 40 of file sw_board.h.

#define SYSCTL_BASE   0x1c020000

Definition at line 65 of file sw_board.h.

#define TICK_TIMER_BASE   TIMER3_BASE

Definition at line 92 of file sw_board.h.

#define TICK_TIMER_IRQ   IRQ_TIMER_PAIR1

Definition at line 89 of file sw_board.h.

#define TIMER0_BASE   0x1c110000

Definition at line 67 of file sw_board.h.

#define TIMER1_BASE   0x1c110020

Definition at line 68 of file sw_board.h.

#define TIMER2_BASE   0x1c120000

Definition at line 69 of file sw_board.h.

#define TIMER3_BASE   0x1c120020

Definition at line 70 of file sw_board.h.

#define TIMER_COUNT_MAX   0xFFFFFFFF

Definition at line 71 of file sw_board.h.

#define UART0_ADDR   0x1C090000

Definition at line 73 of file sw_board.h.

#define UART1_ADDR   0x1C0A0000

Definition at line 74 of file sw_board.h.

#define UART2_ADDR   0x1C0B0000

Definition at line 75 of file sw_board.h.

#define UART3_ADDR   0x1C0C0000

Definition at line 76 of file sw_board.h.

#define VE_CLCD_BASE   0x1C1F0000

Definition at line 58 of file sw_board.h.

#define VE_FRAME_BASE   0x90100000

versatile express RS1 board configuration

Definition at line 33 of file sw_board.h.

#define VE_FRAME_SIZE   (1048576 * 3)

Definition at line 34 of file sw_board.h.

#define VE_RS1_L2CC   (0x2c100000)

Definition at line 52 of file sw_board.h.

#define VE_RS1_MPCORE_TWD   (VE_RS1_MPIC + 0x0600)

Definition at line 55 of file sw_board.h.

#define VE_RS1_SCU   (VE_RS1_MPIC + 0x0000)

Definition at line 54 of file sw_board.h.

#define VE_SYS_FLAGSCLR_ADDR   (VE_SYSTEM_REGS + 0x34)

Definition at line 60 of file sw_board.h.

#define VE_SYS_FLAGSSET_ADDR   (VE_SYSTEM_REGS + 0x30)

Definition at line 59 of file sw_board.h.

#define VE_SYSTEM_REGS   0x1C010000

Definition at line 57 of file sw_board.h.

Function Documentation

void board_init ( void  )

Definition at line 64 of file board.c.

{
}
void board_map_secure_page_table ( u32 pgd)
Parameters
pgd

Definition at line 96 of file board.c.

{
va_t va;
pa_t pa;
/* Map kernel code */
/* text */
pa = va;
/*init and mod init section*/
va = get_init_start_addr();
pa = va;
map_secure_memory(va, pa, get_init_size(), PTF_PROT_URO| PTF_EXEC);
/*Mapping frame buffer memory*/
pa = va;
/* data */
pa = va;
/* bss */
pa = va;
#if 1
/*
* map support data structures for heap - This is a workaround
* and has to be fixed in the memory manager
*/
pa = va;
map_secure_memory(va, pa, 0x100000, PTF_PROT_URW);
#endif
/* Map devices */
map_device_table(ve_devmap);
/* Map User access devices */
map_user_access_device_table(ve_usr_access_devmap);
}
int board_mmc_init ( void  )

Board specific eMMC init routine.

pa_t get_secure_ram_end_addr ( void  )

This function returns the End address of the Secure RAM.

Returns
End address of the Secure RAM

Definition at line 176 of file board.c.

pa_t get_secure_ram_start_addr ( void  )

This functions returns the starting address of the Secure RAM.

Returns
Starting address of the Secure RAM

Definition at line 165 of file board.c.

void unmap_init_section ( void  )

This functions unmaps init and mod init from secure ram.

Definition at line 152 of file board.c.

{
va_t va;
va = get_init_start_addr();
unmap_secure_memory(va, get_init_size());
}