- Timestamp:
- 2006-07-13T14:58:57Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 94d614e
- Parents:
- eda7bf81
- Location:
- boot/arch
- Files:
-
- 3 added
- 17 edited
- 3 moved
-
ppc32/loader/Makefile (modified) (1 diff)
-
ppc32/loader/asm.h (modified) (1 diff)
-
ppc32/loader/boot.S (modified) (1 diff)
-
ppc32/loader/main.c (modified) (1 diff)
-
ppc32/loader/main.h (modified) (1 diff)
-
ppc32/loader/ofwarch.c (moved) (moved from boot/arch/ppc32/loader/ofw.c ) (2 diffs)
-
ppc32/loader/ofwarch.h (moved) (moved from boot/arch/sparc64/loader/ofw.c ) (2 diffs)
-
ppc32/loader/types.h (modified) (1 diff)
-
ppc64/loader/Makefile (modified) (1 diff)
-
ppc64/loader/boot.S (modified) (1 diff)
-
ppc64/loader/main.c (modified) (1 diff)
-
ppc64/loader/main.h (modified) (1 diff)
-
ppc64/loader/ofwarch.c (moved) (moved from boot/arch/ppc64/loader/ofw.c ) (1 diff)
-
ppc64/loader/ofwarch.h (added)
-
ppc64/loader/types.h (modified) (1 diff)
-
sparc64/loader/Makefile (modified) (3 diffs)
-
sparc64/loader/asm.h (modified) (1 diff)
-
sparc64/loader/boot.S (modified) (3 diffs)
-
sparc64/loader/main.c (modified) (2 diffs)
-
sparc64/loader/main.h (modified) (2 diffs)
-
sparc64/loader/ofwarch.c (added)
-
sparc64/loader/ofwarch.h (added)
-
sparc64/loader/types.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
boot/arch/ppc32/loader/Makefile
reda7bf81 r63cda71 51 51 SOURCES = \ 52 52 main.c \ 53 ofw .c \53 ofwarch.c \ 54 54 ../../../genarch/ofw.c \ 55 55 ../../../generic/printf.c \ -
boot/arch/ppc32/loader/asm.h
reda7bf81 r63cda71 27 27 */ 28 28 29 #ifndef __ASM_H__30 #define __ASM_H__29 #ifndef BOOT_ppc32_ASM_H_ 30 #define BOOT_ppc32_ASM_H_ 31 31 32 32 #define PAGE_SIZE 4096 -
boot/arch/ppc32/loader/boot.S
reda7bf81 r63cda71 38 38 stw r5, 0(r4) 39 39 40 bl init40 bl ofw_init 41 41 42 42 b bootstrap -
boot/arch/ppc32/loader/main.c
reda7bf81 r63cda71 31 31 #include "asm.h" 32 32 #include "_components.h" 33 #include <ofw.h> 34 #include <align.h> 33 35 34 36 #define HEAP_GAP 1024000 -
boot/arch/ppc32/loader/main.h
reda7bf81 r63cda71 27 27 */ 28 28 29 #ifndef __MAIN_H__30 #define __MAIN_H__29 #ifndef BOOT_ppc32_MAIN_H_ 30 #define BOOT_ppc32_MAIN_H_ 31 31 32 32 #include "ofw.h" 33 34 /** Align to the nearest higher address.35 *36 * @param addr Address or size to be aligned.37 * @param align Size of alignment, must be power of 2.38 */39 #define ALIGN_UP(addr, align) (((addr) + ((align) - 1)) & ~((align) - 1))40 33 41 34 #define TASKMAP_MAX_RECORDS 32 -
boot/arch/ppc32/loader/ofwarch.c
reda7bf81 r63cda71 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 28 29 #include <ofwarch.h> 29 30 #include <ofw.h> 30 31 #include <printf.h> … … 56 57 if (ofw_get_property(device, "assigned-addresses", &macio, sizeof(macio)) <= 0) 57 58 return false; 58 keyboard->addr = macio.addr.addr_lo;59 keyboard->addr = (void *) macio.addr.addr_lo; 59 60 keyboard->size = macio.size_lo; 60 61 -
boot/arch/ppc32/loader/ofwarch.h
reda7bf81 r63cda71 1 1 /* 2 * Copyright (C) 200 5 Martin Decky2 * Copyright (C) 2006 Jakub Jermar 3 3 * All rights reserved. 4 4 * … … 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 29 #include <ofw.h>30 #include <printf.h>31 28 32 void write(const char *str, const int len) 33 { 34 int i; 35 36 for (i = 0; i < len; i++) { 37 if (str[i] == '\n') 38 ofw_write("\r", 1); 39 ofw_write(&str[i], 1); 40 } 41 } 29 #ifndef BOOT_ppc32_OFWARCH_H_ 30 #define BOOT_ppc32_OFWARCH_H_ 42 31 43 int ofw_translate_failed(ofw_arg_t flag) 44 { 45 return flag != -1; 46 } 32 #define OFW_ADDRESS_CELLS 1 33 #define OFW_SIZE_CELLS 1 34 35 #endif -
boot/arch/ppc32/loader/types.h
reda7bf81 r63cda71 27 27 */ 28 28 29 #ifndef TYPES_H__30 #define TYPES_H__29 #ifndef BOOT_ppc32_TYPES_H_ 30 #define BOOT_ppc32_TYPES_H_ 31 31 32 32 #include <gentypes.h> -
boot/arch/ppc64/loader/Makefile
reda7bf81 r63cda71 52 52 SOURCES = \ 53 53 main.c \ 54 ofwarch.c \ 54 55 ../../../genarch/ofw.c \ 55 56 ../../../generic/printf.c \ -
boot/arch/ppc64/loader/boot.S
reda7bf81 r63cda71 38 38 stw r5, 0(r4) 39 39 40 bl init40 bl ofw_init 41 41 42 42 b bootstrap -
boot/arch/ppc64/loader/main.c
reda7bf81 r63cda71 31 31 #include "asm.h" 32 32 #include "_components.h" 33 #include <ofw.h> 33 34 34 35 #define HEAP_GAP 1024000 -
boot/arch/ppc64/loader/main.h
reda7bf81 r63cda71 27 27 */ 28 28 29 #ifndef __MAIN_H__30 #define __MAIN_H__29 #ifndef BOOT_ppc64_MAIN_H_ 30 #define BOOT_ppc64_MAIN_H_ 31 31 32 #include "ofw.h" 33 34 /** Align to the nearest higher address. 35 * 36 * @param addr Address or size to be aligned. 37 * @param align Size of alignment, must be power of 2. 38 */ 39 #define ALIGN_UP(addr, align) (((addr) + ((align) - 1)) & ~((align) - 1)) 32 #include <ofw.h> 40 33 41 34 #define TASKMAP_MAX_RECORDS 32 -
boot/arch/ppc64/loader/ofwarch.c
reda7bf81 r63cda71 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 28 29 #include <ofwarch.h> 29 30 #include <ofw.h> 30 31 #include <printf.h> -
boot/arch/ppc64/loader/types.h
reda7bf81 r63cda71 27 27 */ 28 28 29 #ifndef TYPES_H__30 #define TYPES_H__29 #ifndef BOOT_ppc64_TYPES_H_ 30 #define BOOT_ppc64_TYPES_H_ 31 31 32 32 #include <gentypes.h> -
boot/arch/sparc64/loader/Makefile
reda7bf81 r63cda71 53 53 ../../../generic/printf.c \ 54 54 ../../../genarch/ofw.c \ 55 ofw .c \55 ofwarch.c \ 56 56 asm.S \ 57 57 boot.S … … 65 65 .PHONY: all clean depend 66 66 67 all: image.boot 67 all: image.boot disasm 68 68 69 69 -include Makefile.depend … … 86 86 %.o: %.c 87 87 $(CC) $(DEFS) $(CFLAGS) -c $< -o $@ 88 89 disasm: image.boot 90 $(OBJDUMP) -d image.boot > boot.disasm -
boot/arch/sparc64/loader/asm.h
reda7bf81 r63cda71 27 27 */ 28 28 29 #ifndef __ASM_H__30 #define __ASM_H__29 #ifndef BOOT_sparc64_ASM_H_ 30 #define BOOT_sparc64_ASM_H_ 31 31 32 32 #define PAGE_SIZE 8192 -
boot/arch/sparc64/loader/boot.S
reda7bf81 r63cda71 30 30 31 31 #define PSTATE_IE_BIT 2 32 #define PSTATE_AM_BIT 8 32 33 33 34 .register %g2, #scratch … … 56 57 57 58 /* 58 * Disable interrupts .59 * Disable interrupts and disable address masking. 59 60 */ 60 61 rdpr %pstate, %g2 61 and %g2, ~ PSTATE_IE_BIT, %g2 ! mask the Interrupt Enable bit62 and %g2, ~(PSTATE_IE_BIT|PSTATE_AM_BIT), %g2 62 63 wrpr %g2, 0, %pstate 63 64 … … 66 67 set ofw_cif, %l0 67 68 68 call init ! initialize OpenFirmware69 call ofw_init ! initialize OpenFirmware 69 70 stx %o4, [%l0] 70 71 -
boot/arch/sparc64/loader/main.c
reda7bf81 r63cda71 32 32 #include "_components.h" 33 33 #include <ofw.h> 34 #include <align.h> 34 35 35 36 #define KERNEL_VIRTUAL_ADDRESS 0x400000 … … 44 45 init_components(components); 45 46 47 if (!ofw_memmap(&bootinfo.memmap)) { 48 printf("Error: unable to get memory map, halting.\n"); 49 halt(); 50 } 51 52 if (bootinfo.memmap.total == 0) { 53 printf("Error: no memory detected, halting.\n"); 54 halt(); 55 } 56 57 if (!ofw_screen(&bootinfo.screen)) { 58 printf("Error: unable to get screen properties, halting.\n"); 59 halt(); 60 } 61 bootinfo.screen.addr = ofw_translate(bootinfo.screen.addr); 62 63 if (!ofw_keyboard(&bootinfo.keyboard)) { 64 printf("Error: unable to get keyboard properties, halting.\n"); 65 halt(); 66 } 67 68 printf("\nDevice statistics\n"); 69 printf(" memory: %dM\n", bootinfo.memmap.total>>20); 70 printf(" screen at %P, resolution %dx%d, %d bpp (scanline %d bytes)\n", (uintptr_t) bootinfo.screen.addr, bootinfo.screen.width, bootinfo.screen.height, bootinfo.screen.bpp, bootinfo.screen.scanline); 71 printf(" keyboard at %P (size %d bytes)\n", (uintptr_t) bootinfo.keyboard.addr, bootinfo.keyboard.size); 72 46 73 printf("\nMemory statistics\n"); 47 printf(" kernel entry point at % L\n", KERNEL_VIRTUAL_ADDRESS);48 printf(" % L: boot info structure\n", &bootinfo);74 printf(" kernel entry point at %P\n", KERNEL_VIRTUAL_ADDRESS); 75 printf(" %P: boot info structure\n", &bootinfo); 49 76 50 77 unsigned int i; 51 78 for (i = 0; i < COMPONENTS; i++) 52 printf(" % L: %s image (size %d bytes)\n", components[i].start, components[i].name, components[i].size);79 printf(" %P: %s image (size %d bytes)\n", components[i].start, components[i].name, components[i].size); 53 80 54 81 printf("\nCopying components\n"); -
boot/arch/sparc64/loader/main.h
reda7bf81 r63cda71 27 27 */ 28 28 29 #ifndef __MAIN_H__30 #define __MAIN_H__29 #ifndef BOOT_sparc64_MAIN_H_ 30 #define BOOT_sparc64_MAIN_H_ 31 31 32 /** Align to the nearest higher address. 33 * 34 * @param addr Address or size to be aligned. 35 * @param align Size of alignment, must be power of 2. 36 */ 37 #define ALIGN_UP(addr, align) (((addr) + ((align) - 1)) & ~((align) - 1)) 32 #include <ofw.h> 38 33 39 34 #define TASKMAP_MAX_RECORDS 32 … … 47 42 unsigned int cnt; 48 43 task_t tasks[TASKMAP_MAX_RECORDS]; 44 memmap_t memmap; 45 screen_t screen; 46 keyboard_t keyboard; 49 47 } bootinfo_t; 50 48 -
boot/arch/sparc64/loader/types.h
reda7bf81 r63cda71 27 27 */ 28 28 29 #ifndef TYPES_H__30 #define TYPES_H__29 #ifndef BOOT_sparc64_TYPES_H_ 30 #define BOOT_sparc64_TYPES_H_ 31 31 32 32 #include <gentypes.h>
Note:
See TracChangeset
for help on using the changeset viewer.
