Page MenuHomeFreeBSD

vt_simplefb: support armv7 and U-Boot-placed framebuffer nodes
Needs ReviewPublic

Authored by seuros on Sat, Aug 29, 3:05 PM.
Referenced Files
F170821391: D59264.diff
Sun, Sep 6, 8:30 PM
Unknown Object (File)
Sun, Sep 6, 5:49 AM
Unknown Object (File)
Sat, Sep 5, 11:38 PM
Unknown Object (File)
Sat, Sep 5, 1:48 PM
Unknown Object (File)
Sat, Sep 5, 11:36 AM
Unknown Object (File)
Sat, Sep 5, 9:29 AM
Unknown Object (File)
Sat, Sep 5, 3:42 AM
Unknown Object (File)
Fri, Sep 4, 8:34 PM
Subscribers

Details

Reviewers
andrew
Group Reviewers
ARM
Summary

Search for simple-framebuffer nodes under both /chosen and the root,
as U-Boot may place them there, and skip disabled nodes.

Honor memory-region, fix address handling on 32-bit arm, and use the
pmap_preboot API for framebuffer mappings before pmap_bootstrap().

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 76318
Build 73201: arc lint + arc unit

Event Timeline

sys/arm/arm/machdep.c
118

@imp , i saw that in some place we started to use booleans.

sys/dev/vt/hw/simplefb/simplefb.c
153

I'm afraid not "/chosen" means it is not ready, in most cases. Or at least unwanted.

I'm not thrilled with this solution.
The standard pre-pmap_bootstrap() KVA is 128 MB, including:

  • kernel text/data/bss (section-mapped from KERNBASE);
  • early page tables (kern_pt1, kern_pt2tab and initial L2 pages);
  • whatever initarm() takes (dpcpu, stacks, msgbuf, etc.).

So there are only tens of megabytes of free KVA for the framebuffer.

Another thing: Wouldn't it be much cleaner to extend the implementation of pmap_mapdev_attr() for early boot phase of armv7? subr_devmap.c looks ready for this job.