From 615e3302c9dd358bb64cd56d1f3814ad8d5df84d Mon Sep 17 00:00:00 2001 From: vetch Date: Sat, 4 Jan 2020 19:37:32 +0100 Subject: rearranged files, updated makefile --- memory.h | 72 ---------------------------------------------------------------- 1 file changed, 72 deletions(-) delete mode 100644 memory.h (limited to 'memory.h') diff --git a/memory.h b/memory.h deleted file mode 100644 index bdeba52..0000000 --- a/memory.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef MEMORY_H -#define MEMORY_H - -#include - -// These macros were heavily used b4 I moved all the address -// computation to the linker script. Now I'm just keeping them -// in case they're needed for something else :) -#define POWER_OF_2(EXP) (((size_t) 1) << EXP) - -#define ALIGN_POWER_OF_2(ADDR, EXP) \ - (((ADDR - 1) & ~(POWER_OF_2(EXP) - 1)) + POWER_OF_2(EXP)) - -#define SECTION_SIZE POWER_OF_2(20) - -#define ALIGN_SECTION(ADDR) ALIGN_POWER_OF_2(ADDR, 20) - - -// memory layout - -#define INTERRUPT_VECTOR_TABLE_START ((uint32_t) 0x0) - -// all those symbols are defined in the linker script -extern char __end; -extern char __start; -extern char _translation_table_start; -extern char _translation_table_end; -extern char _sections_list_start; -extern char _sections_list_end; -extern char _stack_start; -extern char _fiq_stack_start; -extern char _fiq_stack_top; -extern char _irq_stack_start; -extern char _irq_stack_top; -extern char _supervisor_stack_start; -extern char _supervisor_stack_top; -extern char _stack_end; - -#define KERNEL_START ((size_t) &__start) // this is 0x0 -#define KERNEL_END ((size_t) &__end) - -// first 2^14 aligned address after the kernel -#define TRANSLATION_TABLE_BASE ((size_t) &_translation_table_start) -#define TRANSLATION_TABLE_END ((size_t) &_translation_table_end) - -// another 32KB after the translation table are used for sections list -#define SECTIONS_LIST_START ((size_t) &_sections_list_start) -#define SECTIONS_LIST_END ((size_t) &_sections_list_end) - -// first section after the translation table is left unused; -// the next section is used as the stack -#define STACK_START ((size_t) &_stack_start) -#define FIQ_STACK_START ((size_t) &_fiq_stack_start) -#define FIQ_STACK_END ((size_t) &_fiq_stack_top) -#define IRQ_STACK_START ((size_t) &_irq_stack_start) -#define IRQ_STACK_END ((size_t) &_irq_stack_top) -#define SUPERVISOR_STACK_START ((size_t) &_supervisor_stack_start) -#define SUPERVISOR_STACK_END ((size_t) &_supervisor_stack_top) -#define STACK_END ((size_t) &_stack_end) - -#define PRIVILEGED_MEMORY_END STACK_END - - -// the following describes the virtual section for our PL0 programs -#define PL0_SECTION_NUMBER ((size_t) 0xaaa) - -#define VIRTUAL_PL0_MEMORY_START (PL0_SECTION_NUMBER << 20) -#define VIRTUAL_PL0_MEMORY_END \ - (VIRTUAL_PL0_MEMORY_START + SECTION_SIZE) - -#endif // MEMORY_H - -- cgit v1.2.3