mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-20 05:36:23 +02:00
84a1ff85b0
T480/T480s patches were dropped since they're included as
part of the upstream code now.
This update brings the following upstream changes:
* 9e41c7cec7 soc/intel/cmn/block/fast_spi: Lock DMA before exiting coreboot
* c1d45ef93b mb/google/trulo/var/kaladin: Update touchpad settings
* f13f980e03 mb/google/trulo/var/kaladin: Add fw_config probe for storage
* 50c39b3a22 mb/google/trulo/var/kaladin: Fix Type C function
* f0d50aa404 commonlib/include/commonlib: Add volatile qualifier
* 3828153ea5 soc/intel/xeon_sp/gnr: Use official microcodes
* a87cbcd3c9 soc/intel/xeon_sp/ibl: Config ACPI base using PMC device
* 480ac15044 util/cbfstool: Prevent overflow when sorting fit table entries
* bf4f08f3b6 mb/hp/snb_ivb_desktops/variants/compaq_8300_elite_sff: early VGA output
* dd19f6bc5a util/cbmem: Extract devmem and common code to separate files
* def945f3ba soc/intel/apollolake: Measure the IBBL, IBB and OBB from the bootblock
* fbb0738272 mb/google/brox/var/lotso: Decrease cpu power limits
* ce88b12420 mb/google/ocelot: Set correct TPM I2C bus for all ocelot model variants
* e050e2fbfc mb/google/ocelot/var/ocelot: Remove irrelevant comment
* b66c8ea3d3 mb/google/ocelot/var/ocelot: Remove Bluetooth Audio offload
* d5d633f607 mb/google/ocelot/var/ocelot: Update variant.c
* 3b069d320c cbfs: Add a function to wait for all CBFS preload operations to complete
* a7710ed8fd Documentation: coding_style: Add *long* to long multi-line comment example
* 19d7104d85 drivers/intel/touch: Use recommended short multi-line comment style
* 451988d015 mb/google/trulo/var/pujjolo: Fix Goodix touchscreen function
* 542e52c126 soc/qualcomm/x1p42100: Optimize memory layout for X1P42100
* 2e47bd50f2 mb/google/trulo/var/pujjocento: Add 6W and 15W DPTF parameters
* 6e4f4538bb soc/intel/{tgl,adl,mtl,ptl}: Default to Software Connection Manager
* 1b8dd662a9 soc/qualcomm/x1p42100: Add PCIE Clock support for x1p42100
* 4d3def7514 soc/mediatek/mt8189: Fix timer reset in BL31 by using time_prepare_v2
* d898653b0e soc/meidatek/mt8196: Extract common timer code for reuse
* d1c096a5b9 src/soc/mt8196: Correct systimer register offset
* edaa67d0c9 mb/google/skywalker: Add thermal init flow in romstage
* 6aec09875b soc/mediatek/mt8189: Add thermal driver
* 5cc4b9e6ce soc/amd/common/cpu/noncar: Add bootblock overlap detection
* 67cd138df9 soc/intel/apollolake: Add missing header in measured_boot.h
* a428481574 mb/google/nissa/var/dirks: Update power limits
* 55ae0d8a37 mb/google/nissa/var/baseboard/nissa: Add power limits functions
* 82163aedc6 soc/amd/common/block/cpu/noncar: Move BSS and DATA out of PT_LOAD
* 6405641647 mb/google/fatcat: Use same mainboard part number for all fatcat variants
* c5613469ae device: Make a note that SeaBIOS doesn't support above 4G MMIO
* ced4c09359 soc/intel/xeon_sp/gnr: Implement get_mmio_high_base_size
* 7100f226ca vc/intel/fsp/fsp2_0/wcl: Add FSP headers for WCL FSP
* 5171098814 drivers/qemu/bochs: Allow building for non-x86 architectures
* d233b6c903 payloads/external/LinuxBoot/Makefile: Fix build prerequisite
* 502d19be89 payloads/external/LinuxBoot/targets/u-root.mk: Add missing prerequisite
* cba0f0b8b9 payloads/external/LinuxBoot: Rename build target
* 43a54e3b1b util/amdfwtool: Add binary parsing
* 85da3954d0 .gitmodules: Ignore changes make by what-jenkins-does
* 397c5fe420 Documentation: Add a mainboard entry for the Lenovo T480/T480s
* 6768586353 Documentation: Add information about the deguard utility
* ad8b738af0 mb/lenovo: Add ThinkPad T480 and ThinkPad T480s
* 96e381766e ec/lenovo: Add support for MEC1653 EC
* 2181b02765 util/smmstoretool: Properly initialise the authenticated variable header
* 3058464263 util/smmstoretool: Add support for creating variable from file contents
* b49f567e45 util/smmstoretool: Ensure that the FVB header isn't too large
* a6fbaa47ea util/smmstoretool: Clarify the `auth_vars` field
* 3698517d82 mb/amd: Use mec152x tool
* 5a0953614b util/amdtools: Add ec_usb_pd_fw
* e63620012c util: Add Microchip EC FW tool
* 0b5ce9d9f0 soc/intel/apollolake: Add support for IFWI Measured Boot
* 289cff3423 soc/intel/apollolake: Load the IBB into CAR
* 2408695dd3 soc/intel/apollolake: Add a loader for the IBB
* 61b66e9a81 soc/intel/apollolake: Add function to clear MCA in Bank 4
* 138402e7ff soc/intel/apollolake: Create IBB, IBBL and OBB
* 61b4e1983c mb/google/fatcat: Update PCH reset power cycle duration to 1 second
* e9af95d5ab soc/intel/pantherlake: Configure FSP UPDs for minimum assertion widths
* 79bd154b49 drivers/genesyslogic/gl9763e: Mask replay timer timeout of AER
* a775bfc2b2 soc/mediatek/mt8189: Specify MTKLIB_PATH for building BL31
* e583b2ffb7 soc/meidatek/mt8196: Extract common thermal code for reuse
* f62734976c mb/dell: Convert E6400 into a variant
* 8d60bf9975 mb/google/fatcat: select MIPI pre-prod if PTL pre-prod SoC is set
* 2f978ecab3 mb/google/fatcat: Choose platforms with pre-prod Panther Lake SoC
* eb1483ba17 soc/mediatek/mt8189: Increase SCP clock frequency from 26MHz to 416MHz
* 9c5557f982 util/abuild: Add --sequential-boards option
* 9e5234feee payloads/external/edk2: Drop our toolchain override
* 8d9e18a122 payloads/edk2: Indicate whether edk2-platforms is available
* 626fd50a94 mb/google/fatcat/var/kinmen: Enable ISH
* e7cefe4f41 soc/mediatek/mt8196: Move srclken_rc related code to common
* e9731f8925 soc/intel/pantherlake: Add configs for pre-production silicon
* 8687b3d108 mb/google/trulo/var/pujjolo: Add ISH firmware config
* 722c9314c7 mb/google/dedede/var/awasuki: Add 2 HYNIX modules to RAM id table
* 6082bd7711 ec/lenovo/h8: Rework invalid temperature reporting
* 621b1061d0 ec/lenovo/h8: Add Kconfig to select use of Thermal Zone 1
* bc116b8797 ec/lenovo/h8: Replace chip regs for BT/WWAN detect with Kconfig options
* d9169ef617 ec/lenovo/pmh7: Add CFR objects for existing options
* 45d9973a6d ec/lenovo/h8: Add CFR objects for existing options
* ce5a1e8a51 mb/google/brox: Create caboc variant
* d745d38393 soc/intel/cmn/block/fast_spi: Add DMA support
* 8e666c367d soc/qualcomm/x1p42100: Update boot critical firmware memory layout
* e35c784847 Doc/gfx/libgfxinit.md: Fix file names in source code references
* 0e682859e7 payloads/external/U-Boot: Upgrade from 2024.07 to v2025.07
* 8b52167a9f arch/x86: Add support for cooperative multitasking on x86_64
* 569b7a8861 Docs/releases: Finalize 25.06 release notes
* 5db8bf0cfa mb/trulo/var/pujjolo: Enable USB3 WWAN device
* e013c9586c mb/trulo/var/pujjolo: Modify mipi camera parameters
* 7b8520ab69 mb/trulo/var/pujjolo: Update fingerprint enable pin status
* f74027d5ae mb/google/nissa/var/craask: Add elan touchscreen support
* 396a883a0c mb/hp/snb_ivb_desktops: Include PS/2 controller ASL code for MS Windows
* 18c067d392 mb/google/fatcat/var/kinmen: Add Synaptics touchpad
* 2f5b384ba5 soc/mediatek/mt8189: Enable EARLY_MMU_INIT to improve boot time
* d5bce8c420 mb/hp: Add HP 260 G1 DM Business PC (Haswell)
* 48c6f66fa4 mb/google/ocelot: Update TPM_TIS_ACPI_INTERRUPT value in Kconfig
* 0660fe50de mb/google/ocelot: Update GPE configuration
* 5b3063802e mb/google/fatcat/var/kinmen: Fix touchscreen IRQ setting
* 6c4e502fdd mb/google/nissa/var/pujjocento: Reduce PL4 to 38W with no battery
* 6e92554ab6 mb/trulo/var/pujjolo: Modify FW_CONFIG for mipi camera
* 4f5f75da34 mb/trulo/var/pujjolo: Correct USB3 Type-A OC pins
* a1dfd39e04 mb/google/fatcat/var/kinmen: Add AUDIO_UNKNOWN and probe for ALC721
* 306544b427 mb/google/fatcat/var/francka: Add AUDIO_UNKNOWN and audio probes
* edf47d44cd mb/google/fatcat/var/fatcat: Disable Audio for invalid Audio FW_CONFIG
* 454079c3bc lib/cbfs: Ensure cache buffer alignment in ramstage
* 0ef670a66a mb/google/ocelot/var/ocelot: Configure FPS related changes
* 6ab37f0e0e mb/google/ocelot/var/ocelot: Add FW_CONFIG for Finger Print
* 3f61df24d5 mb/google/ocelot/var/ocelot: Add FW_CONFIG for Storage
* bb95a26cda mb/google/ocelot/var/ocelot: Add FW_CONFIG for WiFi
* 410b3c697f mb/google/ocelot/var/ocelot: Add FW_CONIG for ISH
* afaf4c3d7b mb/google/brya/variants/pujjolo: Update ISH GPIOs and add ISH firmware name
* f6de6f8933 mb/google/fatcat: Drop redundant SNDW GPIO mapping
* 584fdd6572 soc/mediatek/mt8196: Remove redundant bootblock.c from Makefile.mk
* 24ea6937f2 soc/intel/apollolake: Add the Kconfig options for IFWI Boot Profile
* c68645cd88 util/supermicro: Fix mem leak in get_line_as_int error conditions
* 05396238da libpayload/drivers: Fix mem-leak in cbmem_console error condition
* 1219981177 drivers/emu/qemu: Add a comment about fw_cfg assumptions
* d866e72b3a mb/google/fatcat/var/kinmen: Set CRFP to use GPIO for status
* 4367daae20 drivers/spi: Add option to generate proper PowerResource _STA
* 03c331399c mb/google/nissa/var/craask: Add focaltech touchscreen support
* b3d7c40fb5 mb/siemens/mc_rpl: Remove code for board_id
* 5de16ed1b8 mb/siemens/mc_rpl: Remove unused embedded controller code
* a1067ec6de mb/siemens/mc_rpl: Remove unneeded code to select a VBT name in CBFS
* 463cda84d2 mb/siemens/mc_rpl: Remove unused Type-C data definition
* dcbe591201 mb/siemens/mc_rpl: Use SPD data from HWInfo instead of from CBFS
* 6c059f8af3 IVB mainboards: Drop 1024M option for gfx_uma_size
* 3b61dbaa06 mb/asus/p8z77-m_pro: Remove incorrect gfx_uma_size options
* 2b7115b139 mb/hp/snb_ivb_desktops: Add gfx_uma_size options up to 512MB
* d99769bbde mb/hp/snb_ivb_desktops/variants: enable 4th sata port on tested models
* 95784dbafb mb/google/ocelot/var/ocelot: Add FW_CONFIG for Audio
* f323adb19f soc/mediatek/mt8189: Increase SPI NOR clock rate from 26MHz to 52MHz
* 689af47b52 commonlib: Add pvmfw related timestamps
* f1d06a5ad4 soc/intel/common/block/memory: Provide a way to use SPD data from memory
* 11b1dc0a97 Reapply "util/cbmem: Consolidate CBMEM and coreboot table access"
* 13f1c6118e Documentation: Update cbmem.md with more information
* 07267d19ce arch/x86/postcar_loader: Add comment line for reloc_params assignment
* e94ac6e655 mb/google/nissa/var/pujjocento: Reduce PL4 to 38 W with no battery
* 2eaec1b53a sbom: Fix build with merged bootblock and romstage
* 267f08dafd MAINTAINERS: Add KunYi Chen as maintainer for LattePanda Mu
Signed-off-by: Leah Rowe <leah@libreboot.org>
241 lines
8.5 KiB
Diff
241 lines
8.5 KiB
Diff
From 814f2a4a1daf8bfd923cbfe3e618a153a7ade41e Mon Sep 17 00:00:00 2001
|
|
From: Leah Rowe <info@minifree.org>
|
|
Date: Tue, 6 Aug 2024 00:50:24 +0100
|
|
Subject: [PATCH 17/35] nb/gm45: Fix Angel's DDR2 RCOMP fix on DDR3 boards
|
|
|
|
We add this patch:
|
|
|
|
commit commit_id_here
|
|
Author: Angel Pons <th3fanbus@gmail.com>
|
|
Date: Mon May 10 22:40:59 2021 +0200
|
|
|
|
nb/intel/gm45: Make DDR2 raminit work
|
|
|
|
This patch was original applied, in lbmk, only on coreboot/dell,
|
|
separately from coreboot/default, which was wasteful because it
|
|
meant having an entire coreboot tree just for a single board. We
|
|
did this, because the DDR2 RCOMP fix happened to break DDR3 init
|
|
on other boards.
|
|
|
|
What *this* new patch does on top of Angel's patch, is make sure
|
|
that their changes only apply to DDR2, while DDR3 behaviour remains
|
|
unchanged. This means that the Dell Latitude E6400 can be supported
|
|
in the main coreboot tree, within lbmk.
|
|
|
|
Essentially, this patch restores the old behaviour, prior to applying
|
|
Angel's patch, only when DDR3 memory is used.
|
|
|
|
Signed-off-by: Leah Rowe <info@minifree.org>
|
|
---
|
|
src/northbridge/intel/gm45/raminit.c | 161 +++++++++---------
|
|
.../intel/gm45/raminit_rcomp_calibration.c | 9 +-
|
|
2 files changed, 88 insertions(+), 82 deletions(-)
|
|
|
|
diff --git a/src/northbridge/intel/gm45/raminit.c b/src/northbridge/intel/gm45/raminit.c
|
|
index df8f46fbbc..433db3a68c 100644
|
|
--- a/src/northbridge/intel/gm45/raminit.c
|
|
+++ b/src/northbridge/intel/gm45/raminit.c
|
|
@@ -1117,7 +1117,10 @@ static void dram_program_timings(const int spd_type, const timings_t *const timi
|
|
reg = (reg & ~(0xf << 10)) | (2 << 10);
|
|
else
|
|
reg = (reg & ~(0xf << 10)) | (3 << 10);
|
|
- reg = (reg & ~(0x7 << 5)) | (2 << 5);
|
|
+ if (spd_type == DDR2)
|
|
+ reg = (reg & ~(0x7 << 5)) | (2 << 5);
|
|
+ else
|
|
+ reg = (reg & ~(0x7 << 5)) | (3 << 5);
|
|
} else if (timings->mem_clock != MEM_CLOCK_1067MT) {
|
|
reg = (reg & ~(0x7 << 15)) | ((9 - timings->CAS) << 15);
|
|
reg = (reg & ~(0xf << 10)) | ((timings->CAS - 3) << 10);
|
|
@@ -2209,83 +2212,85 @@ void raminit(sysinfo_t *const sysinfo, const int s3resume)
|
|
raminit_write_training(timings->mem_clock, dimms, s3resume);
|
|
}
|
|
|
|
- /*
|
|
- * Program hardcoded DDR2-800 RCOMP SRAM codes. This must be done
|
|
- * after receiver enable calibration, otherwise raminit sometimes
|
|
- * completes with non-working memory.
|
|
- */
|
|
- mchbar_write32(0x0530, 0x06060005);
|
|
- mchbar_write32(0x0680, 0x06060606);
|
|
- mchbar_write32(0x0684, 0x08070606);
|
|
- mchbar_write32(0x0688, 0x0e0e0c0a);
|
|
- mchbar_write32(0x068c, 0x0e0e0e0e);
|
|
- mchbar_write32(0x0698, 0x06060606);
|
|
- mchbar_write32(0x069c, 0x08070606);
|
|
- mchbar_write32(0x06a0, 0x0c0c0b0a);
|
|
- mchbar_write32(0x06a4, 0x0c0c0c0c);
|
|
-
|
|
- mchbar_write32(0x06c0, 0x02020202);
|
|
- mchbar_write32(0x06c4, 0x03020202);
|
|
- mchbar_write32(0x06c8, 0x04040403);
|
|
- mchbar_write32(0x06cc, 0x04040404);
|
|
- mchbar_write32(0x06d8, 0x02020202);
|
|
- mchbar_write32(0x06dc, 0x03020202);
|
|
- mchbar_write32(0x06e0, 0x04040403);
|
|
- mchbar_write32(0x06e4, 0x04040404);
|
|
-
|
|
- mchbar_write32(0x0700, 0x02020202);
|
|
- mchbar_write32(0x0704, 0x03020202);
|
|
- mchbar_write32(0x0708, 0x04040403);
|
|
- mchbar_write32(0x070c, 0x04040404);
|
|
- mchbar_write32(0x0718, 0x02020202);
|
|
- mchbar_write32(0x071c, 0x03020202);
|
|
- mchbar_write32(0x0720, 0x04040403);
|
|
- mchbar_write32(0x0724, 0x04040404);
|
|
-
|
|
- mchbar_write32(0x0740, 0x02020202);
|
|
- mchbar_write32(0x0744, 0x03020202);
|
|
- mchbar_write32(0x0748, 0x04040403);
|
|
- mchbar_write32(0x074c, 0x04040404);
|
|
- mchbar_write32(0x0758, 0x02020202);
|
|
- mchbar_write32(0x075c, 0x03020202);
|
|
- mchbar_write32(0x0760, 0x04040403);
|
|
- mchbar_write32(0x0764, 0x04040404);
|
|
-
|
|
- mchbar_write32(0x0780, 0x06060606);
|
|
- mchbar_write32(0x0784, 0x09070606);
|
|
- mchbar_write32(0x0788, 0x0e0e0c0b);
|
|
- mchbar_write32(0x078c, 0x0e0e0e0e);
|
|
- mchbar_write32(0x0798, 0x06060606);
|
|
- mchbar_write32(0x079c, 0x09070606);
|
|
- mchbar_write32(0x07a0, 0x0d0d0c0b);
|
|
- mchbar_write32(0x07a4, 0x0d0d0d0d);
|
|
-
|
|
- mchbar_write32(0x07c0, 0x06060606);
|
|
- mchbar_write32(0x07c4, 0x09070606);
|
|
- mchbar_write32(0x07c8, 0x0e0e0c0b);
|
|
- mchbar_write32(0x07cc, 0x0e0e0e0e);
|
|
- mchbar_write32(0x07d8, 0x06060606);
|
|
- mchbar_write32(0x07dc, 0x09070606);
|
|
- mchbar_write32(0x07e0, 0x0d0d0c0b);
|
|
- mchbar_write32(0x07e4, 0x0d0d0d0d);
|
|
-
|
|
- mchbar_write32(0x0840, 0x06060606);
|
|
- mchbar_write32(0x0844, 0x08070606);
|
|
- mchbar_write32(0x0848, 0x0e0e0c0a);
|
|
- mchbar_write32(0x084c, 0x0e0e0e0e);
|
|
- mchbar_write32(0x0858, 0x06060606);
|
|
- mchbar_write32(0x085c, 0x08070606);
|
|
- mchbar_write32(0x0860, 0x0c0c0b0a);
|
|
- mchbar_write32(0x0864, 0x0c0c0c0c);
|
|
-
|
|
- mchbar_write32(0x0880, 0x02020202);
|
|
- mchbar_write32(0x0884, 0x03020202);
|
|
- mchbar_write32(0x0888, 0x04040403);
|
|
- mchbar_write32(0x088c, 0x04040404);
|
|
- mchbar_write32(0x0898, 0x02020202);
|
|
- mchbar_write32(0x089c, 0x03020202);
|
|
- mchbar_write32(0x08a0, 0x04040403);
|
|
- mchbar_write32(0x08a4, 0x04040404);
|
|
+ if (sysinfo->spd_type == DDR2) {
|
|
+ /*
|
|
+ * Program hardcoded DDR2-800 RCOMP SRAM codes. This must be done
|
|
+ * after receiver enable calibration, otherwise raminit sometimes
|
|
+ * completes with non-working memory.
|
|
+ */
|
|
+ mchbar_write32(0x0530, 0x06060005);
|
|
+ mchbar_write32(0x0680, 0x06060606);
|
|
+ mchbar_write32(0x0684, 0x08070606);
|
|
+ mchbar_write32(0x0688, 0x0e0e0c0a);
|
|
+ mchbar_write32(0x068c, 0x0e0e0e0e);
|
|
+ mchbar_write32(0x0698, 0x06060606);
|
|
+ mchbar_write32(0x069c, 0x08070606);
|
|
+ mchbar_write32(0x06a0, 0x0c0c0b0a);
|
|
+ mchbar_write32(0x06a4, 0x0c0c0c0c);
|
|
+
|
|
+ mchbar_write32(0x06c0, 0x02020202);
|
|
+ mchbar_write32(0x06c4, 0x03020202);
|
|
+ mchbar_write32(0x06c8, 0x04040403);
|
|
+ mchbar_write32(0x06cc, 0x04040404);
|
|
+ mchbar_write32(0x06d8, 0x02020202);
|
|
+ mchbar_write32(0x06dc, 0x03020202);
|
|
+ mchbar_write32(0x06e0, 0x04040403);
|
|
+ mchbar_write32(0x06e4, 0x04040404);
|
|
+
|
|
+ mchbar_write32(0x0700, 0x02020202);
|
|
+ mchbar_write32(0x0704, 0x03020202);
|
|
+ mchbar_write32(0x0708, 0x04040403);
|
|
+ mchbar_write32(0x070c, 0x04040404);
|
|
+ mchbar_write32(0x0718, 0x02020202);
|
|
+ mchbar_write32(0x071c, 0x03020202);
|
|
+ mchbar_write32(0x0720, 0x04040403);
|
|
+ mchbar_write32(0x0724, 0x04040404);
|
|
+
|
|
+ mchbar_write32(0x0740, 0x02020202);
|
|
+ mchbar_write32(0x0744, 0x03020202);
|
|
+ mchbar_write32(0x0748, 0x04040403);
|
|
+ mchbar_write32(0x074c, 0x04040404);
|
|
+ mchbar_write32(0x0758, 0x02020202);
|
|
+ mchbar_write32(0x075c, 0x03020202);
|
|
+ mchbar_write32(0x0760, 0x04040403);
|
|
+ mchbar_write32(0x0764, 0x04040404);
|
|
+
|
|
+ mchbar_write32(0x0780, 0x06060606);
|
|
+ mchbar_write32(0x0784, 0x09070606);
|
|
+ mchbar_write32(0x0788, 0x0e0e0c0b);
|
|
+ mchbar_write32(0x078c, 0x0e0e0e0e);
|
|
+ mchbar_write32(0x0798, 0x06060606);
|
|
+ mchbar_write32(0x079c, 0x09070606);
|
|
+ mchbar_write32(0x07a0, 0x0d0d0c0b);
|
|
+ mchbar_write32(0x07a4, 0x0d0d0d0d);
|
|
+
|
|
+ mchbar_write32(0x07c0, 0x06060606);
|
|
+ mchbar_write32(0x07c4, 0x09070606);
|
|
+ mchbar_write32(0x07c8, 0x0e0e0c0b);
|
|
+ mchbar_write32(0x07cc, 0x0e0e0e0e);
|
|
+ mchbar_write32(0x07d8, 0x06060606);
|
|
+ mchbar_write32(0x07dc, 0x09070606);
|
|
+ mchbar_write32(0x07e0, 0x0d0d0c0b);
|
|
+ mchbar_write32(0x07e4, 0x0d0d0d0d);
|
|
+
|
|
+ mchbar_write32(0x0840, 0x06060606);
|
|
+ mchbar_write32(0x0844, 0x08070606);
|
|
+ mchbar_write32(0x0848, 0x0e0e0c0a);
|
|
+ mchbar_write32(0x084c, 0x0e0e0e0e);
|
|
+ mchbar_write32(0x0858, 0x06060606);
|
|
+ mchbar_write32(0x085c, 0x08070606);
|
|
+ mchbar_write32(0x0860, 0x0c0c0b0a);
|
|
+ mchbar_write32(0x0864, 0x0c0c0c0c);
|
|
+
|
|
+ mchbar_write32(0x0880, 0x02020202);
|
|
+ mchbar_write32(0x0884, 0x03020202);
|
|
+ mchbar_write32(0x0888, 0x04040403);
|
|
+ mchbar_write32(0x088c, 0x04040404);
|
|
+ mchbar_write32(0x0898, 0x02020202);
|
|
+ mchbar_write32(0x089c, 0x03020202);
|
|
+ mchbar_write32(0x08a0, 0x04040403);
|
|
+ mchbar_write32(0x08a4, 0x04040404);
|
|
+ }
|
|
|
|
igd_compute_ggc(sysinfo);
|
|
|
|
diff --git a/src/northbridge/intel/gm45/raminit_rcomp_calibration.c b/src/northbridge/intel/gm45/raminit_rcomp_calibration.c
|
|
index b74765fd9c..5d4505e063 100644
|
|
--- a/src/northbridge/intel/gm45/raminit_rcomp_calibration.c
|
|
+++ b/src/northbridge/intel/gm45/raminit_rcomp_calibration.c
|
|
@@ -198,7 +198,7 @@ void raminit_rcomp_calibration(int ddr_type, const stepping_t stepping) {
|
|
reg = mchbar_read32(0x518);
|
|
lut_idx[channel][group][PULL_UP] = (reg >> 24) & 0x7f;
|
|
lut_idx[channel][group][PULL_DOWN] = (reg >> 16) & 0x7f;
|
|
- if (i == 1) {
|
|
+ if ((i == 1) && (ddr_type == DDR2)) {
|
|
magic_comp[0] = (reg >> 8) & 0x3f;
|
|
magic_comp[1] = (reg >> 0) & 0x3f;
|
|
}
|
|
@@ -242,7 +242,8 @@ void raminit_rcomp_calibration(int ddr_type, const stepping_t stepping) {
|
|
}
|
|
mchbar += 0x0040;
|
|
}
|
|
-
|
|
- mchbar_clrsetbits32(0x4d0, 0x3f << 26, magic_comp[0] << 26);
|
|
- mchbar_clrsetbits32(0x4d0, 0x3f << 20, magic_comp[1] << 20);
|
|
+ if (ddr_type == DDR2) {
|
|
+ mchbar_clrsetbits32(0x4d0, 0x3f << 26, magic_comp[0] << 26);
|
|
+ mchbar_clrsetbits32(0x4d0, 0x3f << 20, magic_comp[1] << 20);
|
|
+ }
|
|
}
|
|
--
|
|
2.39.5
|
|
|