Age | Commit message (Collapse) | Author | Files | Lines |
|
As long as this is a 32-bit PDC, we can't access a powerbutton
in the firmware area when running on a 64-bit CPU.
Report that non-supportability when asked by PDC_SOFT_POWER by
a 64-bit kernel.
Qemu may want to use some address in page zero instead.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
This broke B160L since LASI then disappears.
Disable device indexing for both B160L and C3700 for now.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Fixes and enhancements (mostly to enable 64-bit Linux kernel):
- Fixed 64-bit CPU detection via "mfctl,w" instruction
- Implement PDC_PSW for 64-bit CPUs
- Added PAT PDC functions:
- PDC_PAT_CELL
- PDC_PAT_CHASSIS_LOG
- PDC_PAT_PD_GET_ADDR_MAP
- PDC_PAT_CPU
- Fix return value of PDC_CACHE_RET_SPID space-id bits
- Introduce new default software IDs for the machines
- Fix CPU and FPU model numbers
- Fix 64-bit SMP rendezvous
- Fix Linux 64-bit kernel crash in STI due to usage of unsigned
32-bit "next_font" pointer in sti header files
- Fix graphics output to LASI artist card on PA2.0 machines
- More USB OHCI endianess fixes
- Fixes which make ODE run on B160L
- Fixes which make ODE detect Astro Runway port and CPUs
- Implement "firmware unlocking" via PDC_MODEL/PDC_MODEL_CAPABILITIES call
- Add subfunction 2 for PDC_MODEL_VERSIONS
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>
|
|
Just swapping font "next-font" pointers breaks the sti driver on older 64-bit Linux
kernels which take the "next_font" pointer as unsigned int (instead of
signed int) and thus calculates a wrong font start address. Avoid the
crash by sorting the fonts in the STI ROM before the OS starts.
A Linux kernel patch to avoid the crash was added in kernel 6.7.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Is asked by ODE on C3700. Apparently PDC PAT version.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
This fixes ODE for C3700, which aparently tried to run with PSW.W=1
and failed.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
The OS needs to "unlock" the 64-bit functions.
This fixes the ODE tool to detect the mapper instead of mapper2 tool.
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>
|
|
Fully implement device tree
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 fixes the graphics output, but keyboard is still on serial only.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Hand over the architected MEM_PDC_ENTRY address (0x4800) instead of the
native address of pdc_entry() when providing the PDC entry point in the
SMP rendezvous function.
This fixes the 64-bit SMP boot, since it avoids the ldil instruction
which trashes he upper 32-bits.
Secondly, the linux kernel checks the provided value against the
PAGE0->mem_pdc value and complains if the differ.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
2004000160 for the B160L and 2004003700 for the C3700.
Note the decimal numbers after the "2004" which reflects the
emulated machine.
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>
|
|
If SR-hasing is disabled, we need to return zero.
Linux checks this and aborts if it's not zero.
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>
|
|
Use user-provided ID for all emulated machines and CPUs.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
A minimal set of PDC PAT (PARISC-on-TAHOE, aka 64-bit PDC calls)
is needed to support booting a 64-bit PARISC kernel.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Need to implement 64-bit register save/restore before enabling this
option.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
When called from a 64-bit kernel, pdc_psw may be called with
PSW.W set, so save and restore it during the call.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
PDC_PSW tells the hardware how the default PSW is implemented.
The w field indicates the default width of the processor. The w field
also determines whether the External Interrupt Request (EIR) register is
treated as a right-justified 32-bit register or a full 64-bit register.
The e field indicates the default endianness of the processor. Both
bits determine how the PSW W-bit and E-bit will be set on an
interruption.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Use the wide version of mfctl to read the %sar register.
Only the w-version is able to detect if we run on a 64-bit CPU.
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Enhancements:
- Initial support for 64-bit CPUs with Astro/Elroy (e.g. C3700
workstation)
- USB support (OHCI)
- better PCI support
- esp-scsi fixes from Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Major changes to support 64-bit machines with Astro and Elroy chips.
This patch adds support for the C3700 workstation.
Changes include:
- Detect if the emulated CPU runs as 32-bit PA1.x or 64-bit PA2.x CPU
- Add support for Astro and Elroy chips:
* build interrupt routing table (IRT)
* add PCI irq to pci_device struct
- Enhance PCI bus scanning
* Add support for various PCI cards (serial, USB, graphics, ...)
- Change PCI I/O accessor functions:
* readX()/writeX() do byteswapping and take an ioremapped address
* __raw_readX()/__raw_writeX() don't byteswap and take an ioremapped address.
* gsc_*() don't byteswap and operate on physical addresses
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>
|
|
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>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|