Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Feb 2013 22:27:06 -0800
From:      Tim Kientzle <kientzle@freebsd.org>
To:        freebsd-arm@freebsd.org
Subject:   PHYSADDR
Message-ID:  <E886046B-1612-425B-902B-72D4B0E93618@freebsd.org>

next in thread | raw e-mail | index | archive | help

--Apple-Mail=_2781E653-7090-4675-87D1-DADE99D8603C
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

Starting to look at what is needed for a Generic ARM kernel.
There's a lot here; I sincerely hope I'm not the only one=85 ;-)

First up:  Can we get rid of PHYSADDR?

I think we can always compute it at runtime from PC.

For example, I think this works in several places:
   and r0, pc, #0xF0000000

And I've found at least one reference that I think can be simply
eliminated:

Index: arm/elf_trampoline.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- arm/elf_trampoline.c	(revision 247250)
+++ arm/elf_trampoline.c	(working copy)
@@ -169,7 +169,7 @@
 void
 _startC(void)
 {
-	int physaddr =3D KERNPHYSADDR;
+	unsigned int physaddr =3D (unsigned int)&_start & 0xfffff000;
 	int tmp1;
 	unsigned int sp =3D ((unsigned int)&_end & ~3) + 4;
 #if defined(FLASHADDR) && defined(LOADERRAMADDR)
@@ -189,10 +189,9 @@
 		 */
 		unsigned int target_addr;
 		unsigned int tmp_sp;
-		uint32_t src_addr =3D (uint32_t)&_start - PHYSADDR + =
FLASHADDR
-		    + (pc - FLASHADDR - ((uint32_t)&_startC - PHYSADDR)) =
& 0xfffff000;
+		uint32_t src_addr =3D (uint32_t)&_start;
=20
-		target_addr =3D (unsigned int)&_start - PHYSADDR + =
LOADERRAMADDR;
+		target_addr =3D (unsigned int)&_start - (pc & =
0xf0000000) + LOADERRAMADDR;
 		tmp_sp =3D target_addr + 0x100000 +
 		    (unsigned int)&_end - (unsigned int)&_start;
 		memcpy((char *)target_addr, (char *)src_addr,


Tim


--Apple-Mail=_2781E653-7090-4675-87D1-DADE99D8603C
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.18 (Darwin)

iQEcBAEBAgAGBQJRLvi7AAoJEGMNyGo0rfFBdMwIAL3EPXt8BlsCYTnt3/c3tpPW
E4k6S06Nx9Q1YlQeO/mHV97WMJJ/zmbD0lKvFT6TIOAgbOqRiC2cq+AXRZLxwYLO
ypzgHQz8wjvqOjwSgsKBzGymOpNwNdPYTgCCGLwv4VwM7Mlq7Hj8ZSVk00sbB26z
O3e37u4YWYS8n8aIe8mNbnZDbj4QKM5OkTJ/NwcjS2Lj9108EB0VqcENcmITFo+U
9XnRaTOrbVQYy683iVLp7D7YHzrSjUQNPo0ik7SQ0ep0FIKixEpVoCBriAOwqn+e
CSfKRgEj0+w5AeyjhR2aZQ4cAE2uxNzvpz9OPxe+KS0u8VXDSWqor7rMlYSi5IA=
=uTxh
-----END PGP SIGNATURE-----

--Apple-Mail=_2781E653-7090-4675-87D1-DADE99D8603C--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E886046B-1612-425B-902B-72D4B0E93618>