Download boot/arm/stage1.c from Snapkitty/phaser-ags: direct link, hf CLI and curl.
- Browser
- Download file 1.17 kB
-
https://huggingface.co/Snapkitty/phaser-ags/resolve/main/boot/arm/stage1.c
- Command line
-
hf download hf://Snapkitty/phaser-ags/boot/arm/stage1.c
-
curl -L -o stage1.c https://huggingface.co/Snapkitty/phaser-ags/resolve/main/boot/arm/stage1.c
1.17 kB
| /* ARM Universal Bootloader Stage 1 - Reset to DRAM Init */ | |
| void __attribute__((section(".vectors"))) vectors[] = { | |
| (void*)STACK_BASE, | |
| (void*)reset_handler, | |
| }; | |
| void reset_handler(void) { | |
| asm volatile("cpsid i"); | |
| asm volatile("ldr sp, =0x20010000"); | |
| clock_init(); | |
| sram_init(); | |
| dram_init(); | |
| gpio_init(); | |
| uart_init(115200); | |
| uart_puts("Stage 1 Bootloader ARM\r\n"); | |
| int boot_source = detect_boot_source(); | |
| void (*stage2_entry)(void) = (void*)(0x30000000); | |
| if (validate_stage2(stage2_entry)) { | |
| uart_puts("Loading Stage 2...\r\n"); | |
| stage2_entry(); | |
| } else { | |
| uart_puts("Stage 2 validation failed\r\n"); | |
| while(1); | |
| } | |
| } | |
| void clock_init(void) { } | |
| void sram_init(void) { extern char _bss_start, _bss_end; char *p = &_bss_start; while (p < &_bss_end) *p++ = 0; } | |
| void dram_init(void) { } | |
| void gpio_init(void) { } | |
| void uart_init(int baud) { } | |
| void uart_puts(const char *s) { while (*s) uart_putc(*s++); } | |
| int detect_boot_source(void) { return BOOT_SOURCE_NAND; } | |
| int validate_stage2(void *addr) { return 1; } | |