This is good enough to begin booting the Linux kernel. We do not get all the way to userspace yet; I've found two kernel bugs so far leading to immediate crashes, I suspect there are more that have crept in. At the moment we seem to get into the cpu_idle loop without managing to schedule the first kernel_thread.
Posted to begin getting comments. Source to the QEMU PALcode can be found at http://repo.or.cz/w/qemu-palcode.git Several patches for the kernel to recover from recent breakage at http://repo.or.cz/w/linux-2.6/rth.git axp-qemu r~ Richard Henderson (5): Export the unassigned_mem read/write functions. target-alpha: Disassemble EV6 PALcode instructions. pci: Export pci_to_cpu_addr. target-alpha: Prepare for Alpha BIOS images. target-alpha: Emulate Alpha SX164. Makefile | 3 +- Makefile.target | 4 +- alpha-dis.c | 4 - configure | 3 +- cpu-common.h | 7 + cpu-exec.c | 16 +- default-configs/alpha-softmmu.mak | 9 + dis-asm.h | 3 + disas.c | 2 +- exec.c | 12 +- hw/alpha_palcode.c | 1048 ------------------------------------ hw/alpha_pci.c | 327 ++++++++++++ hw/alpha_pyxis.c | 1057 +++++++++++++++++++++++++++++++++++++ hw/alpha_sx164.c | 195 +++++++ hw/alpha_sys.h | 41 ++ hw/pci.c | 3 +- hw/pci.h | 1 + linux-user/main.c | 39 +- pc-bios/palcode-sx164 | Bin 0 -> 107781 bytes target-alpha/cpu.h | 337 +++++------- target-alpha/exec.h | 7 +- target-alpha/helper.c | 630 ++++++++++------------ target-alpha/helper.h | 34 +- target-alpha/machine.c | 84 +++ target-alpha/op_helper.c | 249 ++++------ target-alpha/translate.c | 422 +++++++++------- 26 files changed, 2543 insertions(+), 1994 deletions(-) create mode 100644 default-configs/alpha-softmmu.mak delete mode 100644 hw/alpha_palcode.c create mode 100644 hw/alpha_pci.c create mode 100644 hw/alpha_pyxis.c create mode 100644 hw/alpha_sx164.c create mode 100644 hw/alpha_sys.h create mode 100644 pc-bios/palcode-sx164 create mode 100644 target-alpha/machine.c -- 1.7.4.2