Changes between Version 50 and Version 51 of boot_procedure
- Timestamp:
- Feb 28, 2019, 11:13:33 AM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
boot_procedure
v50 v51 77 77 but not at the same time, because in this phase, only core [0][0] is running, while all other cores are blocked in the preloaded, waiting to be activated by an IPI. 78 78 79 This assembly code makes the assuption that the CP0 register containing the core gid (global hardware identifier) has a fixed format: * 80 81 '''gid == (((x << Y_WIDTH) + y) << P_WIDTH) + lid''' * 82 * 79 This assembly code makes the assuption that the CP0 register containing the core gid (global hardware identifier) has a fixed format: '''gid''' == ('''cxy''' << 2) + '''lid''' 80 83 81 Each core running this code makes the 3 following actions: * 84 82 * It initializes the core stack pointer depending on the '''lid''' value extracted from the '''gid''', using the BOOT_STACK_BASE and BOOT_STACK_SIZE parameters defined in the ''boot_config.h'' file, * … … 86 84 * It jumps to the boot_loader() C function defined in the ''boot.c'' file, passing the two (cxy , lid) arguments. 87 85 88 In this sequencial phase, the core[0][0] executes the following actions: 89 86 In this sequencial phase, the core[0][0] executing this C function makes the following actions: 90 87 * The core[0][0] initializes 2 peripherals: The '''TTY''' terminal (channel 0) to display log messages, and the '''IOC''' peripheral to access the disk. 91 88 * The core[0][0] initializes the boot-loader private FAT32 structure, allowing the boot loader to access files stored in the FAT32 file system on disk.