diff options
author | cognet <cognet@FreeBSD.org> | 2005-11-24 02:27:55 +0000 |
---|---|---|
committer | cognet <cognet@FreeBSD.org> | 2005-11-24 02:27:55 +0000 |
commit | 792c8e2f4900802933c70899fadd6312270e880d (patch) | |
tree | b91167727d6cc4241e3294a69ded61fbe3e076fd /sys/arm/xscale | |
parent | 2a2203ec202a935c64457164772bd84ca2d2814c (diff) | |
download | FreeBSD-src-792c8e2f4900802933c70899fadd6312270e880d.zip FreeBSD-src-792c8e2f4900802933c70899fadd6312270e880d.tar.gz |
Use a magic number to know we were started from the elf wrapper.
Add a dummy _start function to make the non-elf version of the wrapper work.
Diffstat (limited to 'sys/arm/xscale')
-rw-r--r-- | sys/arm/xscale/i80321/iq31244_machdep.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/arm/xscale/i80321/iq31244_machdep.c b/sys/arm/xscale/i80321/iq31244_machdep.c index a49a3f7..990b5b6 100644 --- a/sys/arm/xscale/i80321/iq31244_machdep.c +++ b/sys/arm/xscale/i80321/iq31244_machdep.c @@ -233,16 +233,16 @@ initarm(void *arg, void *arg2) fake_preload[i++] = sizeof(uint32_t); fake_preload[i++] = (uint32_t)&end - KERNBASE - 0x00200000; #ifdef DDB - if (*(uint32_t *)KERNVIRTADDR != 0) { + if (*(uint32_t *)KERNVIRTADDR == MAGIC_TRAMP_NUMBER) { fake_preload[i++] = MODINFO_METADATA|MODINFOMD_SSYM; fake_preload[i++] = sizeof(vm_offset_t); - fake_preload[i++] = *(uint32_t *)KERNVIRTADDR; + fake_preload[i++] = *(uint32_t *)(KERNVIRTADDR + 4); fake_preload[i++] = MODINFO_METADATA|MODINFOMD_ESYM; fake_preload[i++] = sizeof(vm_offset_t); - fake_preload[i++] = *(uint32_t *)(KERNVIRTADDR + 4); - lastaddr = *(uint32_t *)(KERNVIRTADDR + 4); + fake_preload[i++] = *(uint32_t *)(KERNVIRTADDR + 8); + lastaddr = *(uint32_t *)(KERNVIRTADDR + 8); zend = lastaddr; - zstart = *(uint32_t *)KERNVIRTADDR; + zstart = *(uint32_t *)(KERNVIRTADDR + 4); ksym_start = zstart; ksym_end = zend; } else |