Module Name: src Committed By: martin Date: Fri Jan 2 20:29:08 UTC 2015
Modified Files: src/sys/arch/evbarm/stand/boot2440 [netbsd-7]: main.c Log Message: Pull up following revision(s) (requested by skrll in ticket #366): sys/arch/evbarm/stand/boot2440/main.c: revision 1.5 Make this work with earm kernels. Not sure the test is realy worth it. Partially from Greg Willatt To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.4.4.1 src/sys/arch/evbarm/stand/boot2440/main.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/evbarm/stand/boot2440/main.c diff -u src/sys/arch/evbarm/stand/boot2440/main.c:1.4 src/sys/arch/evbarm/stand/boot2440/main.c:1.4.4.1 --- src/sys/arch/evbarm/stand/boot2440/main.c:1.4 Sun Dec 1 02:52:53 2013 +++ src/sys/arch/evbarm/stand/boot2440/main.c Fri Jan 2 20:29:08 2015 @@ -112,7 +112,7 @@ main(int argc, char *argv[]) int fclk, hclk; int fd; unsigned long marks[MARK_MAX]; - unsigned char hdr[0x26]; + unsigned char hdr[0x28]; void (*entry)(void*); unsigned elfpriv; char *bootfile; @@ -236,16 +236,17 @@ main(int argc, char *argv[]) #endif /* * ARM ELF header has a distinctive value in "private flags" - * field of offset [0x24:25]; - * - NetBSD 02 06 + * field of offset [0x24-x027]; + * - NetBSD 02 06 (oarm) * - Linux 02 00 (2.4) or 02 02 (2.6) + * - NetBSD 02 00 00 05 (earm) */ lseek(fd, (off_t)0, SEEK_SET); read(fd, &hdr, sizeof(hdr)); memcpy(&elfpriv, &hdr[0x24], sizeof(elfpriv)); entry = (void *)marks[MARK_ENTRY]; - if (elfpriv == 0x0602) { + if (elfpriv == 0x0602 || elfpriv == 0x5000002) { struct btinfo_symtab bi_syms; bi_syms.nsym = marks[MARK_NSYM];