Subject: Re: How to port NetBSD to a new platform with OMAP 1610
To: None <Lin.Colin@iac.com.tw>
From: Charles M. Hannum <abuse@spamalicious.com>
List: port-arm
Date: 03/25/2004 18:39:02
On Thursday 25 March 2004 09:47 am, Lin.Colin@iac.com.tw wrote:
> I am currently working on porting NetBSD to OMAP 1610.
>
> Not familiar with NetBSD before, I had paid a lot of time on surveying it.
>
> I found that NetBSD already supports ARM9 core (ARM920T), and OMAP 1610
> belongs to ARM926.
I've ported NetBSD to the DM310, which is similar. (Unfortunately I can't=
=20
release that code.)
> Many questions needed to be solved:
>
> 1. What=E2=80=99s difference between ARM920T and ARM926? Does the k=
ernel of
> ARM920T run well on ARM926 without any modifying?
There is very little difference in the ARM core itself. However, everythin=
g=20
*else* is different. In particular, you will have to implement custom=20
interrupt routing for the OMAP processor. (I think it's different on each=
=20
one.)
> 2. Dram and NOR Flash have been set up in U-BOOT. Need the kernel do
> it again in the beginning?
No; if you've already set up the clocking and initialized the RAM, you don'=
t=20
need to do it again -- though it doesn't hurt.
> 3. =E2=80=9CKERNEL_BASE_PHYS=E2=80=9D is used to set up the load pl=
ace of the kernel,
> and what=E2=80=99s =E2=80=9CKERNEL_BASE_VIRT=E2=80=9D?
The kernel maps itself (and is therefore linked) at a different address tha=
t=20
the physical address it's loaded at.
> 4. How to tell kernel the size of NOR Flash and DRAM?
Hard-wire it, or pass in the information from the boot program. (The latte=
r=20
is my preference, as it typically allows running the same kernel on multipl=
e=20
revisions of a product a little more easily. You typically have to update=
=20
other parameteres in the boot program between revisions anyway.) You can=20
look at any existing port's machdep.c to see how this is done on the kernel=
=20
side -- basically, you need to pass the information to pmap_bootstrap() and=
=20
uvm_page_physload().
> 5. =E2=80=9Cevbarm/stand/gzboot=E2=80=9D is to make a compressed ke=
rnel. Why don=E2=80=99t we
> compress kernel by tool gzip and let U-BOOT do the decompression?
That's what I prefer to do. gzboot is intended for places where you direct=
ly=20
boot the kernel and have no "boot ROM" at all.