From 74fe5e24beb14b00ce3d69e5a3010c520d4bf8e5 Mon Sep 17 00:00:00 2001 From: Takamichi Horikawa Date: Sat, 4 Dec 2021 13:41:35 +0900 Subject: Initial: vram write test --- README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..6006693 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +# Sigmarion III baremetal tests +This is a collection of programs meant to run on baremetal Sigmarion III, +which can be run with hpcboot.exe from NetBSD. + +This is an attempt to create a working example of basic display and keyboard driver (and possibly other hardware devices), in order to port OSes to run on the Pocket PC. + +## Build and boot instructions +By default, clang is used for compiling, but arm-none-eabi-gcc can also be used. See or edit common.mk for toolchain options. + +Go to each of the directories and run GNU make to obtain a *.elf file, which can be copied to the Sigmarion III and run with NetBSD's hpcboot.exe. For the platform, I tend to use W-ZERO3 but any platforms with PXA2X0 should work (see [sys/arch/hpc/conf/platid.def](http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/hpc/conf/platid.def?rev=1.26&content-type=text/x-cvsweb-markup&only_with_tag=MAIN)). + +## TODO +* Currently the entry point is changed from virtual 0xc020_0000 (as per NetBSD [sys/arch/hpcarm/conf/std.pxa2x0](http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/hpcarm/conf/std.pxa2x0?rev=1.1&content-type=text/x-cvsweb-markup&only_with_tag=MAIN)) to physical 0xa020_0000 and does away with the virtual address mapping, but how robust is this? +* Even though this overwrites the RAM area that might be the file storage region, and there's a chance the filesystem will be corrupted after the next soft reboot. Is there a way to trigger a hard reset, or a way to determine the split between storage and program memory? +* In contrast to how well the PXA255 is documented, there seems to be very little information about the video chip which may or may not be Imageon 3200 or 4200. It's trivial to use the 0x1480_0000 region inside the VRAM which gets configured by the WinCE, but it may be necessary to reconfigure it after a sleep or a reboot. +* arm-none-eabi-gcc seems to generate a thumb interwork while clang uses BLX + +## Hardware +### Memory map +* 0xa000_0000 - 0xa400_0000: 64MB RAM +* 0x1480_0000 - : VRAM (16bpp) + +### I2C +* 0x11: Keyboard? + +## References +* Intel PXA255 datasheets/manuals +* [Inside Sigmarion III](https://z.apps.atjp.jp/sig3/) -- cgit v1.2.3