forked from yystopf/xiuos
Change some compile flags.
This commit is contained in:
parent
48abec8a00
commit
52387d47a7
|
@ -1,6 +1,7 @@
|
||||||
export CROSS_COMPILE ?= arm-none-eabi-
|
export CROSS_COMPILE ?= arm-none-eabi-
|
||||||
export DEVICE = -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16 -ftree-vectorize -ffast-math -mfloat-abi=softfp
|
export DEVICE = -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16 -ftree-vectorize -ffast-math -mfloat-abi=softfp
|
||||||
export CFLAGS := $(DEVICE) -Wall -O2 -g -gdwarf-2 -Wnull-dereference -Waddress -Warray-bounds -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration -Wcomment -Wformat -Wmissing-braces -Wnonnull -Wparentheses -Wpointer-sign -Wreturn-type -Wsequence-point -Wstrict-aliasing -Wstrict-overflow=1 -Wswitch -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wunused-function
|
# export CFLAGS := $(DEVICE) -std=c11 -Wall -O2 -g -gdwarf-2 -Wnull-dereference -Waddress -Warray-bounds -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration -Wcomment -Wformat -Wmissing-braces -Wnonnull -Wparentheses -Wpointer-sign -Wreturn-type -Wsequence-point -Wstrict-aliasing -Wstrict-overflow=1 -Wswitch -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wunused-function
|
||||||
|
export CFLAGS := $(DEVICE) -std=c11 -Wall -O2 -g -gdwarf-2 -Waddress -Warray-bounds -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration -Wcomment -Wformat -Wmissing-braces -Wnonnull -Wparentheses -Wpointer-sign -Wreturn-type -Wsequence-point -Wstrict-aliasing -Wstrict-overflow=1 -Wswitch -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wunused-function
|
||||||
export AFLAGS := -c $(DEVICE) -x assembler-with-cpp -D__ASSEMBLY__ -gdwarf-2
|
export AFLAGS := -c $(DEVICE) -x assembler-with-cpp -D__ASSEMBLY__ -gdwarf-2
|
||||||
# export LFLAGS := $(DEVICE) -Wl,-Map=XiZi-imx6q-sabrelite.map,-cref,-u,_boot_start -T $(KERNEL_ROOT)/hardkernel/arch/arm/armv7-a/cortex-a9/preboot_for_imx6q-sabrelite/nxp_imx6q_sabrelite.lds
|
# export LFLAGS := $(DEVICE) -Wl,-Map=XiZi-imx6q-sabrelite.map,-cref,-u,_boot_start -T $(KERNEL_ROOT)/hardkernel/arch/arm/armv7-a/cortex-a9/preboot_for_imx6q-sabrelite/nxp_imx6q_sabrelite.lds
|
||||||
export LFLAGS := $(DEVICE) --specs=nosys.specs -Wl,-Map=XiZi-imx6q-sabrelite.map,-cref,-u,_boot_start -T $(KERNEL_ROOT)/hardkernel/arch/arm/armv7-a/cortex-a9/preboot_for_imx6q-sabrelite/nxp_imx6q_sabrelite.lds
|
export LFLAGS := $(DEVICE) --specs=nosys.specs -Wl,-Map=XiZi-imx6q-sabrelite.map,-cref,-u,_boot_start -T $(KERNEL_ROOT)/hardkernel/arch/arm/armv7-a/cortex-a9/preboot_for_imx6q-sabrelite/nxp_imx6q_sabrelite.lds
|
||||||
|
|
|
@ -70,10 +70,10 @@ Modification:
|
||||||
#define ISB() __asm__ volatile("isb\n\t")
|
#define ISB() __asm__ volatile("isb\n\t")
|
||||||
|
|
||||||
#define _ARM_MRC(coproc, opcode1, Rt, CRn, CRm, opcode2) \
|
#define _ARM_MRC(coproc, opcode1, Rt, CRn, CRm, opcode2) \
|
||||||
asm volatile("mrc p" #coproc ", " #opcode1 ", %[output], c" #CRn ", c" #CRm ", " #opcode2 "\n" : [output] "=r"(Rt))
|
__asm__ volatile("mrc p" #coproc ", " #opcode1 ", %[output], c" #CRn ", c" #CRm ", " #opcode2 "\n" : [output] "=r"(Rt))
|
||||||
|
|
||||||
#define _ARM_MCR(coproc, opcode1, Rt, CRn, CRm, opcode2) \
|
#define _ARM_MCR(coproc, opcode1, Rt, CRn, CRm, opcode2) \
|
||||||
asm volatile("mcr p" #coproc ", " #opcode1 ", %[input], c" #CRn ", c" #CRm ", " #opcode2 "\n" ::[input] "r"(Rt))
|
__asm__ volatile("mcr p" #coproc ", " #opcode1 ", %[input], c" #CRn ", c" #CRm ", " #opcode2 "\n" ::[input] "r"(Rt))
|
||||||
|
|
||||||
#define WriteReg(value, address) (*(volatile unsigned int*)(address) = (value))
|
#define WriteReg(value, address) (*(volatile unsigned int*)(address) = (value))
|
||||||
#define ReadReg(address) (*(volatile unsigned int*)(address))
|
#define ReadReg(address) (*(volatile unsigned int*)(address))
|
||||||
|
|
|
@ -56,7 +56,7 @@ typedef unsigned int reg32_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Typecast macro for C or asm. In C, the cast is applied, while in asm it is excluded. This is
|
// Typecast macro for C or __asm__. In C, the cast is applied, while in __asm__ it is excluded. This is
|
||||||
// used to simplify macro definitions in the module register headers.
|
// used to simplify macro definitions in the module register headers.
|
||||||
//
|
//
|
||||||
#ifndef __REG_VALUE_TYPE
|
#ifndef __REG_VALUE_TYPE
|
||||||
|
|
|
@ -18,14 +18,14 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file soc_memory_map.h
|
* @file soc_memory_map.h
|
||||||
* @brief support imx6q soc memory map define, reference from u-boot-2009-08/include/asm-arm/arch-mx6/mx6.h
|
* @brief support imx6q soc memory map define, reference from u-boot-2009-08/include/__asm__-arm/arch-mx6/mx6.h
|
||||||
* @version 3.0
|
* @version 3.0
|
||||||
* @author AIIT XUOS Lab
|
* @author AIIT XUOS Lab
|
||||||
* @date 2023.09.08
|
* @date 2023.09.08
|
||||||
*/
|
*/
|
||||||
/*************************************************
|
/*************************************************
|
||||||
File name: soc_memory_map.h
|
File name: soc_memory_map.h
|
||||||
Description: support imx6q soc memory map define, reference from u-boot-2009-08/include/asm-arm/arch-mx6/mx6.h
|
Description: support imx6q soc memory map define, reference from u-boot-2009-08/include/__asm__-arm/arch-mx6/mx6.h
|
||||||
Others:
|
Others:
|
||||||
History:
|
History:
|
||||||
1. Date: 2023-08-28
|
1. Date: 2023-08-28
|
||||||
|
|
|
@ -85,7 +85,7 @@ MEMORY
|
||||||
{
|
{
|
||||||
ocram (rwx) : ORIGIN = 0x00900000, LENGTH = 256K
|
ocram (rwx) : ORIGIN = 0x00900000, LENGTH = 256K
|
||||||
ddr3 (rwx) : ORIGIN = 0x10000000, LENGTH = 1024M
|
ddr3 (rwx) : ORIGIN = 0x10000000, LENGTH = 1024M
|
||||||
virt_ddr3 (WRX) : ORIGIN = 0x90011000, LENGTH = 1024M
|
virt_ddr3 (WRX) : ORIGIN = 0x90014000, LENGTH = 1024M
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTIONS
|
SECTIONS
|
||||||
|
@ -159,7 +159,7 @@ SECTIONS
|
||||||
} > ddr3
|
} > ddr3
|
||||||
|
|
||||||
/* Other Kernel code is placed over 0x10011000(phy) and 0x90011000(virt). */
|
/* Other Kernel code is placed over 0x10011000(phy) and 0x90011000(virt). */
|
||||||
.text : AT(0x10011000) {
|
.text : AT(0x10014000) {
|
||||||
*(.vectors)
|
*(.vectors)
|
||||||
. = ALIGN(0x1000);
|
. = ALIGN(0x1000);
|
||||||
*(.text .text.* .gnu.linkonce.t.*)
|
*(.text .text.* .gnu.linkonce.t.*)
|
||||||
|
|
|
@ -56,10 +56,9 @@ void GetUsrDevPteAttr(uintptr_t* attr)
|
||||||
|
|
||||||
usr_pte_attr.entry = 0;
|
usr_pte_attr.entry = 0;
|
||||||
usr_pte_attr.desc_type = PAGE_4K;
|
usr_pte_attr.desc_type = PAGE_4K;
|
||||||
usr_pte_attr.C = 0;
|
|
||||||
usr_pte_attr.B = 0;
|
|
||||||
usr_pte_attr.TEX = 2;
|
usr_pte_attr.TEX = 2;
|
||||||
usr_pte_attr.S = 0;
|
// usr_pte_attr.B = 1;
|
||||||
|
usr_pte_attr.S = 1;
|
||||||
usr_pte_attr.AP1_0 = AccessPermission_KernelUser;
|
usr_pte_attr.AP1_0 = AccessPermission_KernelUser;
|
||||||
}
|
}
|
||||||
*attr = usr_pte_attr.entry;
|
*attr = usr_pte_attr.entry;
|
||||||
|
@ -99,5 +98,13 @@ void GetKernPteAttr(uintptr_t* attr)
|
||||||
|
|
||||||
void GetPdeAttr(uintptr_t* attr)
|
void GetPdeAttr(uintptr_t* attr)
|
||||||
{
|
{
|
||||||
*attr = PAGE_DIR_COARSE;
|
static char init = 0;
|
||||||
|
static PageDirEntry pde_attr;
|
||||||
|
if (init == 0) {
|
||||||
|
init = 1;
|
||||||
|
|
||||||
|
pde_attr.entry = 0;
|
||||||
|
pde_attr.desc_type = PAGE_DIR_COARSE;
|
||||||
|
}
|
||||||
|
*attr = pde_attr.entry;
|
||||||
}
|
}
|
|
@ -21,14 +21,14 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file iomux_v3.h
|
* @file iomux_v3.h
|
||||||
* @brief support imx6q iomux function define, reference from u-boot-2009-08/include/asm-arm/arch-mx6/iomux_v3.h
|
* @brief support imx6q iomux function define, reference from u-boot-2009-08/include/__asm__-arm/arch-mx6/iomux_v3.h
|
||||||
* @version 3.0
|
* @version 3.0
|
||||||
* @author AIIT XUOS Lab
|
* @author AIIT XUOS Lab
|
||||||
* @date 2023.09.08
|
* @date 2023.09.08
|
||||||
*/
|
*/
|
||||||
/*************************************************
|
/*************************************************
|
||||||
File name: iomux_v3.h
|
File name: iomux_v3.h
|
||||||
Description: support imx6q iomux function define, reference from u-boot-2009-08/include/asm-arm/arch-mx6/iomux_v3.h
|
Description: support imx6q iomux function define, reference from u-boot-2009-08/include/__asm__-arm/arch-mx6/iomux_v3.h
|
||||||
Others:
|
Others:
|
||||||
History:
|
History:
|
||||||
1. Date: 2023-09-08
|
1. Date: 2023-09-08
|
||||||
|
|
|
@ -21,14 +21,14 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file regs_pins.h
|
* @file regs_pins.h
|
||||||
* @brief support imx6q pin map define, reference from u-boot-2009-08/include/asm-arm/arch-mx6/mx6_pins.h
|
* @brief support imx6q pin map define, reference from u-boot-2009-08/include/__asm__-arm/arch-mx6/mx6_pins.h
|
||||||
* @version 3.0
|
* @version 3.0
|
||||||
* @author AIIT XUOS Lab
|
* @author AIIT XUOS Lab
|
||||||
* @date 2023.09.08
|
* @date 2023.09.08
|
||||||
*/
|
*/
|
||||||
/*************************************************
|
/*************************************************
|
||||||
File name: regs_pins.h
|
File name: regs_pins.h
|
||||||
Description: support imx6q pin map define, reference from u-boot-2009-08/include/asm-arm/arch-mx6/mx6_pins.h
|
Description: support imx6q pin map define, reference from u-boot-2009-08/include/__asm__-arm/arch-mx6/mx6_pins.h
|
||||||
Others:
|
Others:
|
||||||
History:
|
History:
|
||||||
1. Date: 2023-09-08
|
1. Date: 2023-09-08
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
ifeq ($(BOARD), imx6q-sabrelite)
|
ifeq ($(BOARD), imx6q-sabrelite)
|
||||||
toolchain ?= arm-none-eabi-
|
toolchain ?= arm-none-eabi-
|
||||||
user_ldflags = --specs=nosys.specs -Wl,-Map=user.map,-cref -N
|
user_ldflags = --specs=nosys.specs -Wl,-Map=user.map,-cref -N
|
||||||
cflags = -std=c11 -O2 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
cflags = -std=c11 -O2 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||||
endif
|
endif
|
||||||
ifeq ($(BOARD), zynq7000-zc702)
|
ifeq ($(BOARD), zynq7000-zc702)
|
||||||
toolchain ?= arm-xilinx-eabi-
|
toolchain ?= arm-xilinx-eabi-
|
||||||
|
@ -14,7 +14,7 @@ endif
|
||||||
cc = ${toolchain}gcc
|
cc = ${toolchain}gcc
|
||||||
ld = ${toolchain}g++
|
ld = ${toolchain}g++
|
||||||
objdump = ${toolchain}objdump
|
objdump = ${toolchain}objdump
|
||||||
c_useropts = -O0
|
c_useropts = -O2
|
||||||
|
|
||||||
INC_DIR = -I$(KERNEL_ROOT)/services/shell/letter-shell \
|
INC_DIR = -I$(KERNEL_ROOT)/services/shell/letter-shell \
|
||||||
-I$(KERNEL_ROOT)/services/lib/ipc \
|
-I$(KERNEL_ROOT)/services/lib/ipc \
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#include "test_irq.h"
|
#include "test_irq.h"
|
||||||
|
|
||||||
IPC_INTERFACE(Ipc_wait_intr_3, 1, ignore, 0);
|
IPC_INTERFACE(Ipc_wait_intr_3, 1, ignore, 0);
|
||||||
int wait_intr(struct Session* session, void* ignore_param)
|
int wait_intr(struct Session* session)
|
||||||
{
|
{
|
||||||
return IPC_CALL(Ipc_wait_intr_3)(session, NULL);
|
return IPC_CALL(Ipc_wait_intr_3)(session, NULL);
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ int main(int argc, char* argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("%s start waiting for IRQ.\n", prog_name);
|
printf("%s start waiting for IRQ.\n", prog_name);
|
||||||
wait_intr(&session, NULL);
|
wait_intr(&session);
|
||||||
printf("%s return from waiting for IRQ.\n", prog_name);
|
printf("%s return from waiting for IRQ.\n", prog_name);
|
||||||
|
|
||||||
exit();
|
exit();
|
||||||
|
|
|
@ -9,8 +9,8 @@ ld = ${toolchain}g++
|
||||||
objdump = ${toolchain}objdump
|
objdump = ${toolchain}objdump
|
||||||
user_ldflags = -N -Ttext 0
|
user_ldflags = -N -Ttext 0
|
||||||
|
|
||||||
cflags = -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
cflags = -march=armv7-a -std=c11 -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||||
c_useropts = -O0
|
c_useropts = -O2
|
||||||
|
|
||||||
INC_DIR = -I$(KERNEL_ROOT)/services/fs/libfs \
|
INC_DIR = -I$(KERNEL_ROOT)/services/fs/libfs \
|
||||||
-I$(KERNEL_ROOT)/services/lib/ipc \
|
-I$(KERNEL_ROOT)/services/lib/ipc \
|
||||||
|
|
|
@ -10,7 +10,7 @@ objdump = ${toolchain}objdump
|
||||||
user_ldflags = -N -Ttext 0
|
user_ldflags = -N -Ttext 0
|
||||||
|
|
||||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||||
c_useropts = -O0
|
c_useropts = -O2
|
||||||
|
|
||||||
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
||||||
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
||||||
|
|
|
@ -109,20 +109,20 @@ void system_time_init(void)
|
||||||
|
|
||||||
int IPC_DO_SERVE_FUNC(Ipc_delay_us)(uint32_t* usecs)
|
int IPC_DO_SERVE_FUNC(Ipc_delay_us)(uint32_t* usecs)
|
||||||
{
|
{
|
||||||
uint32_t instance = g_system_timer_port;
|
// uint32_t instance = g_system_timer_port;
|
||||||
if (*usecs == 0) {
|
// if (*usecs == 0) {
|
||||||
return 0;
|
// return 0;
|
||||||
}
|
// }
|
||||||
|
|
||||||
/* enable the counter first */
|
// /* enable the counter first */
|
||||||
epit_counter_enable(instance, *usecs, POLLING_MODE);
|
// epit_counter_enable(instance, *usecs, POLLING_MODE);
|
||||||
|
|
||||||
/* wait for the compare event */
|
// /* wait for the compare event */
|
||||||
while (!epit_get_compare_event(instance))
|
// while (!epit_get_compare_event(instance))
|
||||||
;
|
// ;
|
||||||
|
|
||||||
/* disable the counter to save power */
|
// /* disable the counter to save power */
|
||||||
epit_counter_disable(instance);
|
// epit_counter_disable(instance);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,19 +159,19 @@ IPC_SERVER_REGISTER_INTERFACES(IpcSabreliteTimer, 2, Ipc_delay_us, Ipc_get_micro
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
printf("TIMER: Mapping %x(size: %x) to %x\n", AIPS1_ARB_PHY_BASE_ADDR, AIPS1_ARB_END_ADDR - AIPS1_ARB_BASE_ADDR, AIPS1_ARB_BASE_ADDR);
|
printf("TIMER: Mapping %08x(size: %x) to %08x\n", AIPS1_ARB_PHY_BASE_ADDR, AIPS1_ARB_END_ADDR - AIPS1_ARB_BASE_ADDR, AIPS1_ARB_BASE_ADDR);
|
||||||
if (!mmap(AIPS1_ARB_BASE_ADDR, AIPS1_ARB_PHY_BASE_ADDR, AIPS1_ARB_END_ADDR - AIPS1_ARB_BASE_ADDR, true)) {
|
if (!mmap(AIPS1_ARB_BASE_ADDR, AIPS1_ARB_PHY_BASE_ADDR, AIPS1_ARB_END_ADDR - AIPS1_ARB_BASE_ADDR, true)) {
|
||||||
printf("TIMER : mmap AIPS1 ARB(%x) failed\n", AIPS1_ARB_PHY_BASE_ADDR);
|
printf("TIMER : mmap AIPS1 ARB(%-08x) failed\n", AIPS1_ARB_PHY_BASE_ADDR);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("TIMER: Mapping %x(size: %x) to %x\n", AIPS2_ARB_PHY_BASE_ADDR, AIPS2_ARB_END_ADDR - AIPS2_ARB_BASE_ADDR, AIPS2_ARB_BASE_ADDR);
|
printf("TIMER: Mapping %08x(size: %x) to %08x\n", AIPS2_ARB_PHY_BASE_ADDR, AIPS2_ARB_END_ADDR - AIPS2_ARB_BASE_ADDR, AIPS2_ARB_BASE_ADDR);
|
||||||
if (!mmap(AIPS2_ARB_BASE_ADDR, AIPS2_ARB_PHY_BASE_ADDR, AIPS2_ARB_END_ADDR - AIPS2_ARB_BASE_ADDR, true)) {
|
if (!mmap(AIPS2_ARB_BASE_ADDR, AIPS2_ARB_PHY_BASE_ADDR, AIPS2_ARB_END_ADDR - AIPS2_ARB_BASE_ADDR, true)) {
|
||||||
printf("TIMER : mmap AIPS1 ARB(%x) failed\n", AIPS2_ARB_PHY_BASE_ADDR);
|
printf("TIMER : mmap AIPS1 ARB(%-08x) failed\n", AIPS2_ARB_PHY_BASE_ADDR);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("TIMER: Mapping %x(size: %x) to %x\n", REGS_ARMGLOBALTIMER_BASE, 0x1000, 0x00a00000);
|
printf("TIMER: Mapping %08x(size: %x) to %08x\n", REGS_ARMGLOBALTIMER_BASE, 0x1000, 0x00a00000);
|
||||||
if (!mmap(REGS_ARMGLOBALTIMER_BASE, 0x00a00000, 0x1000, true)) {
|
if (!mmap(REGS_ARMGLOBALTIMER_BASE, 0x00a00000, 0x1000, true)) {
|
||||||
printf("TIMER : mmap GLOBAL TIMER(%x) failed\n", 0x00a00000);
|
printf("TIMER : mmap GLOBAL TIMER(%-08x) failed\n", 0x00a00000);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char server_name[] = "TimerServer";
|
static char server_name[] = "TimerServer";
|
||||||
|
|
|
@ -9,8 +9,16 @@ ld = ${toolchain}g++
|
||||||
objdump = ${toolchain}objdump
|
objdump = ${toolchain}objdump
|
||||||
user_ldflags = -N -Ttext 0
|
user_ldflags = -N -Ttext 0
|
||||||
|
|
||||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
cflags = -std=c11 -march=armv7-a -mcpu=cortex-a9 -mtune=cortex-a9 -g \
|
||||||
c_useropts = -O0
|
-Wno-unused -Wno-format -fno-common -ffreestanding -fno-builtin -static \
|
||||||
|
-Wno-unaligned-access -fdce -Wall -Werror -Wno-uninitialized -Wno-strict-aliasing -fdiagnostics-show-option \
|
||||||
|
-mapcs -marm -mfpu=neon -ftree-vectorize -fno-math-errno -funsafe-math-optimizations -fno-signed-zeros -mfloat-abi=softfp \
|
||||||
|
-fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||||
|
|
||||||
|
# cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic \
|
||||||
|
# -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||||
|
|
||||||
|
c_useropts = -O2
|
||||||
|
|
||||||
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
||||||
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
||||||
|
|
|
@ -110,15 +110,6 @@ void imx_enet_iomux(void)
|
||||||
gpio_set_direction(GPIO_PORT6, 24, GPIO_GDIR_OUTPUT);
|
gpio_set_direction(GPIO_PORT6, 24, GPIO_GDIR_OUTPUT);
|
||||||
gpio_set_level(GPIO_PORT6, 24, GPIO_HIGH_LEVEL);
|
gpio_set_level(GPIO_PORT6, 24, GPIO_HIGH_LEVEL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef BOARD_SABRE_AI
|
|
||||||
/* Select ENET, ENET_CAN1_STEER(PORT_EXP_B3) */
|
|
||||||
max7310_set_gpio_output(1, 2, GPIO_LOW_LEVEL);
|
|
||||||
/* Select ALT5 mode of GPIO_19 for GPIO4_5 - PGMIT_INT_B */
|
|
||||||
/* active low input */
|
|
||||||
gpio_set_gpio(GPIO_PORT4, 5);
|
|
||||||
gpio_set_direction(GPIO_PORT4, 5, GPIO_GDIR_INPUT);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef BOARD_SABRE_LITE
|
#ifdef BOARD_SABRE_LITE
|
||||||
|
|
|
@ -63,15 +63,17 @@ int imx_enet_mii_read(volatile hw_enet_t* enet_reg, unsigned char phy_addr,
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
if (enet_reg->EIR.U & ENET_EVENT_MII) {
|
if (enet_reg->EIR.U & ENET_EVENT_MII) {
|
||||||
|
printf("[%s %d], EIR: %08x\n", __func__, __LINE__, enet_reg->EIR.U);
|
||||||
enet_reg->EIR.U = ENET_EVENT_MII;
|
enet_reg->EIR.U = ENET_EVENT_MII;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((--waiting) == 0)
|
if ((--waiting) == 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
hal_delay_us(ENET_MII_TICK);
|
hal_delay_us(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
printf("[%s %d], EIR: %08x\n", __func__, __LINE__, enet_reg->EIR.U);
|
||||||
*value = ENET_MII_GET_DATA(enet_reg->MMFR.U);
|
*value = ENET_MII_GET_DATA(enet_reg->MMFR.U);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -89,6 +91,7 @@ int imx_enet_mii_write(volatile hw_enet_t* enet_reg, unsigned char phy_addr,
|
||||||
}
|
}
|
||||||
|
|
||||||
enet_reg->MMFR.U = ENET_MII_WRITE(phy_addr, reg_addr, value); /* Write CMD */
|
enet_reg->MMFR.U = ENET_MII_WRITE(phy_addr, reg_addr, value); /* Write CMD */
|
||||||
|
printf("MMFR.U: %08x value: %08x\n", enet_reg->MMFR.U, value);
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
if (enet_reg->EIR.U & ENET_EVENT_MII) {
|
if (enet_reg->EIR.U & ENET_EVENT_MII) {
|
||||||
|
@ -112,18 +115,16 @@ static void imx_enet_bd_init(imx_enet_priv_t* dev, int dev_idx)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
imx_enet_bd_t* p;
|
imx_enet_bd_t* p;
|
||||||
imx_enet_bd_t *rx_bd_base = (imx_enet_bd_t*)malloc(sizeof(imx_enet_bd_t)), //
|
imx_enet_bd_t *rx_bd_base = (imx_enet_bd_t*)malloc(sizeof(imx_enet_bd_t) * (ENET_BD_RX_NUM * NUM_OF_ETH_DEVS)), //
|
||||||
*tx_bd_base = (imx_enet_bd_t*)malloc(sizeof(imx_enet_bd_t));
|
*tx_bd_base = (imx_enet_bd_t*)malloc(sizeof(imx_enet_bd_t) * (ENET_BD_TX_NUM * NUM_OF_ETH_DEVS));
|
||||||
|
|
||||||
rx_bd_base += (dev_idx * ENET_BD_RX_NUM);
|
|
||||||
tx_bd_base += (dev_idx * ENET_BD_TX_NUM);
|
|
||||||
|
|
||||||
|
#define _SABRELITE_ENET_BUFFER_SIZE 2048
|
||||||
p = dev->rx_bd = (imx_enet_bd_t*)rx_bd_base;
|
p = dev->rx_bd = (imx_enet_bd_t*)rx_bd_base;
|
||||||
|
|
||||||
for (i = 0; i < ENET_BD_RX_NUM; i++, p++) {
|
for (i = 0; i < ENET_BD_RX_NUM; i++, p++) {
|
||||||
p->status = BD_RX_ST_EMPTY;
|
p->status = BD_RX_ST_EMPTY;
|
||||||
p->length = 0;
|
p->length = 0;
|
||||||
p->data = (unsigned char*)malloc(2048);
|
p->data = (unsigned char*)malloc(_SABRELITE_ENET_BUFFER_SIZE);
|
||||||
// printf("rx bd %x, buffer is %x\n", (unsigned int)p, (unsigned int)p->data);
|
// printf("rx bd %x, buffer is %x\n", (unsigned int)p, (unsigned int)p->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,7 +136,7 @@ static void imx_enet_bd_init(imx_enet_priv_t* dev, int dev_idx)
|
||||||
for (i = 0; i < ENET_BD_TX_NUM; i++, p++) {
|
for (i = 0; i < ENET_BD_TX_NUM; i++, p++) {
|
||||||
p->status = 0;
|
p->status = 0;
|
||||||
p->length = 0;
|
p->length = 0;
|
||||||
p->data = (unsigned char*)malloc(2048);
|
p->data = (unsigned char*)malloc(_SABRELITE_ENET_BUFFER_SIZE);
|
||||||
// printf("tx bd %x, buffer is %x\n", (unsigned int)p, (unsigned int)p->data);
|
// printf("tx bd %x, buffer is %x\n", (unsigned int)p, (unsigned int)p->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,7 +157,7 @@ static void imx_enet_chip_init(imx_enet_priv_t* dev)
|
||||||
enet_reg->ECR.U = ENET_RESET;
|
enet_reg->ECR.U = ENET_RESET;
|
||||||
|
|
||||||
while (enet_reg->ECR.U & ENET_RESET) {
|
while (enet_reg->ECR.U & ENET_RESET) {
|
||||||
yield(SYS_TASK_YIELD_NO_REASON);
|
hal_delay_us(ENET_COMMON_TICK);
|
||||||
}
|
}
|
||||||
|
|
||||||
enet_reg->EIMR.U = 0x00000000;
|
enet_reg->EIMR.U = 0x00000000;
|
||||||
|
@ -471,13 +472,15 @@ int imx_enet_send(imx_enet_priv_t* dev, unsigned char* buf, int length, unsigned
|
||||||
|
|
||||||
if (p->status & BD_TX_ST_WRAP) {
|
if (p->status & BD_TX_ST_WRAP) {
|
||||||
p = dev->tx_bd;
|
p = dev->tx_bd;
|
||||||
} else
|
} else {
|
||||||
p++;
|
p++;
|
||||||
|
}
|
||||||
|
|
||||||
dev->tx_cur = p;
|
dev->tx_cur = p;
|
||||||
dev->tx_busy = 1;
|
dev->tx_busy = 1;
|
||||||
dev->tx_key = key;
|
dev->tx_key = key;
|
||||||
enet_reg->TDAR.U = ENET_RX_TX_ACTIVE;
|
enet_reg->TDAR.U = ENET_RX_TX_ACTIVE;
|
||||||
|
printf("EIR: %08x, ECR: %08x, TDAR.U: %08x, RDAR.U: %08x (%08x)\n", dev->enet_reg->EIR.U, dev->enet_reg->ECR.U, dev->enet_reg->TDAR.U, dev->enet_reg->RDAR.U, ENET_RX_TX_ACTIVE);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -552,6 +555,9 @@ void imx_enet_start(imx_enet_priv_t* dev, unsigned char* enaddr)
|
||||||
dev->tx_busy = 0;
|
dev->tx_busy = 0;
|
||||||
dev->enet_reg->ECR.U |= ENET_ETHER_EN | ENET_ETHER_SPEED_1000M | ENET_ETHER_LITTLE_ENDIAN;
|
dev->enet_reg->ECR.U |= ENET_ETHER_EN | ENET_ETHER_SPEED_1000M | ENET_ETHER_LITTLE_ENDIAN;
|
||||||
dev->enet_reg->RDAR.U |= ENET_RX_TX_ACTIVE;
|
dev->enet_reg->RDAR.U |= ENET_RX_TX_ACTIVE;
|
||||||
|
HW_ENET_RDAR_WR(ENET_RX_TX_ACTIVE);
|
||||||
|
printf("addr1: %x, addr2: %x\n", &dev->enet_reg->RDAR.U, HW_ENET_RDAR_ADDR);
|
||||||
|
printf("EIR: %08x, ECR: %08x, TDAR.U: %08x, RDAR.U: %08x (%08x)\n", dev->enet_reg->EIR.U, dev->enet_reg->ECR.U, dev->enet_reg->TDAR.U, dev->enet_reg->RDAR.U, ENET_RX_TX_ACTIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void imx_enet_stop(imx_enet_priv_t* dev)
|
void imx_enet_stop(imx_enet_priv_t* dev)
|
||||||
|
@ -609,5 +615,6 @@ int imx_enet_mii_type(imx_enet_priv_t* dev, enum imx_mii_type mii_type)
|
||||||
printf("BUG:unknow MII type=%x\n", mii_type);
|
printf("BUG:unknow MII type=%x\n", mii_type);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
printf("RCR: %08x, TFWR: %08x\n", enet_reg->RCR.U, enet_reg->TFWR.U);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,21 +38,12 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "enet.h"
|
#include "enet.h"
|
||||||
|
#include "sdk_types.h"
|
||||||
#include "soc_memory_map.h"
|
#include "soc_memory_map.h"
|
||||||
|
|
||||||
#include "libserial.h"
|
#include "libserial.h"
|
||||||
#include "usyscall.h"
|
#include "usyscall.h"
|
||||||
|
|
||||||
typedef enum _test_return {
|
|
||||||
TEST_NOT_STARTED = -3, // present in the menu, but not run
|
|
||||||
TEST_NOT_IMPLEMENTED = -2, // present in the menu, but not functional
|
|
||||||
TEST_FAILED = -1,
|
|
||||||
TEST_PASSED = 0,
|
|
||||||
TEST_BYPASSED = 2, // user elected to exit the test before it was run
|
|
||||||
TEST_NOT_PRESENT = 3, // not present in the menu.
|
|
||||||
TEST_CONTINUE = 4 // proceed with the test. opposite of TEST_BYPASSED
|
|
||||||
} test_return_t;
|
|
||||||
|
|
||||||
#define ENET_PHY_ADDR 6
|
#define ENET_PHY_ADDR 6
|
||||||
|
|
||||||
static imx_enet_priv_t enet0;
|
static imx_enet_priv_t enet0;
|
||||||
|
@ -99,6 +90,53 @@ static int pkt_compare(unsigned char* packet1, unsigned char* packet2, int lengt
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////////
|
||||||
|
void print_hw_enet(const hw_enet_t* enet)
|
||||||
|
{
|
||||||
|
printf("********************************\n");
|
||||||
|
printf("EIR: %08x\n", enet->EIR.U);
|
||||||
|
printf("EIMR: %08x\n", enet->EIMR.U);
|
||||||
|
printf("RDAR: %08x\n", enet->RDAR.U);
|
||||||
|
printf("TDAR: %08x\n", enet->TDAR.U);
|
||||||
|
printf("ECR: %08x\n", enet->ECR.U);
|
||||||
|
printf("MMFR: %08x\n", enet->MMFR.U);
|
||||||
|
printf("MSCR: %08x\n", enet->MSCR.U);
|
||||||
|
printf("MIBC: %08x\n", enet->MIBC.U);
|
||||||
|
printf("RCR: %08x\n", enet->RCR.U);
|
||||||
|
printf("TCR: %08x\n", enet->TCR.U);
|
||||||
|
printf("PALR: %08x\n", enet->PALR.U);
|
||||||
|
printf("PAUR: %08x\n", enet->PAUR.U);
|
||||||
|
printf("OPD: %08x\n", enet->OPD.U);
|
||||||
|
printf("IAUR: %08x\n", enet->IAUR.U);
|
||||||
|
printf("IALR: %08x\n", enet->IALR.U);
|
||||||
|
printf("GAUR: %08x\n", enet->GAUR.U);
|
||||||
|
printf("GALR: %08x\n", enet->GALR.U);
|
||||||
|
printf("TFWR: %08x\n", enet->TFWR.U);
|
||||||
|
printf("RDSR: %08x\n", enet->RDSR.U);
|
||||||
|
printf("TDSR: %08x\n", enet->TDSR.U);
|
||||||
|
printf("MRBR: %08x\n", enet->MRBR.U);
|
||||||
|
printf("RSFL: %08x\n", enet->RSFL.U);
|
||||||
|
printf("RSEM: %08x\n", enet->RSEM.U);
|
||||||
|
printf("RAEM: %08x\n", enet->RAEM.U);
|
||||||
|
printf("RAFL: %08x\n", enet->RAFL.U);
|
||||||
|
printf("TSEM: %08x\n", enet->TSEM.U);
|
||||||
|
printf("TAEM: %08x\n", enet->TAEM.U);
|
||||||
|
printf("TAFL: %08x\n", enet->TAFL.U);
|
||||||
|
printf("TIPG: %08x\n", enet->TIPG.U);
|
||||||
|
printf("FTRL: %08x\n", enet->FTRL.U);
|
||||||
|
printf("TACC: %08x\n", enet->TACC.U);
|
||||||
|
printf("RACC: %08x\n", enet->RACC.U);
|
||||||
|
printf("ATCR: %08x\n", enet->ATCR.U);
|
||||||
|
printf("ATVR: %08x\n", enet->ATVR.U);
|
||||||
|
printf("ATOFF: %08x\n", enet->ATOFF.U);
|
||||||
|
printf("ATPER: %08x\n", enet->ATPER.U);
|
||||||
|
printf("ATCOR: %08x\n", enet->ATCOR.U);
|
||||||
|
printf("ATINC: %08x\n", enet->ATINC.U);
|
||||||
|
printf("ATSTMP: %08x\n", enet->ATSTMP.U);
|
||||||
|
printf("********************************\n");
|
||||||
|
}
|
||||||
|
//////////////////////////////////////////
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* This test performs a loopback transfer on the RGMII interface through
|
* This test performs a loopback transfer on the RGMII interface through
|
||||||
* an external AR8031 giga ethernet PHY.
|
* an external AR8031 giga ethernet PHY.
|
||||||
|
@ -136,10 +174,10 @@ int enet_test()
|
||||||
printf("Ethernet link is up!\n");
|
printf("Ethernet link is up!\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
yield(SYS_TASK_YIELD_NO_REASON);
|
hal_delay_us(100000); // 100 ms
|
||||||
}
|
}
|
||||||
|
|
||||||
imx_enet_phy_enable_external_loopback(dev0);
|
// imx_enet_phy_enable_external_loopback(dev0);
|
||||||
|
|
||||||
printf("ENET %0d: [ %s ] [ %s ] [ %s ]:\n", dev0->phy_addr,
|
printf("ENET %0d: [ %s ] [ %s ] [ %s ]:\n", dev0->phy_addr,
|
||||||
(dev0->status & ENET_STATUS_FULL_DPLX) ? "FULL_DUPLEX" : "HALF_DUPLEX",
|
(dev0->status & ENET_STATUS_FULL_DPLX) ? "FULL_DUPLEX" : "HALF_DUPLEX",
|
||||||
|
@ -152,7 +190,6 @@ int enet_test()
|
||||||
printf("ENET link status check fail\n");
|
printf("ENET link status check fail\n");
|
||||||
return TEST_FAILED;
|
return TEST_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
imx_enet_start(dev0, mac_addr0);
|
imx_enet_start(dev0, mac_addr0);
|
||||||
|
|
||||||
// send packet
|
// send packet
|
||||||
|
@ -174,7 +211,7 @@ int enet_test()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(ENET_EVENT_TX & enet_events)) {
|
if (!(ENET_EVENT_TX & enet_events)) {
|
||||||
printf("ENET tx fail\n");
|
printf("ENET tx fail event: %08x\n", enet_events);
|
||||||
return TEST_FAILED;
|
return TEST_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,19 +254,20 @@ int main(int argc, char** argv)
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("%s: Mapping %x(size: %x) to %x\n", enet_server_name, AIPS1_ARB_PHY_BASE_ADDR, AIPS1_ARB_END_ADDR - AIPS1_ARB_BASE_ADDR, AIPS1_ARB_BASE_ADDR);
|
printf("%s: Mapping %08x(size: %x) to %08x\n", enet_server_name, AIPS1_ARB_PHY_BASE_ADDR, AIPS1_ARB_END_ADDR - AIPS1_ARB_BASE_ADDR, AIPS1_ARB_BASE_ADDR);
|
||||||
if (!mmap(AIPS1_ARB_BASE_ADDR, AIPS1_ARB_PHY_BASE_ADDR, AIPS1_ARB_END_ADDR - AIPS1_ARB_BASE_ADDR, true)) {
|
if (!mmap(AIPS1_ARB_BASE_ADDR, AIPS1_ARB_PHY_BASE_ADDR, AIPS1_ARB_END_ADDR - AIPS1_ARB_BASE_ADDR, true)) {
|
||||||
printf("%s: mmap AIPS1 ARB(%x) failed\n", enet_server_name, AIPS1_ARB_PHY_BASE_ADDR);
|
printf("%s: mmap AIPS1 ARB(%8x) failed\n", enet_server_name, AIPS1_ARB_PHY_BASE_ADDR);
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("%s: Mapping %x(size: %x) to %x\n", enet_server_name, AIPS2_ARB_PHY_BASE_ADDR, AIPS2_ARB_END_ADDR - AIPS2_ARB_BASE_ADDR, AIPS2_ARB_BASE_ADDR);
|
printf("%s: Mapping %08x(size: %x) to %8x\n", enet_server_name, AIPS2_ARB_PHY_BASE_ADDR, AIPS2_ARB_END_ADDR - AIPS2_ARB_BASE_ADDR, AIPS2_ARB_BASE_ADDR);
|
||||||
if (!mmap(AIPS2_ARB_BASE_ADDR, AIPS2_ARB_PHY_BASE_ADDR, AIPS2_ARB_END_ADDR - AIPS2_ARB_BASE_ADDR, true)) {
|
if (!mmap(AIPS2_ARB_BASE_ADDR, AIPS2_ARB_PHY_BASE_ADDR, AIPS2_ARB_END_ADDR - AIPS2_ARB_BASE_ADDR, true)) {
|
||||||
printf("%s: mmap AIPS1 ARB(%x) failed\n", enet_server_name, AIPS2_ARB_PHY_BASE_ADDR);
|
printf("%s: mmap AIPS1 ARB(%08x) failed\n", enet_server_name, AIPS2_ARB_PHY_BASE_ADDR);
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
enet_test();
|
enet_test();
|
||||||
|
|
||||||
exit();
|
exit();
|
||||||
|
return 0;
|
||||||
}
|
}
|
|
@ -23,6 +23,8 @@
|
||||||
|
|
||||||
#include "regs.h"
|
#include "regs.h"
|
||||||
|
|
||||||
|
#include "soc_memory_map.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* i.MX6DQ ENET
|
* i.MX6DQ ENET
|
||||||
*
|
*
|
||||||
|
@ -76,7 +78,7 @@
|
||||||
//@{
|
//@{
|
||||||
#ifndef REGS_ENET_BASE
|
#ifndef REGS_ENET_BASE
|
||||||
#define HW_ENET_INSTANCE_COUNT (1) //!< Number of instances of the ENET module.
|
#define HW_ENET_INSTANCE_COUNT (1) //!< Number of instances of the ENET module.
|
||||||
#define REGS_ENET_BASE (0x02188000) //!< Base address for ENET.
|
#define REGS_ENET_BASE USERLAND_MMIO_P2V(0x02188000) //!< Base address for ENET.
|
||||||
#endif
|
#endif
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ objdump = ${toolchain}objdump
|
||||||
user_ldflags = -N -Ttext 0
|
user_ldflags = -N -Ttext 0
|
||||||
|
|
||||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||||
c_useropts = -O0
|
c_useropts = -O2
|
||||||
|
|
||||||
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
||||||
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
||||||
|
|
|
@ -33,9 +33,12 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef __LANGUAGE_ASM__
|
#ifndef __LANGUAGE_ASM__
|
||||||
typedef unsigned char reg8_t;
|
#include <stddef.h>
|
||||||
typedef unsigned short reg16_t;
|
#include <stdint.h>
|
||||||
typedef unsigned int reg32_t;
|
|
||||||
|
typedef uint8_t reg8_t;
|
||||||
|
typedef uint16_t reg16_t;
|
||||||
|
typedef uint32_t reg32_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -22,11 +22,10 @@
|
||||||
#define __HW_GPIO_REGISTERS_H__
|
#define __HW_GPIO_REGISTERS_H__
|
||||||
|
|
||||||
#include "regs.h"
|
#include "regs.h"
|
||||||
|
|
||||||
#include "soc_memory_map.h"
|
#include "soc_memory_map.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* i.MX6SL GPIO
|
* i.MX6DQ GPIO
|
||||||
*
|
*
|
||||||
* GPIO
|
* GPIO
|
||||||
*
|
*
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#include "regs.h"
|
#include "regs.h"
|
||||||
#include "soc_memory_map.h"
|
#include "soc_memory_map.h"
|
||||||
|
|
||||||
// clang-format off
|
|
||||||
/*
|
/*
|
||||||
* i.MX6DQ IOMUXC
|
* i.MX6DQ IOMUXC
|
||||||
*
|
*
|
||||||
|
@ -110468,8 +110467,6 @@ typedef struct _hw_iomuxc
|
||||||
#define HW_IOMUXC (*(hw_iomuxc_t *) REGS_IOMUXC_BASE)
|
#define HW_IOMUXC (*(hw_iomuxc_t *) REGS_IOMUXC_BASE)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//clang-format on
|
|
||||||
|
|
||||||
#endif // __HW_IOMUXC_REGISTERS_H__
|
#endif // __HW_IOMUXC_REGISTERS_H__
|
||||||
// v18/121106/1.2.2
|
// v18/121106/1.2.2
|
||||||
// EOF
|
// EOF
|
||||||
|
|
|
@ -27,9 +27,7 @@
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
#ifndef __SDK_TYPES_H__
|
#pragma once
|
||||||
#define __SDK_TYPES_H__
|
|
||||||
|
|
||||||
//! @addtogroup sdk_common
|
//! @addtogroup sdk_common
|
||||||
//! @{
|
//! @{
|
||||||
|
|
||||||
|
@ -117,7 +115,6 @@ enum display_type {
|
||||||
|
|
||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
#endif // __SDK_TYPES_H__
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// EOF
|
// EOF
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -31,44 +31,52 @@
|
||||||
#ifndef _SOC_MEMORY_MAP_H
|
#ifndef _SOC_MEMORY_MAP_H
|
||||||
#define _SOC_MEMORY_MAP_H
|
#define _SOC_MEMORY_MAP_H
|
||||||
|
|
||||||
// NOTE: THIS FILE IS GOING AWAY.
|
|
||||||
//
|
|
||||||
// DEVELOPERS - PLEASE USE register/*.h MACROS TO ACCESS REGSITERS.
|
|
||||||
//
|
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
#define BOARD_SABRE_LITE
|
#define BOARD_SABRE_LITE
|
||||||
#define CHIP_MX6DQ 1
|
#define CHIP_MX6DQ 1
|
||||||
|
#define BOARD_REV_A
|
||||||
|
|
||||||
#define DRIVER_MAPPING_OFFSET 0x50000000
|
#define DRIVER_MAPPING_OFFSET 0x50000000
|
||||||
#define USERLAND_MMIO_P2V(a) (DRIVER_MAPPING_OFFSET + a)
|
#define USERLAND_MMIO_P2V(a) ((uintptr_t)DRIVER_MAPPING_OFFSET + (uintptr_t)a)
|
||||||
|
|
||||||
#define BAAD_STATUS 0xbaadbaad
|
#define BAAD_STATUS 0xbaadbaad
|
||||||
#define GOOD_STATUS 0x900d900d
|
#define GOOD_STATUS 0x900d900d
|
||||||
|
|
||||||
// CPU Memory Map
|
// CPU Memory Map
|
||||||
#define MMDC0_ARB_BASE_ADDR 0x80000000
|
//#define MMDC1_BASE_ADDR 0x10000000
|
||||||
#define MMDC0_ARB_END_ADDR 0xFFFFFFFF
|
//#define MMDC1_END_ADDR 0x7FFFFFFF
|
||||||
#define MMDC1_ARB_BASE_ADDR 0xC0000000
|
//#define MMDC0_BASE_ADDR 0x80000000
|
||||||
#define MMDC1_ARB_END_ADDR 0xFFFFFFFF
|
//#define MMDC0_END_ADDR 0xFFFFFFFF
|
||||||
#define OCRAM_ARB_BASE_ADDR 0x00900000
|
#define OCRAM_BASE_ADDR 0x00900000
|
||||||
#define OCRAM_ARB_END_ADDR 0x0091FFFF
|
#define OCRAM_END_ADDR 0x009FFFFF
|
||||||
#define IRAM_BASE_ADDR OCRAM_ARB_BASE_ADDR
|
#define IRAM_BASE_ADDR OCRAM_BASE_ADDR
|
||||||
|
#define PCIE_BASE_ADDR 0x01000000
|
||||||
|
#define PCIE_END_ADDR 0x01FFFFFF
|
||||||
|
|
||||||
|
#define ROMCP_ARB_BASE_ADDR 0x00000000
|
||||||
|
#define ROMCP_ARB_END_ADDR 0x000FFFFF
|
||||||
|
#define BOOT_ROM_BASE_ADDR ROMCP_ARB_BASE_ADDR
|
||||||
|
#define CAAM_SEC_RAM_START_ADDR 0x00100000
|
||||||
|
#define CAAM_SEC_RAM_END_ADDR 0x00103FFF
|
||||||
|
#define GPMI_BASE_ADDR 0x00112000
|
||||||
|
#define APBH_DMA_BASE_ADDR 0x00110000
|
||||||
|
#define APBH_DMA_END_ADDR 0x00117FFF
|
||||||
|
#define HDMI_BASE_ADDR 0x00120000
|
||||||
|
#define HDMI_END_ADDR 0x00128FFF
|
||||||
|
#define GPU_3D_BASE_ADDR 0x00130000
|
||||||
|
#define GPU_3D_END_ADDR 0x00133FFF
|
||||||
|
#define GPU_2D_BASE_ADDR 0x00134000
|
||||||
|
#define GPU_2D_END_ADDR 0x00137FFF
|
||||||
|
#define DTCP_BASE_ADDR 0x00138000
|
||||||
|
#define DTCP_END_ADDR 0x0013BFFF
|
||||||
|
#define GPU_MEM_BASE_ADDR GPU_3D_BASE_ADDR
|
||||||
|
|
||||||
|
#define GPV0_BASE_ADDR 0x00B00000
|
||||||
|
#define GPV1_BASE_ADDR 0x00C00000
|
||||||
|
#define GPV2_BASE_ADDR 0x00200000
|
||||||
|
#define GPV3_BASE_ADDR 0x00300000
|
||||||
|
#define GPV4_BASE_ADDR 0x00800000
|
||||||
|
|
||||||
// Blocks connected via pl301periph
|
|
||||||
// s_e_N ports
|
|
||||||
#define ROMCP_ARB_BASE_ADDR 0x00000000
|
|
||||||
#define ROMCP_ARB_END_ADDR 0x00017FFF
|
|
||||||
#define BOOT_ROM_BASE_ADDR ROMCP_ARB_BASE_ADDR
|
|
||||||
#define GPU_2D_ARB_BASE_ADDR 0x02200000
|
|
||||||
#define GPU_2D_ARB_END_ADDR 0x02203FFF
|
|
||||||
#define OPENVG_ARB_BASE_ADDR 0x02204000
|
|
||||||
#define OPENVG_ARB_END_ADDR 0x02207FFF
|
|
||||||
// GPV - PL301 configuration ports
|
|
||||||
#define GPV0_BASE_ADDR 0x00B00000
|
|
||||||
#define GPV1_BASE_ADDR 0x00C00000
|
|
||||||
#define GPV2_BASE_ADDR 0x00D00000
|
|
||||||
// s_g_N ports
|
|
||||||
#define AIPS1_ARB_PHY_BASE_ADDR 0x02000000
|
#define AIPS1_ARB_PHY_BASE_ADDR 0x02000000
|
||||||
#define AIPS1_ARB_PHY_END_ADDR 0x020FFFFF
|
#define AIPS1_ARB_PHY_END_ADDR 0x020FFFFF
|
||||||
#define AIPS2_ARB_PHY_BASE_ADDR 0x02100000
|
#define AIPS2_ARB_PHY_BASE_ADDR 0x02100000
|
||||||
|
@ -79,142 +87,150 @@
|
||||||
#define AIPS2_ARB_BASE_ADDR USERLAND_MMIO_P2V(AIPS2_ARB_PHY_BASE_ADDR)
|
#define AIPS2_ARB_BASE_ADDR USERLAND_MMIO_P2V(AIPS2_ARB_PHY_BASE_ADDR)
|
||||||
#define AIPS2_ARB_END_ADDR USERLAND_MMIO_P2V(AIPS2_ARB_PHY_END_ADDR)
|
#define AIPS2_ARB_END_ADDR USERLAND_MMIO_P2V(AIPS2_ARB_PHY_END_ADDR)
|
||||||
|
|
||||||
// #define SATA_ARB_BASE_ADDR 0x02200000
|
|
||||||
// #define SATA_ARB_END_ADDR 0x02203FFF
|
#define SATA_BASE_ADDR 0x02200000
|
||||||
// #define OPENVG_ARB_BASE_ADDR 0x02204000
|
#define SATA_END_ADDR 0x02203FFF
|
||||||
// #define OPENVG_ARB_END_ADDR 0x02207FFF
|
#define OPENVG_BASE_ADDR 0x02204000
|
||||||
#define WEIM_ARB_BASE_ADDR 0x08000000
|
#define OPENVG_END_ADDR 0x02207FFF
|
||||||
#define WEIM_ARB_END_ADDR 0x0FFFFFFF
|
#define HSI_BASE_ADDR 0x02208000
|
||||||
|
#define HSI_END_ADDR 0x0220BFFF
|
||||||
|
#define IPU1_BASE_ADDR 0x02400000
|
||||||
|
#define IPU1_END_ADDR 0x027FFFFF
|
||||||
|
#define IPU2_BASE_ADDR 0x02800000
|
||||||
|
#define IPU2_END_ADDR 0x02BFFFFF
|
||||||
|
#define WEIM_CS_BASE_ADDR 0x08000000
|
||||||
|
#define WEIM_CS_END_ADDR 0x0FFFFFFF
|
||||||
|
|
||||||
// CoreSight (ARM Debug)
|
// CoreSight (ARM Debug)
|
||||||
// ***** TO UPDATE *****
|
#define DEBUG_ROM_BASE_ADDR 0x02140000
|
||||||
#define DEBUG_ROM_BASE_ADDR 0x02140000
|
#define ETB_BASE_ADDR 0x02141000
|
||||||
#define ETB_BASE_ADDR 0x02141000
|
#define EXT_CTI_BASE_ADDR 0x02142000
|
||||||
#define EXT_CTI_BASE_ADDR 0x02142000
|
#define TPIU_BASE_ADDR 0x02143000
|
||||||
#define TPIU_BASE_ADDR 0x02143000
|
#define FUNNEL_BASE_ADDR 0x02144000
|
||||||
#define FUNNEL_BASE_ADDR 0x02144000
|
#define CORTEX_ROM_TABLE 0x0214F000
|
||||||
#define CORTEX_ROM_TABLE 0x0214F000
|
#define CORTEX_DEBUG_UNIT 0x02150000
|
||||||
#define CORTEX_DEBUG_UNIT 0x02150000
|
#define CORE0_DEBUG_UNIT 0x02150000
|
||||||
#define CORE0_DEBUG_UNIT 0x02150000
|
#define PMU0_BASE_ADDR 0x02151000
|
||||||
#define PMU0_BASE_ADDR 0x02151000
|
#define CORE1_DEBUG_UNIT 0x02152000
|
||||||
#define CORE1_DEBUG_UNIT 0x02152000
|
#define PMU1_BASE_ADDR 0x02153000
|
||||||
#define PMU1_BASE_ADDR 0x02153000
|
#define CORE2_DEBUG_UNIT 0x02154000
|
||||||
#define CORE2_DEBUG_UNIT 0x02154000
|
#define PMU2_BASE_ADDR 0x02155000
|
||||||
#define PMU2_BASE_ADDR 0x02155000
|
#define CORE3_DEBUG_UNIT 0x02156000
|
||||||
#define CORE3_DEBUG_UNIT 0x02156000
|
#define PMU3_BASE_ADDR 0x02157000
|
||||||
#define PMU3_BASE_ADDR 0x02157000
|
#define CTI0_BASE_ADDR 0x02158000
|
||||||
#define CTI0_BASE_ADDR 0x02158000
|
#define CTI1_BASE_ADDR 0x02159000
|
||||||
#define CTI1_BASE_ADDR 0x02159000
|
#define CTI2_BASE_ADDR 0x0215A000
|
||||||
#define CTI2_BASE_ADDR 0x0215A000
|
#define CTI3_BASE_ADDR 0x0215B000
|
||||||
#define CTI3_BASE_ADDR 0x0215B000
|
#define PTM0_BASE_ADDR 0x0215C000
|
||||||
#define PTM0_BASE_ADDR 0x0215C000
|
#define PTM_BASE_ADDR 0x0215C000
|
||||||
#define PTM_BASE_ADDR 0x0215C000
|
#define PTM1_BASE_ADDR 0x0215D000
|
||||||
#define PTM1_BASE_ADDR 0x0215D000
|
#define PTM2_BASE_ADDR 0x0215E000
|
||||||
#define PTM2_BASE_ADDR 0x0215E000
|
#define PTM3_BASE_ADDR 0x0215F000
|
||||||
#define PTM3_BASE_ADDR 0x0215F000
|
|
||||||
// *********************
|
|
||||||
|
|
||||||
// Legacy Defines
|
#define AIPS_TZ1_BASE_ADDR AIPS1_ARB_BASE_ADDR
|
||||||
#define CSD0_DDR_BASE_ADDR MMDC0_ARB_BASE_ADDR
|
#define AIPS_TZ2_BASE_ADDR AIPS2_ARB_BASE_ADDR
|
||||||
#define CSD1_DDR_BASE_ADDR 0xC0000000
|
|
||||||
#define CS0_BASE_ADDR WEIM_ARB_BASE_ADDR
|
|
||||||
// Defines for Blocks connected via AIPS (SkyBlue)
|
|
||||||
#define AIPS_TZ1_BASE_ADDR AIPS1_ARB_BASE_ADDR
|
|
||||||
#define AIPS_TZ2_BASE_ADDR AIPS2_ARB_BASE_ADDR
|
|
||||||
|
|
||||||
//slots 0,7 of SDMA reserved, therefore left unused in IPMUX3
|
#define SPDIF_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x04000) //slot 1
|
||||||
#define SPDIF_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00004000) // 0x02004000
|
#define ECSPI1_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x08000) //slot 2
|
||||||
#define ECSPI1_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00008000) // 0x02008000
|
#define ECSPI2_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x0C000) //slot 3
|
||||||
#define ECSPI2_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x0000C000) // 0x0200C000
|
#define ECSPI3_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x10000) //slot 4
|
||||||
#define ECSPI3_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00010000) // 0x02010000
|
#define ECSPI4_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x14000) //slot 5
|
||||||
#define ECSPI4_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00014000) // 0x02014000
|
#define ECSPI5_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x18000) //slot 6
|
||||||
#define UART5_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00018000) //slot 6
|
#define UART1_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x20000) //slot 8
|
||||||
#define UART1_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00020000) // 0x02020000
|
#define ESAI1_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x24000) //slot 9
|
||||||
#define UART2_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00024000) //slot 9
|
#define SSI1_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x28000) //slot 10
|
||||||
#define SSI1_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00028000) // 0x02028000
|
#define SSI2_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x2C000) //slot 11
|
||||||
#define SSI2_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x0002C000) // 0x0202C000
|
#define SSI3_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x30000) //slot 12
|
||||||
#define SSI3_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00030000) // 0x02030000
|
#define ASRC_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x34000) //slot 13
|
||||||
#define UART3_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00034000) //slot 13
|
#define SPBA_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x3C000) //slot 15
|
||||||
#define UART4_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00038000) //slot 14
|
#define VPU_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x40000) //slot 33, global en[1], til 0x7BFFF
|
||||||
#define SPBA_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x0003C000) // 0x0203C000 haku
|
|
||||||
#define VPU_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00040000) //slot 33, global en[1], til 0x7BFFF
|
|
||||||
|
|
||||||
// AIPS_TZ#1- On Platform
|
#define AIPS1_ON_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x7C000)
|
||||||
#define AIPS1_ON_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x0007C000) // 0x0207C000
|
#define AIPS1_OFF_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x80000)
|
||||||
|
|
||||||
// AIPS_TZ#1- Off Platform
|
#define PWM1_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x0000)
|
||||||
#define AIPS1_OFF_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00080000) // 0x02080000
|
#define PWM2_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x4000)
|
||||||
//#define USBOH3_BASE_ADDR AIPS1_BASE_ADDR
|
#define PWM3_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x8000)
|
||||||
|
#define PWM4_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0xC000)
|
||||||
|
#define CAN1_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x10000)
|
||||||
|
#define CAN2_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x14000)
|
||||||
|
#define GPT_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x18000)
|
||||||
|
#define GPIO1_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x1C000)
|
||||||
|
#define GPIO2_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x20000)
|
||||||
|
#define GPIO3_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x24000)
|
||||||
|
#define GPIO4_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x28000)
|
||||||
|
#define GPIO5_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x2C000)
|
||||||
|
#define GPIO6_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x30000)
|
||||||
|
#define GPIO7_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x34000)
|
||||||
|
#define KPP_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x38000)
|
||||||
|
#define WDOG1_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x3C000)
|
||||||
|
#define WDOG2_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x40000)
|
||||||
|
#define CCM_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x44000)
|
||||||
|
#define IP2APB_USBPHY1_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x49000)
|
||||||
|
#define IP2APB_USBPHY2_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x4A000)
|
||||||
|
#define SNVS_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x4C000)
|
||||||
|
#define EPIT1_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x50000)
|
||||||
|
#define EPIT2_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x54000)
|
||||||
|
#define SRC_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x58000)
|
||||||
|
#define GPC_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x5C000)
|
||||||
|
#define IOMUXC_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x60000)
|
||||||
|
#define DCIC1_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x64000)
|
||||||
|
#define DCIC2_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x68000)
|
||||||
|
#define SDMA_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x6C000)
|
||||||
|
#define SDMA_IPS_HOST_BASE_ADDR SDMA_BASE_ADDR
|
||||||
|
|
||||||
#define PWM1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00000000) // 0x02080000
|
#define AIPS2_ON_BASE_ADDR (AIPS_TZ2_BASE_ADDR+0x7C000)
|
||||||
#define PWM2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00004000) // 0x02084000
|
#define AIPS2_OFF_BASE_ADDR (AIPS_TZ2_BASE_ADDR+0x80000)
|
||||||
#define PWM3_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00008000) // 0x02088000
|
|
||||||
#define PWM4_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0000C000) // 0x0208C000
|
|
||||||
#define DBGMON_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00010000) // 0x02090000
|
|
||||||
#define QOSC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00014000) // 0x02094000
|
|
||||||
#define GPT_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00018000) // 0x02098000
|
|
||||||
#define GPIO1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0001C000) // 0x0209C000
|
|
||||||
#define GPIO2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00020000) // 0x020A0000
|
|
||||||
#define GPIO3_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00024000) // 0x020A4000
|
|
||||||
#define GPIO4_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00028000) // 0x020A8000
|
|
||||||
#define GPIO5_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0002C000) // 0x020AC000
|
|
||||||
#define GPIO6_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00030000)
|
|
||||||
#define GPIO7_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00034000)
|
|
||||||
#define KPP_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00038000) // 0x020B8000
|
|
||||||
#define WDOG1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0003C000) // 0x020BC000
|
|
||||||
#define WDOG2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00040000) // 0x020C0000
|
|
||||||
#define CCM_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00044000) // 0x020C4000
|
|
||||||
#define ANATOP_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00048000) // 0x020C8000 same as CCM_ANALOG above
|
|
||||||
#define SNVS_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0004C000) // 0x020CC000
|
|
||||||
#define EPIT1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00050000) // 0x020D0000
|
|
||||||
#define EPIT2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00054000) // 0x020D4000
|
|
||||||
#define SRC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00058000) // 0x020D8000
|
|
||||||
#define GPC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0005C000) // 0x020DC000 same as DVFS below
|
|
||||||
#define IOMUXC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00060000) // 0x020E0000
|
|
||||||
#define CSI_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00064000) // 0x020E4000 (was DCIC1)
|
|
||||||
#define SPDC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00068000) // 0x020E8000 (was DCIC2)
|
|
||||||
#define SDMA_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0006C000) // 0x020EC000
|
|
||||||
#define EPXP_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00070000) // 0x020F0000
|
|
||||||
#define SDMA_IPS_HOST_BASE_ADDR SDMA_BASE_ADDR
|
|
||||||
#define EPDC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00074000) // 0x020F4000
|
|
||||||
#define ELCDIF_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00078000) // 0x020F8000
|
|
||||||
#define DCP_BASE_ADDRESS (AIPS1_OFF_BASE_ADDR + 0x0007C000) // 0x020FC000
|
|
||||||
|
|
||||||
// AIPS_TZ#2- On Platform
|
|
||||||
#define AIPS2_ON_BASE_ADDR (AIPS_TZ2_BASE_ADDR+0x0007C000) // 0x0217C000
|
|
||||||
|
|
||||||
// AIPS_TZ#2- Off Platform
|
|
||||||
#define AIPS2_OFF_BASE_ADDR (AIPS_TZ2_BASE_ADDR+0x00080000) // 0x02180000
|
|
||||||
|
|
||||||
#define AIPS1_BASE_ADDR AIPS1_ON_BASE_ADDR
|
#define AIPS1_BASE_ADDR AIPS1_ON_BASE_ADDR
|
||||||
#define AIPS2_BASE_ADDR AIPS2_ON_BASE_ADDR
|
#define AIPS2_BASE_ADDR AIPS2_ON_BASE_ADDR
|
||||||
|
|
||||||
#define USBO2H_PL301_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00000000)
|
#define CAAM_BASE_ADDR AIPS_TZ2_BASE_ADDR
|
||||||
#define USBO2H_USB_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00004000)
|
#define ARM_IPS_BASE_ADDR (AIPS_TZ2_BASE_ADDR+0x40000)
|
||||||
#define ENET_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00008000) // 0x02188000
|
|
||||||
#define MSHC_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x0000C000)
|
#define USBOH3_PL301_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x0000)
|
||||||
//For ESDHC became Usdhc, temporarily allowing both new and old names
|
#define USBOH3_USB_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x4000)
|
||||||
#define USDHC1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00010000) // 0x02190000
|
#define ENET_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x8000)
|
||||||
#define USDHC2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00014000) // 0x02194000
|
#define MLB_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0xC000)
|
||||||
#define USDHC3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00018000) // 0x02198000
|
#define USDHC1_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x10000)
|
||||||
#define USDHC4_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x0001C000) // 0x0219C000
|
#define USDHC2_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x14000)
|
||||||
#define I2C1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00020000) // 0x021A0000
|
#define USDHC3_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x18000)
|
||||||
#define I2C2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00024000) // 0x021A4000
|
#define USDHC4_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x1C000)
|
||||||
#define I2C3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00028000) // 0x021A8000
|
#define I2C1_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x20000)
|
||||||
#define I2C4_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00078000)
|
#define I2C2_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x24000)
|
||||||
//AIPS2_OFF_BASE_ADDR
|
#define I2C3_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x28000)
|
||||||
#define ROMCP_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x0002C000) // 0x021AC000
|
#define ROMCP_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x2C000)
|
||||||
#define MMDC_P0_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00030000) // 0x021B0000
|
#define MMDC_P0_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x30000)
|
||||||
#define RNGB_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00034000) // 0x021B4000
|
#define MMDC_P1_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x34000)
|
||||||
#define WEIM_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00038000) // 0x021B8000
|
#define WEIM_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x38000)
|
||||||
#define OCOTP_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x0003C000) // 0x021BC000
|
#define OCOTP_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x3C000)
|
||||||
#define CSU_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00040000) // 0x021C0000
|
#define CSU_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x40000)
|
||||||
#define IP2APB_PERFMON1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00044000) // 0x021C4000
|
#define PERFMON1_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x44000)
|
||||||
#define IP2APB_PERFMON2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00048000) // 0x021C8000
|
#define PERFMON2_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x48000)
|
||||||
#define IP2APB_TZASC1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00050000) // 0x021D0000
|
#define PERFMON3_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x4C000)
|
||||||
#define AUDMUX_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00058000) // 0x021D8000
|
#define IP2APB_TZASC1_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x50000)
|
||||||
#define IP2APB_USBPHY1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00078000)
|
#define IP2APB_TZASC2_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x54000)
|
||||||
#define IP2APB_USBPHY2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x0007C000)
|
#define AUDMUX_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x58000)
|
||||||
|
#define MIPI_CSI2_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x5C000)
|
||||||
|
#define MIPI_DSI_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x60000)
|
||||||
|
#define VDOA_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x64000)
|
||||||
|
#define UART2_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x68000)
|
||||||
|
#define UART3_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x6C000)
|
||||||
|
#define UART4_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x70000)
|
||||||
|
#define UART5_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x74000)
|
||||||
|
|
||||||
|
// Cortex-A9 MPCore private memory region
|
||||||
|
#define ARM_PERIPHBASE 0x00A00000
|
||||||
|
#define SCU_BASE_ADDR ARM_PERIPHBASE
|
||||||
|
#define IC_INTERFACES_BASE_ADDR (ARM_PERIPHBASE+0x0100)
|
||||||
|
#define GLOBAL_TIMER_BASE_ADDR (ARM_PERIPHBASE+0x0200)
|
||||||
|
#define PRIVATE_TIMERS_WD_BASE_ADDR (ARM_PERIPHBASE+0x0600)
|
||||||
|
#define IC_DISTRIBUTOR_BASE_ADDR (ARM_PERIPHBASE+0x1000)
|
||||||
|
|
||||||
|
//Add from mx53 for ds90ur124.c
|
||||||
|
#define GPR_BASE_ADDR (IOMUXC_BASE_ADDR + 0x0)
|
||||||
|
#define OBSRV_BASE_ADDR (GPR_BASE_ADDR + 0x38)
|
||||||
|
#define SW_MUX_BASE_ADDR (OBSRV_BASE_ADDR + 0x14)
|
||||||
// clang-format
|
// clang-format
|
||||||
|
|
||||||
#endif //_SOC_MEMORY_MAP_H
|
#endif //_SOC_MEMORY_MAP_H
|
||||||
|
|
|
@ -10,7 +10,7 @@ objdump = ${toolchain}objdump
|
||||||
user_ldflags = -N -Ttext 0
|
user_ldflags = -N -Ttext 0
|
||||||
|
|
||||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||||
c_useropts = -O0
|
c_useropts = -O2
|
||||||
|
|
||||||
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
||||||
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
ifeq ($(BOARD), imx6q-sabrelite)
|
ifeq ($(BOARD), imx6q-sabrelite)
|
||||||
toolchain ?= arm-none-eabi-
|
toolchain ?= arm-none-eabi-
|
||||||
user_ldflags = -N -Ttext 0
|
user_ldflags = -N -Ttext 0
|
||||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||||
endif
|
endif
|
||||||
ifeq ($(BOARD), zynq7000-zc702)
|
ifeq ($(BOARD), zynq7000-zc702)
|
||||||
toolchain ?= arm-xilinx-eabi-
|
toolchain ?= arm-xilinx-eabi-
|
||||||
|
@ -13,7 +13,7 @@ cc = ${toolchain}gcc
|
||||||
ld = ${toolchain}g++
|
ld = ${toolchain}g++
|
||||||
objdump = ${toolchain}objdump
|
objdump = ${toolchain}objdump
|
||||||
|
|
||||||
c_useropts = -O0
|
c_useropts = -O2
|
||||||
|
|
||||||
INC_DIR = -I$(KERNEL_ROOT)/services/fs/libfs \
|
INC_DIR = -I$(KERNEL_ROOT)/services/fs/libfs \
|
||||||
-I$(KERNEL_ROOT)/services/fs/fs_server/include \
|
-I$(KERNEL_ROOT)/services/fs/fs_server/include \
|
||||||
|
|
|
@ -357,7 +357,7 @@ int main(int argc, char* argv[])
|
||||||
MemFsInit((uintptr_t)FS_IMG_ADDR, (uint32_t)len);
|
MemFsInit((uintptr_t)FS_IMG_ADDR, (uint32_t)len);
|
||||||
|
|
||||||
if (register_server("MemFS") < 0) {
|
if (register_server("MemFS") < 0) {
|
||||||
printf("register server name: %s failed.\n", "SimpleServer");
|
printf("register server name: %s failed.\n", "MemFs");
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
ipc_server_loop(&IpcFsServer);
|
ipc_server_loop(&IpcFsServer);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
ifeq ($(BOARD), imx6q-sabrelite)
|
ifeq ($(BOARD), imx6q-sabrelite)
|
||||||
toolchain ?= arm-none-eabi-
|
toolchain ?= arm-none-eabi-
|
||||||
user_ldflags = -N -Ttext 0
|
user_ldflags = -N -Ttext 0
|
||||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||||
endif
|
endif
|
||||||
ifeq ($(BOARD), zynq7000-zc702)
|
ifeq ($(BOARD), zynq7000-zc702)
|
||||||
toolchain ?= arm-xilinx-eabi-
|
toolchain ?= arm-xilinx-eabi-
|
||||||
|
@ -13,7 +13,7 @@ cc = ${toolchain}gcc
|
||||||
ld = ${toolchain}g++
|
ld = ${toolchain}g++
|
||||||
objdump = ${toolchain}objdump
|
objdump = ${toolchain}objdump
|
||||||
|
|
||||||
c_useropts = -O0
|
c_useropts = -O2
|
||||||
|
|
||||||
INC_DIR = -I$(KERNEL_ROOT)/services/fs/libfs \
|
INC_DIR = -I$(KERNEL_ROOT)/services/fs/libfs \
|
||||||
-I$(KERNEL_ROOT)/services/lib/ipc \
|
-I$(KERNEL_ROOT)/services/lib/ipc \
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
ifeq ($(BOARD), imx6q-sabrelite)
|
ifeq ($(BOARD), imx6q-sabrelite)
|
||||||
toolchain ?= arm-none-eabi-
|
toolchain ?= arm-none-eabi-
|
||||||
user_ldflags = -N -Ttext 0
|
user_ldflags = -N -Ttext 0
|
||||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||||
endif
|
endif
|
||||||
ifeq ($(BOARD), zynq7000-zc702)
|
ifeq ($(BOARD), zynq7000-zc702)
|
||||||
toolchain ?= arm-xilinx-eabi-
|
toolchain ?= arm-xilinx-eabi-
|
||||||
|
@ -13,7 +13,7 @@ cc = ${toolchain}gcc
|
||||||
ld = ${toolchain}g++
|
ld = ${toolchain}g++
|
||||||
objdump = ${toolchain}objdump
|
objdump = ${toolchain}objdump
|
||||||
|
|
||||||
c_useropts = -O0
|
c_useropts = -O2
|
||||||
|
|
||||||
INC_DIR = -I$(KERNEL_ROOT)/services/lib/ipc \
|
INC_DIR = -I$(KERNEL_ROOT)/services/lib/ipc \
|
||||||
-I$(KERNEL_ROOT)/services/lib/memory \
|
-I$(KERNEL_ROOT)/services/lib/memory \
|
||||||
|
|
|
@ -60,13 +60,13 @@ typedef struct {
|
||||||
struct IpcArgInfo {
|
struct IpcArgInfo {
|
||||||
uint16_t offset;
|
uint16_t offset;
|
||||||
uint16_t len;
|
uint16_t len;
|
||||||
};
|
} __attribute__((packed));
|
||||||
|
|
||||||
/* [header, ipc_arg_buffer_len[], ipc_arg_buffer[]] */
|
/* [header, ipc_arg_buffer_len[], ipc_arg_buffer[]] */
|
||||||
struct IpcMsg {
|
struct IpcMsg {
|
||||||
ipc_msg_header header;
|
ipc_msg_header header;
|
||||||
uintptr_t buf[];
|
uintptr_t buf[];
|
||||||
};
|
} __attribute__((packed));
|
||||||
enum {
|
enum {
|
||||||
IPC_ARG_INFO_BASE_OFFSET = sizeof(ipc_msg_header),
|
IPC_ARG_INFO_BASE_OFFSET = sizeof(ipc_msg_header),
|
||||||
};
|
};
|
||||||
|
@ -76,7 +76,7 @@ typedef int (*IpcInterface)(struct IpcMsg* msg);
|
||||||
struct IpcNode {
|
struct IpcNode {
|
||||||
char* name;
|
char* name;
|
||||||
IpcInterface interfaces[UINT8_MAX];
|
IpcInterface interfaces[UINT8_MAX];
|
||||||
};
|
} __attribute__((packed));
|
||||||
|
|
||||||
#define IPC_SERVER_LOOP(ipc_node_name) rpc_server_loop_##rpc_node_name
|
#define IPC_SERVER_LOOP(ipc_node_name) rpc_server_loop_##rpc_node_name
|
||||||
#define IPC_SERVICES(ipc_node_name, ...) \
|
#define IPC_SERVICES(ipc_node_name, ...) \
|
||||||
|
|
|
@ -10,7 +10,7 @@ objdump = ${toolchain}objdump
|
||||||
user_ldflags = -N -Ttext 0
|
user_ldflags = -N -Ttext 0
|
||||||
|
|
||||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||||
c_useropts = -O0
|
c_useropts = -O2
|
||||||
|
|
||||||
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
||||||
-I$(KERNEL_ROOT)/services/fs/libfs \
|
-I$(KERNEL_ROOT)/services/fs/libfs \
|
||||||
|
|
|
@ -10,7 +10,7 @@ objdump = ${toolchain}objdump
|
||||||
user_ldflags = -N -Ttext 0
|
user_ldflags = -N -Ttext 0
|
||||||
|
|
||||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||||
c_useropts = -O0
|
c_useropts = -O2
|
||||||
|
|
||||||
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
||||||
-I$(KERNEL_ROOT)/services/fs/libfs \
|
-I$(KERNEL_ROOT)/services/fs/libfs \
|
||||||
|
|
|
@ -10,7 +10,7 @@ objdump = ${toolchain}objdump
|
||||||
user_ldflags = -N -Ttext 0
|
user_ldflags = -N -Ttext 0
|
||||||
|
|
||||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||||
c_useropts = -O0
|
c_useropts = -O2
|
||||||
|
|
||||||
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
||||||
-I$(KERNEL_ROOT)/services/fs/libfs \
|
-I$(KERNEL_ROOT)/services/fs/libfs \
|
||||||
|
|
|
@ -13,7 +13,7 @@ cc = ${toolchain}gcc
|
||||||
ld = ${toolchain}g++
|
ld = ${toolchain}g++
|
||||||
objdump = ${toolchain}objdump
|
objdump = ${toolchain}objdump
|
||||||
|
|
||||||
c_useropts = -O0
|
c_useropts = -O2
|
||||||
|
|
||||||
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
||||||
-I$(KERNEL_ROOT)/services/fs/libfs \
|
-I$(KERNEL_ROOT)/services/fs/libfs \
|
||||||
|
|
|
@ -109,10 +109,10 @@ void show_mem(void)
|
||||||
user_dynamic_free += user_phy_freemem_buddy.free_list[j].n_free_pages * (1 << j) * PAGE_SIZE;
|
user_dynamic_free += user_phy_freemem_buddy.free_list[j].n_free_pages * (1 << j) * PAGE_SIZE;
|
||||||
kernel_free += kern_virtmem_buddy.free_list[j].n_free_pages * (1 << j) * PAGE_SIZE;
|
kernel_free += kern_virtmem_buddy.free_list[j].n_free_pages * (1 << j) * PAGE_SIZE;
|
||||||
}
|
}
|
||||||
LOG_PRINTF("%-16s 0x%064lx\n", "TOTAL(B)", total);
|
LOG_PRINTF("%-16s 0x%016lx\n", "TOTAL(B)", total);
|
||||||
LOG_PRINTF("%-16s 0x%064lx\n", "KERNEL USED(B)", (kern_virtmem_buddy.mem_end - kern_virtmem_buddy.mem_start - kernel_free));
|
LOG_PRINTF("%-16s 0x%016lx\n", "KERNEL USED(B)", (kern_virtmem_buddy.mem_end - kern_virtmem_buddy.mem_start - kernel_free));
|
||||||
LOG_PRINTF("%-16s 0x%064lx\n", "LIBMEM USED(B)", (user_phy_freemem_buddy.mem_end - user_phy_freemem_buddy.mem_start - user_dynamic_free));
|
LOG_PRINTF("%-16s 0x%016lx\n", "LIBMEM USED(B)", (user_phy_freemem_buddy.mem_end - user_phy_freemem_buddy.mem_start - user_dynamic_free));
|
||||||
LOG_PRINTF("%-16s 0x%064lx\n", "FREE(B)", user_dynamic_free + kernel_free);
|
LOG_PRINTF("%-16s 0x%016lx\n", "FREE(B)", user_dynamic_free + kernel_free);
|
||||||
|
|
||||||
SHOWINFO_BORDER_LINE();
|
SHOWINFO_BORDER_LINE();
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue