#ifdef CONFIG_MTD_UCLINUX /* Handle both romfs and cramfs types, without generating unnecessary
code (ie no point checking for CRAMFS if it's not even enabled) */ inlineunsigned get_romfs_len(unsigned *addr)
{ #ifdef CONFIG_ROMFS_FS if (memcmp(&addr[0], "-rom1fs-", 8) == 0) /* romfs */ return be32_to_cpu(addr[2]); #endif
/* If CONFIG_MTD_UCLINUX is defined, assume ROMFS is at the *endofkernel.Therearetwopositionwhichwewanttocheck. *Thefirstis__init_endandthesecond__bss_start.
*/ #ifdef CONFIG_MTD_UCLINUX int romfs_size; unsignedint romfs_base; char *old_klimit = klimit;
/* Move ROMFS out of BSS before clearing it */ if (romfs_size > 0) {
memmove(&__bss_stop, (int *)romfs_base, romfs_size);
klimit += romfs_size;
} #endif
#if CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR if (msr) {
pr_info("!!!Your kernel has setup MSR instruction but ");
pr_cont("CPU don't have it %x\n", msr);
} #else if (!msr) {
pr_info("!!!Your kernel not setup MSR instruction but ");
pr_cont("CPU have it %x\n", msr);
} #endif
/* Do not copy reset vectors. offset = 0x2 means skip the first *twoinstructions.dstispointertoMBvectorswhichareplaced
* in block ram. If you want to copy reset vector setup offset to 0x0 */ #if !CONFIG_MANUAL_RESET_VECTOR
offset = 0x2; #endif
dst = (unsignedlong *) (offset * sizeof(u32)); for (src = __ivt_start + offset; src < __ivt_end; src++, dst++)
*dst = *src;
/* Initialize global data */
per_cpu(KM, 0) = 0x1; /* We start in kernel mode */
per_cpu(CURRENT_SAVE, 0) = (unsignedlong)current;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.