Attention is currently required from: Fred Reitberger, Jason Glenesk, Martin Roth, Matt DeVillier, Raul Rangel.
Felix Held has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/76960?usp=email )
Change subject: soc/amd/common/data_fabric/domain: read IO decode windows from registers ......................................................................
Patch Set 4:
(2 comments)
Commit Message:
https://review.coreboot.org/c/coreboot/+/76960/comment/0ebc12f2_2967d31e : PS3, Line 28: [DEBUG] DOMAIN: 0000 io: base: 0 size: 0 align: 0 gran: 0 limit: ffff done
`Possible unwrapped commit description (prefer a maximum 72 chars per line)` […]
this is debug output which should be kept in the original form
File src/soc/amd/common/block/data_fabric/domain.c:
https://review.coreboot.org/c/coreboot/+/76960/comment/f6bdb295_1a7297ce : PS3, Line 177: >
Should this be '<' ?
no, this is correct. due to some unknown reason, the raw io base and length fields have 13 bits and those get shifted left by 12, giving us 25 bits worth of io space. x86 only has 16 bits io space and when we advertise more than 16 bits worth of io space, the allocator will put io resources above those 16 bits io space. so when the base is out of bounds, that register pair needs to be ignored. we should never run into this case, but better handle this possible problem. the limit register had all 13 bits programmed to 1 on picasso causing this function to pass a wrong limit to the resource allocator; the fix for that is in line 185. while being at it, i also added handling for the base address to be out of bounds