Changeset 203 for soft/giet_vm/boot
- Timestamp:
- Aug 13, 2012, 10:52:25 PM (12 years ago)
- Location:
- soft/giet_vm/boot
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/boot/boot.ld
r189 r203 1 /****************************************************************************2 * Definition of the base address for all virtual segments3 *****************************************************************************/4 1 5 /* 6 The following (virtual) addresses are specific for the boot phase. 7 They must respect identity mapping: physical address = virtual address 8 */ 2 /****************************************************************************/ 3 /* Definition of the base addresses for all vsegs used by the GIET_VM */ 4 /****************************************************************************/ 9 5 10 seg_boot_base = 0xBFC00000; /* boot code */ 6 INCLUDE giet_vsegs.ld 11 7 12 seg_boot_stack_base = 0xBFC08000; /* boot temporary stack */ 13 14 seg_mapping_base = 0xBFC0C000; /* boot mapping_info */ 15 16 /* 17 The following (virtual) addresse are defined and used by the kernel. 18 They are not constrained to respect identity mapping. 19 */ 20 21 seg_kernel_init_base = 0x80090000; /* system init entry */ 22 23 seg_tty_base = 0x90000000; /* TTY device */ 24 seg_timer_base = 0x91000000; /* Timer device */ 25 seg_ioc_base = 0x92000000; /* Block device */ 26 seg_dma_base = 0x93000000; /* DMA device */ 27 seg_gcd_base = 0x95000000; /* GCD device */ 28 seg_fb_base = 0x96000000; /* FrameBuffer device */ 29 seg_iob_base = 0x9E000000; /* IO Bridge device */ 30 seg_icu_base = 0x9F000000; /* ICU or XICU device */ 31 32 /* 33 Grouping sections into segments for boot code and data 34 */ 8 /****************************************************************************/ 9 /* Grouping sections into virtual segment for boot code and data */ 10 /****************************************************************************/ 35 11 36 12 SECTIONS 37 13 { 38 /* contain both data and code sections */ 39 . = seg_boot_base; 40 seg_boot : 14 . = seg_boot_code_base; 15 seg_boot_code : 41 16 { 42 17 *(.boot) … … 55 30 } 56 31 } 32 -
soft/giet_vm/boot/boot_init.c
r200 r203 800 800 } 801 801 802 // checking Rnumber of clusters802 // checking number of clusters 803 803 if ( header->clusters != NB_CLUSTERS ) 804 804 { … … 820 820 } 821 821 822 // checking har ware822 // checking hardware 823 823 unsigned int periph_id; 824 824 unsigned int cluster_id; … … 851 851 boot_exit(); 852 852 } 853 if ( periph[periph_id].channels >NB_TTYS )854 { 855 boot_puts("\n[BOOT ERROR] Too much TTY terminalsin cluster ");853 if ( periph[periph_id].channels != NB_TTYS ) 854 { 855 boot_puts("\n[BOOT ERROR] Wrong NB_TTYS in cluster "); 856 856 boot_putw( cluster_id ); 857 857 boot_puts(" : ttys = "); … … 870 870 boot_exit(); 871 871 } 872 if ( periph[periph_id].channels >NB_NICS )873 { 874 boot_puts("\n[BOOT ERROR] Too much NIC channelsin cluster ");872 if ( periph[periph_id].channels != NB_NICS ) 873 { 874 boot_puts("\n[BOOT ERROR] Wrong NB_NICS in cluster "); 875 875 boot_putw( cluster_id ); 876 876 boot_puts(" : nics = "); … … 884 884 if ( periph[periph_id].type == PERIPH_TYPE_TIM ) 885 885 { 886 if ( periph[periph_id].channels > NB_TIMERS_MAX)886 if ( periph[periph_id].channels != (NB_PROCS_MAX + NB_TIMERS_MAX) ) 887 887 { 888 888 boot_puts("\n[BOOT ERROR] Too much user timers in cluster "); … … 897 897 if ( periph[periph_id].type == PERIPH_TYPE_DMA ) 898 898 { 899 if ( periph[periph_id].channels >NB_DMAS_MAX )899 if ( periph[periph_id].channels != NB_DMAS_MAX ) 900 900 { 901 901 boot_puts("\n[BOOT ERROR] Too much DMA channels in cluster "); … … 1198 1198 //////////////////////////////////////////////////////////////////////////////// 1199 1199 // This function intializes the periherals and coprocessors, as specified 1200 // tsuch as the IOB component 1201 // (I/O bridge, containing the IOMMU, the IOC (external disk controller), 1202 // the NIC (external network controller), the FBDMA (frame buffer controller), 1200 // in the mapping_info file. 1203 1201 //////////////////////////////////////////////////////////////////////////////// 1204 1202 void boot_peripherals_init() … … 1306 1304 1307 1305 } // end for periphs 1308 1306 /* 1309 1307 for ( coproc_id = cluster[cluster_id].coproc_offset ; 1310 1308 coproc_id < cluster[cluster_id].coproc_offset + cluster[cluster_id].coprocs ; … … 1358 1356 } 1359 1357 } // end for coprocs 1360 1358 */ 1361 1359 } // end for clusters 1362 1360 } // end boot_peripherals_init()
Note: See TracChangeset
for help on using the changeset viewer.