Skip to content

Commit

Permalink
add boundary symbols to linker script
Browse files Browse the repository at this point in the history
- update platform.h to use linker script boundary symbols
- fix banner.c
  • Loading branch information
saursin committed Oct 15, 2023
1 parent d9bfafd commit e82d9b3
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 10 deletions.
4 changes: 2 additions & 2 deletions sw/examples/banner/banner.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ int main()
puts(banner);
printf("CPU : RISC-V Atom @ %d Hz\n", CLK_FREQ);
puts("Arch : RV32I - little endian\n");
printf("CODE RAM : 0x%8x (%d bytes)\n", MEM_ROM_ADDR, MEM_ROM_SIZE);
printf("DATA RAM : 0x%8x (%d bytes)\n", MEM_RAM_ADDR, MEM_RAM_SIZE);
printf("CODE RAM : 0x%8x (%d bytes)\n", CODERAM_BASE, CODERAM_SIZE);
printf("DATA RAM : 0x%8x (%d bytes)\n", DATARAM_BASE, DATARAM_SIZE);
puts("Exiting...\n");
return 0;
}
27 changes: 19 additions & 8 deletions sw/lib/include/platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,16 @@
#ifdef TARGET_HYDROGENSOC
// #define EXCEPTION

#define MEM_ROM_ADDR 0x20000000
#define MEM_ROM_SIZE 32*1024 // 32 KB
extern int __coderam_start;
extern int __coderam_size;
extern int __dataram_start;
extern int __dataram_size;

#define MEM_RAM_ADDR 0x20008000
#define MEM_RAM_SIZE 16*1024 // 16 KB
#define CODERAM_BASE &__coderam_start
#define CODERAM_SIZE &__coderam_size

#define DATARAM_BASE &__dataram_start
#define DATARAM_SIZE &__dataram_size

// ---------- UART ------------
#define UART_ADDR 0x40000000
Expand All @@ -39,11 +44,17 @@

#else
#ifdef TARGET_ATOMBONES
#define MEM_ROM_BEGIN 0x00000000
#define MEM_ROM_SIZE 64*1024*1024 // 64 MB
extern int __coderam_start;
extern int __coderam_size;
extern int __dataram_start;
extern int __dataram_size;

#define CODERAM_BASE &__coderam_start
#define CODERAM_SIZE &__coderam_size

#define DATARAM_BASE &__dataram_start
#define DATARAM_SIZE &__dataram_size

#define MEM_RAM_BEGIN 0x04000000
#define MEM_RAM_SIZE 64*1024*1024 // 64 MB

// ---------- UART ------------
#define UART_ADDR 0x40000000
Expand Down
5 changes: 5 additions & 0 deletions sw/lib/link/link_atombones.ld
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ MEMORY
DATA_RAM (rwx): ORIGIN = 0x24000000, LENGTH = 16M
}

__coderam_start = ORIGIN(CODE_RAM);
__coderam_size = LENGTH(CODE_RAM);
__dataram_start = ORIGIN(DATA_RAM);
__dataram_size = LENGTH(DATA_RAM);

SECTIONS
{
/* ==== CODE RAM ==== */
Expand Down
5 changes: 5 additions & 0 deletions sw/lib/link/link_hydrogensoc.ld
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ MEMORY
DATA_RAM (rwx): ORIGIN = 0x2000a000, LENGTH = 8K
}

__coderam_start = ORIGIN(CODE_RAM);
__coderam_size = LENGTH(CODE_RAM);
__dataram_start = ORIGIN(DATA_RAM);
__dataram_size = LENGTH(DATA_RAM);

SECTIONS
{
/* ==== CODE RAM ==== */
Expand Down

0 comments on commit e82d9b3

Please sign in to comment.