Subject: NetBSD on raw Intel XScale PXA255
To: port-arm NetBSD.org <Port-ARM@NetBSD.org>
From: Ian Zagorskih <ianzag@megasignal.com>
List: port-arm
Date: 05/04/2004 21:51:18
Finally, I'v got the following board: http://www.compulab.co.il/armcore.htm
It has Intel PXA255 400MHz CPU, 64Mb of SDRAM, 4Mb of NOR flash and 64Mb of
NAND flash.

At this moment, I'm trying to run NetBSD 2.0 Beta on this board. At least
some way i.e load kernel image and jump to it.

In short, memory map looks like the following:

---cut---
NOR flash disk:
0x00000000 - 0x0002FFFF 1-3 ARMMON bootloader
0x00030000 - 0x0003FFFF 4 Setup block
0x00040000 - 0x0016FFFF 5-21 OS kernel image
0x00170000 - NOR flash top 21- OS RAMDISK
0x00040000 - NOR flash top 4- Optionally available for user's purposes

[other system resources including NAND flash, PCI/LCD/etc areas and so on]

SDRAM map: SDRAM starts at 0xA0000000, max top is 0xA4000000 (for 64Mb
configuration)
ARMmonitor internal purposes: 0xA0000000 :::::... 0xA0020000
Linux Kenel(max): 0xA0100000 :::::... 0xA026FFFF
Linux Ramdisk: 0xA1000000 :::::... stack bottom
WinCE Image(max): 0xA0020000 :::::... stack bottom
ARMmonitor + Stack: (SDRAM top - 0x80000): SDRAM top
---cut---

So technically there's a little boot loader called "ARMmon" which resides in
the beginning of address space and responsible for setup/boot stuff. I can
control this boot loader with serial console and it's possibly with TFTP to
download custom user images at any defined memory location and jump there.

My current problems are:

1. I don't know which port to get as the base. I guess evbarm is the right
choise ?
2. How to build a plain kernel image which can be manually loaded for
example at the beginning of SDRAM so i can jump there ? All i want at this
moment is to run NetBSD anyway on this board i.e. at least successfully
enter the kernel.

ps: Just for a stupid test i downloaded LUBBOCK binary kernel and tried to
run it on this board just flashing it into NAND disk. Sure machine did
crashed after this :)

pps: Looks like I can build evbarm toolchain without any problems:

---cut---
===> Tools built to /usr/src/tooldir.NetBSD-2.0_BETA-i386
===> build.sh started: Tue May  4 21:24:52 NOVST 2004
===> build.sh ended:   Tue May  4 21:41:50 NOVST 2004
===> Summary of results:
         build.sh command: ./build.sh -m evbarm tools
         build.sh started: Tue May  4 21:24:52 NOVST 2004
         No nonexistent/bin/nbmake, needs building.
         Bootstrapping nbmake
         MACHINE:          evbarm
         MACHINE_ARCH:     arm
         TOOLDIR path:     /usr/src/tooldir.NetBSD-2.0_BETA-i386
         DESTDIR path:     /usr/src/destdir.evbarm
         RELEASEDIR path:  /usr/src/releasedir
         Created /usr/src/tooldir.NetBSD-2.0_BETA-i386/bin/nbmake
         makewrapper:
/usr/src/tooldir.NetBSD-2.0_BETA-i386/bin/nbmake-evbarm
         Updated /usr/src/tooldir.NetBSD-2.0_BETA-i386/bin/nbmake-evbarm
         Tools built to /usr/src/tooldir.NetBSD-2.0_BETA-i386
         build.sh started: Tue May  4 21:24:52 NOVST 2004
         build.sh ended:   Tue May  4 21:41:50 NOVST 2004
===> .

---cut---

// wbr