Changeset 6ff1f1e in mainline


Ignore:
Timestamp:
2006-09-25T20:46:50Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
45b26dad
Parents:
5d684e4
Message:

Support for FFB (Creator 3D) framebuffer detection on sparc64.
(Not tested as the Ultra 60, which I have for testing, and which
only has this type of framebuffer doesn't boot for some unknown reason.)

Location:
kernel
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/src/drivers/scr.c

    r5d684e4 r6ff1f1e  
    4141#include <align.h>
    4242#include <print.h>
     43
     44#define FFB_REG_24BPP   7
    4345
    4446scr_type_t scr_type = SCR_UNKNOWN;
     
    121123               
    122124                break;
    123         case SCR_FFB:
     125        case SCR_FFB:   
     126                fb_depth = 24;
     127                fb_scanline = 8192;
     128
     129                ofw_upa_reg_t *reg = &((ofw_upa_reg_t *) prop->value)[FFB_REG_24BPP];
     130                if (!ofw_upa_apply_ranges(node->parent, reg, &fb_addr)) {
     131                        printf("Failed to determine screen address.\n");
     132                        return;
     133                }
     134
     135                break;
    124136        default:
    125137                panic("Unexpected type.\n");
  • kernel/genarch/Makefile.inc

    r5d684e4 r6ff1f1e  
    9999                genarch/src/ofw/ebus.c \
    100100                genarch/src/ofw/fhc.c \
    101                 genarch/src/ofw/pci.c
     101                genarch/src/ofw/pci.c  \
     102                genarch/src/ofw/upa.c
    102103endif
  • kernel/genarch/include/ofw/ofw_tree.h

    r5d684e4 r6ff1f1e  
    118118typedef struct ofw_pci_range ofw_pci_range_t;
    119119
    120 struct ofw_ffb_reg {
     120struct ofw_upa_reg {
     121        uint64_t addr;
     122        uint64_t size;
    121123} __attribute__ ((packed));
    122 typedef struct ofw_ffb_reg ofw_ffb_reg_t;
     124typedef struct ofw_upa_reg ofw_upa_reg_t;
    123125
    124126extern void ofw_tree_init(ofw_tree_node_t *root);
     
    132134extern bool ofw_ebus_apply_ranges(ofw_tree_node_t *node, ofw_ebus_reg_t *reg, uintptr_t *pa);
    133135extern bool ofw_pci_apply_ranges(ofw_tree_node_t *node, ofw_pci_reg_t *reg, uintptr_t *pa);
    134 extern bool ofw_ffb_apply_ranges(ofw_tree_node_t *node, ofw_ffb_reg_t *reg, uintptr_t *pa);
     136extern bool ofw_upa_apply_ranges(ofw_tree_node_t *node, ofw_upa_reg_t *reg, uintptr_t *pa);
    135137
    136138extern bool ofw_pci_reg_absolutize(ofw_tree_node_t *node, ofw_pci_reg_t *reg, ofw_pci_reg_t *out);
Note: See TracChangeset for help on using the changeset viewer.