Age | Commit message (Collapse) | Author | Files | Lines |
|
Fixes
- boot of HP-UX with SMP, and
- reboot of Linux and HP-UX with SMP
Enhancements:
- show qemu version in boot menu
- adds exit menu entry in boot menu to quit emulation
- allow to trace PCD_CHASSIS codes more specifically
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Qemu currently only supports PSW_Q handling, so enable it by default.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Get the qemu version from the fw_cfg interface and show it
during bootup.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Do not store the boot args in the pad0 field of PAGE0.
This breaks booting HP-UX SMP kernels.
Use pad608 instead.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Most important is the flushing of the TLB entries
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
This allows to include the version number in the binary
header of hppa-firmware.img
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Fixes boot of the Debian-12 installation CD-ROM
The size of the ramdisc of Debian-12 is 17123328 bytes and occupies 8361
CD-ROM sectors (of 2048 bytes each). As such the palo bootloader tries to
read 8361 sectors, which fails with DISK_RET_EBADTRACK error because the
emulated LSI SCSI driver only supports (due to hardware limitation)
reading 8192 sectors at once.
Fix it in the SeaBIOS firmware by limiting the sectors which can be read
at once to 8192-16 sectors. The palo bootloader will then simply do
additional calls to read the remaining sectors.
This firmware bug didn't show up with Debian-11 because that ramdisc
was smaller and below the 8192 sector limit.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Fixes the serial port emulation
Qemu versions which request a SEABIOS_HPPA_VERSION < 6 have the bug that
they use the DINO UART instead of the LASI UART as serial port #0.
Staring with SEABIOS_HPPA_VERSION 6 the serial ports are now emulated as
on physical hardware, with LASI UART being serial port #0.
This patch adds a compat patch, which will use the DINO UART port
for console I/O if it detects that qemu requests a SEABIOS_HPPA_VERSION
< 6.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Add this option to avoid some warnings like:
src/tcgbios.c: In function 'tpm_interrupt_handler32':
src/tcgbios.c:1721:45: warning: taking address of packed member of 'struct bregs' may result
in an unaligned pointer value [-Waddress-of-packed-member]
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Prevent usage of the hardcoded PARISC_SERIAL_CONSOLE value and instead
check the given hpa and provide the correct serial port name.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
The structs mem_kbd and mem_cons holds the HPA of the serial ports
used for console I/O, so use those instead of hardcoding to
PARISC_SERIAL_CONSOLE.
There is no functional change with this, but now it complies to how
the values from PAGE0 should be used.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
On real hardware, Linux detects the UART which is built-into LASI as serial port #1,
and the UART which is built-into DINO as serial port #2.
But to now qemu and SeaBIOS used the UART on DINO as serial port #1,
which breaks qemu's possibility to use the "-serial" option to
pass-through host serial ports to the guest.
Fix this by swapping the addresses of PORT_SERIAL1 and PORT_SERIAL2.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
On german keyboards, the Z key is positioned at the same location
as Y on english keyboards. German users may thus type Z instead of
Y. So this patch allows Z as synonym for Y.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
New features and fixes:
* Fixed SeaBIOS PS/2 keyboard support.
This now allows to use the qemu "-boot menu=on" option to start the
firmware boot selection menu and provide a working menu with keyboard on
serial (qemu "-nographic" option) and PS/2 keyboard (qemu "-graphic"
option) on graphical screen.
|
|
Finally add the real boot menu.
If qemu is started with the "-boot menu=on" option, the PDC boot menu is
shown and the user can then boot any of the available SCSI disc/CDs.
Just type "BOOT" (to boot the default device), or "BOOT FWSCSI.4" (to boot
SCSI device #4).
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
lasips2_kbd_in() is used to read input from an emulated PS/2 keyboard.
Since there is no interrupt support durig PDC/IODC we need to poll the
PS/2 status flags to see if a new key was pressed. In order to be able
to poll regularily, exit the loop to read already pressed chars as soon
as possible. This can be done by calling handle_16() with register ah =
0x11 to check if keys are queued up and exit if none are available.
This patch fixes the problem that keys couldn't be read when using a
graphical output (artist graphics). This patch fixes palo and other
bootloaders to be able to use input from the emulated PS/2 keyboard.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Add the CONSOLE_DEFAULT constant to make the decision which I/O console to use
easier to understand.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
New features and fixes:
* Fix firmware rendenzvous code to clear all pending external intrrupts
before entering the waiting loop.
* STI firmware now contains additional fonts built-in, which
can be selected with qemu command-line options:
-fw_cfg opt/font,string=1 - a HP 8x16 font
-fw_cfg opt/font,string=2 - a HP 6x13 font
-fw_cfg opt/font,string=3 - a HP 10x20 font
-fw_cfg opt/font,string=4 - a Linux 16x32 font
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Add additional fonts to STI ROM.
They can be selected with qemu command-line options:
-fw_cfg opt/font,string=1 - a HP 8x16 font
-fw_cfg opt/font,string=2 - a HP 6x13 font
-fw_cfg opt/font,string=3 - a HP 10x20 font
-fw_cfg opt/font,string=4 - a Linux 16x32 font
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Fix the PDC rendenzvous code to clear all pending external intrrupts
before entering the waiting loop.
Without clearing them before, the CPU was waken up immediately again.
This fixes the CPU hotplug on Linux, which can be run with
chcpu -d 2 # to disable CPU2
chcpu -e 2 # to wake up CPU2
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
New features and fixes:
* Allow up to 16 CPUs
* Add TOC button support:
To trigger a TOC, execute "nmi" in the qemu monitor (Ctrl-A C)
* New opt/hostid fw_cfg option to change hostid:
-fw_cfg opt/hostid,string=334455
* Add opt/console fw_cfg option to select default console:
-fw_cfg opt/console,string=serial
-fw_cfg opt/console,string=graphics
* Add Linux TER16x32 font to STI firmware:
-fw_cfg opt/font,string=2
* Leave IRQs disabled after rendevouz
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
The new 16x32 font can be selected as default firmware font with
this Qemu option:
-fw_cfg opt/font,string=2
Any other values will choose the current HP 8x16 font.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
By default the firmware will choose the (virtual) graphics card
as firmware console if the graphics card is available.
If not it defaults to serial console.
In some configurations it's useful to select the serial console
als default output device even if the graphics card is available.
For that, this patch adds the opt/console fw_cfg qemu option.
Qemu option usage to switch the firmare to use the serial or graphics
default output:
-fw_cfg opt/console,string=serial
-fw_cfg opt/console,string=graphics
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Move the HPA for MEMORY_HPA out of the address space of the 16th CPU,
and fix the PDC_COPROC_CFG PDC function to report functional FPUs for
all configured CPUs. The documentation specifies that cr10 can only
report for 8 CPUs, but that seems outdated as both HP-UX 10 and HP-UX 11
accepts this change.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
And only enable the timer IRQ for wakeup (not all).
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Add support for an emulated TOC/NMI button.
Almost all PA-RISC machines have either a button that is labeled with
'TOC' or a BMC/GSP function to trigger a TOC. TOC is a non-maskable
interrupt that is sent to the processor. This can be used for
diagnostic purposes like obtaining a stack trace/register dump or to
enter KDB/KGDB in Linux.
This patch adds support for such an emulated TOC button.
This patch writes the CPU registers into PIM (processor internal
memmory) for later analysis. It uses the CPU "shadow registers", the
IAOQ-back and IASQ-back values are provided by qemu in r24/r25. This
patch uses the new qemu aritificial opcode "getshadowregs" (0xfffdead2)
which restores the original values of the shadow registers.
To trigger a TOC, switch to the "qemu monitor" with Ctrl-A C, and type
in the command "nmi". After the TOC started the OS-debugger, exit the
qemu monitor with Ctrl-A C.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Allow the user to select another hostid value.
In HP/UX the "uname -i" command shows the number,
and in Linux it's visible in the /proc/cpuinfo output.
The default hostid number is 2006243326, any other value can
be selected with this qemu command line option:
-fw_cfg opt/hostid,string=334455
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
This version adds fixes which allow choosing the primary boot device.
Either via qemu bootindex parameter, e.g.:
-device scsi-hd,drive=drive1,bus=scsi0.0,channel=0,scsi-id=6,lun=0,bootindex=1
-drive file=image.img,if=none,id=drive1
or via qemu boot order option to select the SCSI ID, e.g.:
-boot order=g-m: machine implementation dependent drives (SCSI ID)
where "g" means SCSI ID 0, "h" is SCSI ID 1 and so on.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Needed to cope with upstream changes.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Enable firmware debug info at startup with this option:
-fw_cfg pdc_debug,string=<val>
<val> is an integer with this bitmask:
DEBUG_PDC 0x0001, enables debug info for PDC calls
DEBUG_IODC 0x0002, enables debug info for IODC calls
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Make the malloc area initialization the first step after bootup.
It's important, because the first mallocs otherwise ends up in lower
memory area (PAGE0 from parisc) which will gets overwritten later.
That change fixes the fw_cfg() interface as well. Before that change
fw_cfg got initialized and zeroed-out shortly later in the boot process.
And now the initialization of the boot structures succeeds too, so we
can run boot_init() directly after setting up malloc and fw_cfg, and the
bootindex parameter from qemu suddenly works out of the box.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
On parisc qemu reports the main PCI bus as "/dino-pcihost" instead of
"/pci@i0cf8". This is important when using the bootindex parameter for
SCSI discs, because the seabios boot code uses this name as prefix when
identifying and sorting the bootable discs.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Add support to boot from a specific SCSI ID by mapping drives
g-m to SCSI IDs 0-7, e.g.
-boot order=g for SCSI ID 0, and
-boot order=l for SCSI ID 5
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
PA-RISC is big endian. Add necessary endianess conversion functions
to get disc detection correct.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Boot directly from ATA drive without going through the process_op_32()
function. Additionally PA-RISC can read/write chunks from disk which
are bigger than 64kb, so don't abort when this is tried.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
This patch adds the various drivers for PA-RISC.
To build the parisc firmware enable CONFIG_PARISC and run "make parisc".
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
This header file is included from many places and provides
low-level inline assembly functions used on the Intel CPU.
On PA-RISC similiar functions exists, so provide replacement
functions in an own header file and include that instead.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|