|
@@ -329,6 +329,22 @@ unsigned int lx_framebuffer_size(void)
|
|
{
|
|
{
|
|
unsigned int val;
|
|
unsigned int val;
|
|
|
|
|
|
|
|
+ if (!geode_has_vsa2()) {
|
|
|
|
+ uint32_t hi, lo;
|
|
|
|
+
|
|
|
|
+ /* The number of pages is (PMAX - PMIN)+1 */
|
|
|
|
+ rdmsr(MSR_GLIU_P2D_RO0, lo, hi);
|
|
|
|
+
|
|
|
|
+ /* PMAX */
|
|
|
|
+ val = ((hi & 0xff) << 12) | ((lo & 0xfff00000) >> 20);
|
|
|
|
+ /* PMIN */
|
|
|
|
+ val -= (lo & 0x000fffff);
|
|
|
|
+ val += 1;
|
|
|
|
+
|
|
|
|
+ /* The page size is 4k */
|
|
|
|
+ return (val << 12);
|
|
|
|
+ }
|
|
|
|
+
|
|
/* The frame buffer size is reported by a VSM in VSA II */
|
|
/* The frame buffer size is reported by a VSM in VSA II */
|
|
/* Virtual Register Class = 0x02 */
|
|
/* Virtual Register Class = 0x02 */
|
|
/* VG_MEM_SIZE (1MB units) = 0x00 */
|
|
/* VG_MEM_SIZE (1MB units) = 0x00 */
|