Commit Graph

119 Commits

Author SHA1 Message Date
joevt 986fc22fd4 mpc106: Fix RAM allocation again.
For greater than 4 banks.
2025-04-04 06:27:13 -07:00
joevt 1046baf11d spdram: Add 8 MB DIMMs. 2025-04-03 18:16:44 -07:00
Rairii c4906d1f15 spdram: Add 16 MB DIMMs. 2025-04-03 18:16:38 -07:00
joevt c483a9a615 spdram: Add 512 MB DIMMs. 2025-04-03 07:40:20 -07:00
Maxim Poliakovski 2a3e46eab4 memctrlbase: overload add_ram_region()
to accept externally allocated memory.
2025-04-01 03:05:46 +02:00
joevt 83066bbf5f memctrlbase: Return entry instead of bool. 2025-03-24 07:29:31 -07:00
joevt 392f6cdcd3 mpc106: Document flash ROM related registers. 2025-03-21 07:30:18 -07:00
dingusdev 08f67c010c Add get_type_str + get_entry+str
Co-Authored-By: joevt <950609+joevt@users.noreply.github.com>
2025-03-14 10:43:37 -07:00
joevt cf0d78fe98 debugger: add regions command.
To dump the list of memory regions.
2025-03-14 10:31:57 -07:00
joevt 98925a39b9 Code clean-up part 2. 2025-03-13 06:14:35 -07:00
dingusdev 77503df677 Code clean-up 2025-03-12 07:58:32 -07:00
joevt 3da972ddc9 Add missing this. 2025-03-10 06:49:37 -07:00
joevt 394fdd00f0 machinegazelle: Support 160 MB RAM. 2024-12-10 18:22:02 -07:00
joevt 3124b10eaa Implement DIMM properties. 2024-12-08 12:26:14 -07:00
dingusdev 31323e7bf1 Fix compiling errors for MON_ID_SENSE (platinum) 2024-12-04 07:48:38 -07:00
joevt 05658ad5c5 platinum: Fix MON_ID_SENSE read/write. 2024-12-04 07:38:53 -07:00
joevt a593a4a73e platinum: Implement VRAM_REFRESH read. 2024-12-04 07:36:59 -07:00
joevt 99972307dc platinum: Implement FB_TEST read/write. 2024-12-04 07:36:48 -07:00
joevt d7fb49166f platinum: Add comments and enums for registers. 2024-12-04 07:16:47 -07:00
joevt 0bca7bc743 platinum: Make some FB_CONFIG_1 bits read only. 2024-12-04 07:16:45 -07:00
dingusdev 10a3fa5984 Tweak logging for main branch 2024-12-04 07:11:43 -07:00
joevt d98929f24c platinum: Registers affect display immediately. 2024-12-04 07:11:07 -07:00
joevt 2ab6a94795 Ignore zero sized DIMM. 2024-12-04 07:10:40 -07:00
Mihai Parparita 4479387580 Remove using namespace std from remaining header files
It's somewhat of an anti-pattern, and can lead to conflicts with
other symbols (e.g. the Windows build failure in https://github.com/dingusdev/dingusppc/actions/runs/11762906342/job/32766290288,
I removed `using namespace std` from timermanager.h to fix that one).
2024-11-30 20:01:09 -08:00
joevt 6c093e141b Add missing override statements. 2024-11-15 10:03:57 -07:00
joevt e7eb1c8a66 Fix PCI interrupts and add devices.
- Use interrupt source instead of IRQ ID in the IrqMap.
- Add a get_interrupt_controller method to mirror the set_interrupt_controller method.
- Have PCI hosts use pcihost_device_postinit to add PCI devices. This was moved from bandit's device_postinit and allows for duplicate devices by appending the slot to the registered device name.
- Fix interrupts of Pippin.

Fix interrupts of cmd646
- Make it work like other PCI devices.
- IntDetails is built into the pcibase base class.
- IntDetails is initialized by calling pci_interrupt.
- pci_interrupt checks the "enable interrupts" flag before doing an interrupt.
2024-11-12 07:04:55 -07:00
joevt ffc7de4715 platinum: Handle read 4 bytes with offset. 2024-11-10 21:05:05 -07:00
joevt 97339e4ce4 platinum: Add disable_display.
To mirror enable_display.
2024-11-10 21:03:53 -07:00
Mihai Parparita 9b49603c72 memctrl: keep address_map sorted by address
We do a linear scan in find_range (which is called on all TLB misses) to
find the entries. The largest and most frequently hit entry is the
system memory (which starts at 0). By ensuring that it's the first entry
in the list, we end up only doing one iteration through the loop.
2024-07-28 13:27:48 -07:00
Maxim Poliakovski 5eaff7a8ce MPC106: break long lines. 2024-06-28 19:52:22 +02:00
Maxim Poliakovski 9d44ac0901 mpc106: fix includes. 2024-06-25 16:53:52 +02:00
kth5 742662e4fc Fix missing std::find_if and others with GCC 14.1.1 2024-06-24 23:41:55 +02:00
joevt 3036f4676d Use default window size in constructor.
The window size should be changed later by the mon_id property.
2024-04-23 07:27:52 -07:00
Maxim Poliakovski e722ef3e8a memctrlbase: add get_region_hostmem_ptr(). 2024-04-21 23:04:12 +02:00
joevt bd63d1dcda platinum: Validity check before enable display. 2024-04-10 20:56:51 -07:00
Maxim Poliakovski 1c8702d67a Add missing credits. 2024-04-09 01:51:51 +02:00
Maxim Poliakovski 4c9fe06229 Implement Aspen memory controller. 2024-04-08 00:44:24 +02:00
Maxim Poliakovski 7972a0f2a8 hammerhead: use instance name in logging messages. 2024-04-07 18:48:52 +02:00
joevt d0a5a1e7be Add ability to override built-in GPU. 2024-04-04 19:04:06 -07:00
joevt 9ade14e076 memctrlbase: fix possible memory leak. 2024-03-27 14:08:20 +01:00
Maxim Poliakovski 0a97e4e038 hmc: implement extended memory for PDM. 2024-03-26 00:39:33 +01:00
Maxim Poliakovski 8e19164977 memctrlbase: introduce add_mem_mirror_common(). 2024-03-26 00:39:33 +01:00
Maxim Poliakovski ab60bb8d0b memctrlbase: cosmetic improvements. 2024-03-26 00:39:33 +01:00
joevt 78020c4794 Add Bandit2 and properties for Chaos. 2024-03-20 07:38:39 -07:00
Maxim Poliakovski a8cd73cc69 hammerhead: remove MACH_TYPE_CATALYST definition.
Catalyst uses another memory controller (Platinum)
that significantly differs from Hammerhead.
Low-level board constants don't match too.
2024-03-12 17:41:12 +01:00
Maxim Poliakovski 54ce23d0a8 platinum: cleanup non-DWORD register reads. 2024-03-12 17:29:19 +01:00
Maxim Poliakovski 2d68b72dbd platinum: use meaningful name for 'register _4B'. 2024-03-12 17:05:47 +01:00
joevt 6e4544450e platinum: Add register _4B. 2024-03-12 07:07:43 -07:00
joevt d4922beefe platinum: Don't ignore read/write of size != 4.
For reading, we'll return values such that dumping bytes or words or longs in Open Firmware will produce the same info in all cases.
2024-03-12 07:07:36 -07:00
joevt 6f37ff9ea3 platinum: Convert register offset to index.
Same as control.
2024-03-12 07:06:05 -07:00