Download zig/kernel/kernel.ld from Snapkitty/phaser-ags: direct link, hf CLI and curl.
- Browser
- Download file 2.6 kB
-
https://huggingface.co/Snapkitty/phaser-ags/resolve/main/zig/kernel/kernel.ld
- Command line
-
hf download hf://Snapkitty/phaser-ags/zig/kernel/kernel.ld
-
curl -L -o kernel.ld https://huggingface.co/Snapkitty/phaser-ags/resolve/main/zig/kernel/kernel.ld
2.6 kB
| /* SPDX-License-Identifier: AGPL-3.0-or-later */ | |
| /* Copyright 2025 Ahmad Ali Parr / SnapKitty οΏ½ https://github.com/SNAPKITTYWEST/phaser-ags */ | |
| ## βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| ## PHASER AGS β RV32I kernel linker script | |
| ## | |
| ## Memory map (matches Chisel Rv32iCore boot address 0x20000000): | |
| ## SRAM @ 0x20000000 (256 KB β on-chip, boot) | |
| ## DRAM @ 0x30000000 (64 MB β MT48H32M16LF-7 via SDRC) | |
| ## MMIO @ 0x48000000 (OMAP3530 peripheral space) | |
| ## | |
| ## Kernel loaded at SRAM base, uses DRAM for heap/page alloc. | |
| ## βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| OUTPUT_ARCH("riscv") | |
| ENTRY(_start) | |
| MEMORY | |
| { | |
| SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 /* 256 KB */ | |
| DRAM (rwx) : ORIGIN = 0x30000000, LENGTH = 0x04000000 /* 64 MB */ | |
| MMIO (rw) : ORIGIN = 0x48000000, LENGTH = 0x20000000 /* 512 MB */ | |
| } | |
| SECTIONS | |
| { | |
| /* ββ Boot vectors in SRAM ββ */ | |
| .boot : { | |
| *(.boot) | |
| *(.trap) | |
| } > SRAM | |
| /* ββ Main kernel code ββ */ | |
| : { | |
| *( .*) | |
| } > SRAM | |
| /* ββ Read-only data ββ */ | |
| .rodata : ALIGN(16) { | |
| *(.rodata .rodata.*) | |
| *(.srodata .srodata.*) | |
| } > SRAM | |
| /* ββ Initialized data ββ */ | |
| : ALIGN(16) { | |
| *( .*) | |
| *(.sdata .sdata.*) | |
| PROVIDE(__global_pointer$ = . + 0x800); | |
| } > SRAM | |
| /* ββ BSS (zeroed by start.S) ββ */ | |
| .bss : ALIGN(16) { | |
| __bss_start = .; | |
| *(.bss .bss.*) | |
| *(.sbss .sbss.*) | |
| *(COMMON) | |
| __bss_end = .; | |
| } > SRAM | |
| /* ββ Stack grows down from end of SRAM ββ */ | |
| .stack (NOLOAD) : ALIGN(16) { | |
| __stack_bottom = .; | |
| . = . + 0x8000; /* 32 KB stack */ | |
| __stack_top = .; | |
| } > SRAM | |
| /* ββ Kernel heap in SRAM (remaining space) ββ */ | |
| .heap (NOLOAD) : ALIGN(4096) { | |
| __heap_start = .; | |
| . = ORIGIN(SRAM) + LENGTH(SRAM); | |
| __heap_end = .; | |
| } > SRAM | |
| /* ββ Page-allocatable DRAM ββ */ | |
| .pages (NOLOAD) : ALIGN(4096) { | |
| __pages_start = .; | |
| . = ORIGIN(DRAM) + LENGTH(DRAM); | |
| __pages_end = .; | |
| } > DRAM | |
| /DISCARD/ : { | |
| *(.eh_frame) | |
| *(.comment) | |
| *(.note.*) | |
| } | |
| } | |